一些简单的汇编程序.docx
- 文档编号:17169142
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:19
- 大小:48.43KB
一些简单的汇编程序.docx
《一些简单的汇编程序.docx》由会员分享,可在线阅读,更多相关《一些简单的汇编程序.docx(19页珍藏版)》请在冰点文库上搜索。
一些简单的汇编程序
一些简单的汇编程序
1.编制程序计算S=1+2+3+4+……+N直到和大于500为止,并将结果在屏幕上显示出来(N的值和最终的和的值)。
DATASEGMENT
NDW?
SUMDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,0
MOVBL,0
E1:
INCBL
ADDAX,BX
CMPAX,500
JBEE1
MOV[N],BX
MOV[SUM],AX
E2:
MOVAX,BX
MOVBL,10
DIVBL
ADDAL,30H
MOVDL,AL
MOVCL,AH
MOVAH,2
INT21H
ADDCL,30H
MOVDL,CL
MOVAH,2
INT21H
MOVAH,2
13,10,'Inputerror!
',13,10,'$'
M3DB13,10,'ThenumberofAis:
$'
M4DB13,10,'ThenumberofBis:
$'
M5DB13,10,'ThenumberofCis:
$'
M6DB13,10,'ThenumberofDis:
$'
DATAENDS
STACKSEGMENT
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAH,9
MOVDX,OFFSETM1
INT21H
MOVBX,0
MOVCX,0
E1:
MOVAH,1
INT21H
MOVAH,41H
CMPAL,AH
JNZE2
INCBL
JMPE1
E2:
MOVAH,42H
CMPAH,AL
JNZE3
INCBH
JMPE1
E3:
MOVAH,43H
CMPAH,AL
JNZE4
INCCL
JMPE1
E4:
MOVAH,44H
CMPAH,AL
JNZE5
INCCH
JMPE1
E5:
MOVAH,24H
CMPAH,AL
JZE6
MOVAH,9
MOVDX,OFFSETM2
INT21H
JMPE1
E6:
MOVAH,9
MOVDX,OFFSETM3
INT21H
MOVAH,2
ADCBL,30H
MOVDL,BL
INT21H
MOVAH,9
MOVDX,OFFSETM4
INT21H
MOVAH,2
ADCBH,30H
MOVDL,BH
INT21H
MOVAH,9
MOVDX,OFFSETM5
INT21H
MOVAH,2
ADCCL,30H
MOVDL,CL
INT21H
MOVAH,9
MOVDX,OFFSETM6
INT21H
MOVAH,2
ADCCH,30H
MOVDL,CH
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.动态输入20个二位无符号数,找出其中最大数并显示。
DATASSEGMENT
M1DB'Pleaseinput5numbers:
',13,10,'$'
M2DB'Thebiggestnumberis:
$'
M3DB'',13,10,'$'
MAXDW?
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVMAX,0
LEADX,M1
MOVAH,9
INT21H
MOVCL,5
LP:
MOVAH,1
INT21H
SUBAL,30H
MOVBH,AL
MOVAH,1
INT21H
SUBAL,30H
MOVBL,AL
LEADX,M3
MOVAH,9
INT21H
CMPMAX,BX
JNLEXIT
XCHGMAX,BX
EXIT:
LOOPLP
LEADX,M2
MOVAH,9
INT21H
MOVBX,MAX
ADDBH,30H
MOVDL,BH
MOVAH,2
INT21H
ADDBL,30H
MOVDL,BL
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
4.设数据区有两个字符串,串1的长度为5,串2的长度为10。
编程:
若串2的最后5个字符和串1相同,则置FLAG单元为“Y”,否则置为“N”。
DATASSEGMENT
S1DB'DKJFD$'
S2DB'DSFGDDDJFD$'
FLAGDB'THEFLAFISTHE:
$'
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,ES:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVES,AX
LEADX,FLAG
MOVAH,9
INT21H
LEASI,S1
LEADI,S2+5
MOVCX,5
REPECMPSB
JNEEXIT
MOVAH,2
MOVDL,'Y'
INT21H
JMPOVER
EXIT:
MOVAH,2
MOVDL,'N'
INT21H
OVER:
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
5.编写打印图形程序
DATASSEGMENT
sdb'9876543210',13,10,'$'
adw?
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
movcx,10
movbx,9
mova,2
loop1:
movdl,0ah
movah,2
int21h
movdl,0dh
movah,2
int21h
loop2:
movdl,s[bx]
movah,2
int21h
incbx
cmpbx,9
jbeloop2
subbx,a
inca
looploop1
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
6.用子程序结构编写程序:
从键盘入一个二位十进制数的月份(01~12),然后显示相应的英文缩写名。
DATASSEGMENTPARA'DATA'
THREEDB4
MONINDB4,5DUP(?
)
ALFMONDB4,'?
?
?
.','$'
MONTABDB'JAN.','FEB.','MAR.','APR.','MAY.','JUN.','JUL.','AUG.','SEP.','OCT.','NOV.','DEC.'
DATASENDS
CODESSEGMENTPARA'CODE'
ASSUMECS:
CODES,DS:
DATAS,ES:
DATAS
MAINPROCFAR
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATAS
MOVDS,AX
MOVES,AX
CALLINPUT
CALLLOCATE
CALLDISPLAY
RET
MAINENDP
INPUTPROCNEAR
PUSHDX
MOVAH,0AH
LEADX,MONIN
INT21H
MOVAH,MONIN+2
MOVAL,MONIN+3
XORAX,3030H
CMPAH,00
JZRETURN
SUBAH,AH
ADDAL,10
RETURN:
POPDX
RET
INPUTENDP
LOCATEPROCNEAR
PUSHSI
PUSHDI
PUSHCX
LEASI,MONTAB
DECAL
MULTHREE
ADDSI,AX
MOVCX,03
CLD
LEADI,ALFMON+1
REPMOVSB
POPCX
POPDI
POPSI
RET
LOCATEENDP
DISPLAYPROCNEAR
PUSHDX
LEADX,ALFMON+1
MOVAH,09
INT21H
POPDX
RET
DISPLAYENDP
CODESENDS
ENDMAIN
7.数组排序
DATASSEGMENT
STRINGDB'INPUT20NUMBERS:
',0AH,0DH,'$'
BUFDB20DUP(?
)
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
LEADX,STRING
MOVAH,9
INT21H
MOVCX,20
MOVSI,0
LOOP1:
;动态输入20个无符号的两位数
MOVAH,1
INT21H
SUBAL,30H
MOVBL,10
MULBL
MOVDX,AX
MOVAH,1
INT21H
SUBAL,30H
ADDDL,AL
MOVBL,DL
MOVAH,2
MOVDL,''
INT21H
MOVBUF[SI],BL
INCSI
LOOPLOOP1
MOVCX,19;比较19次
E1:
MOVDI,CX
MOVBX,0
E2:
;用冒泡法比较,前后比较
MOVAL,BUF[BX]
CMPAL,BUF[BX+1]
JNGE3
XCHGAL,BUF[BX+1]
MOVBUF[BX],AL
E3:
ADDBX,1
LOOPE2
MOVCX,DI
LOOPE1
MOVAH,2
MOVDL,0AH
INT21H
MOVAH,2
MOVDL,0DH
INT21H
MOVCL,20;从小到大输出数组
MOVBX,0
MOVSI,0
LOOP2:
MOVAL,BUF[SI]
CBW
MOVBL,10
DIVBL
MOVBH,AH
MOVAH,2
ADDAL,30H
MOVDL,AL
INT21H
MOVAH,2
ADDBH,30H
MOVDL,BH
INT21H
MOVAH,2
MOVDL,''
INT21H
INCSI
LOOPLOOP2
MOVAH,2
MOVDL,0AH
INT21H
MOVAH,2
MOVDL,0DH
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
8.求三个数中最大的数
DATASSEGMENT
BUF1DB3
BUF2DB9
BUF3DB7
MAXDB?
STRINGDB'Themaxnamberis:
',13,10,'$'
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVBL,BUF2
CMPBUF1,BL
JGNEXT
MOVCL,BUF3
CMPBUF2,CL
JGE3
JMPE1
NEXT:
MOVCL,BUF3
CMPBUF1,CL
JGE2
JMPE1
E1:
MOVBL,BUF3
MOVMAX,BL
JMPOVER
E2:
MOVAL,BUF1
MOVMAX,AL
JMPOVER
E3:
MOVCL,BUF2
MOVMAX,CL
JMPOVER
OVER:
MOVDX,OFFSETSTRING
MOVAH,9
INT21H
MOVAH,2
ADDMAX,30H
MOVDL,MAX
INT21H
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一些 简单 汇编程序