汇编经典代码

上传人:206****923 文档编号:37526606 上传时间:2018-04-17 格式:DOC 页数:11 大小:90KB
返回 下载 相关 举报
汇编经典代码_第1页
第1页 / 共11页
汇编经典代码_第2页
第2页 / 共11页
汇编经典代码_第3页
第3页 / 共11页
汇编经典代码_第4页
第4页 / 共11页
汇编经典代码_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《汇编经典代码》由会员分享,可在线阅读,更多相关《汇编经典代码(11页珍藏版)》请在金锄头文库上搜索。

1、1. 顺序程序设计顺序程序设计将两个多位十进制数相加,要求被加数、加数均以 ASC码形式各自顺序存放在以 DATA1 和 DATA2 为首的五个内存单元中(低位在前) ,结果送回 DATA1 处。DATASEGMENT DATA1 DB 34H,35H,39H,38H,36H, ;被加数 DATA2 DB 37H,34H,33H,36H,32H, ;加数DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX LEASI,DATA1;有效地址送 SI,为调用显示子程序做准备 CALLDISPLA

2、Y;调用显示子程序 CALLCRLF;调用回车换行子程序 LEASI,DATA2;有效地址送 SI,为调用显示子程序做准备,同时为加法运算做准备 CALLDISPLAY;调用显示子程序 CALLCRLF;调用回车换行子程序 LEADI,DATA1;有效抵制送 DI,为加法运算做准备MOV AX,0 MOV BX,0 MOV CL,05H;记录循环次数ADDS: MOVAL,SI;将加数送往 ALSUBAL,30H ADD AL,BL;加上进位 MOV BL,DI;将被加数送往 BLSUBBL,30H ADD AL,BL;加法运算ADD AL,30H CMP AL,3AH JASUBA;结果=1

3、0,跳到 SUBAJBNSUBASUBA:SUBAL,0AH;减去 10 的值,并置 BL 为 1MOV BL,01H JMPCONTINUENSUBA:MOV BL,00H;置 BL 为 0CONTINUE:MOVDI,AL;将相加的结果从 AL 送往 DI 的地址,即 DATA1 的地址INCDI;地址加 1INCSI;地址加 1 LOOPADDS;循环JCSHUCHU JNCSHUCHU2SHUCHU2: MOV AL,31H;CF 为 1 设置结果最高位为 1JMPCONTINUE2SHUCHU:MOVAL,30H;CF 为 0 设置结果最高位为 0CONTINUE2:MOVDI,AL

4、LEASI,DATA1;将 DATA1 的有效地址送往 SI,为调用 DISPLAY 子程序做准备 CALLDISPLAY;调用 DISPLAY 子程序 MOV AX,4C00H;返回 DOSINT 21H MAINENDPCRLFPROCNEAR;回车、换行 于功能 MOV DL,0DH MOV AH,02H INT21H MOV DL,0AH MOV AH,02H INT21H RET CRLFENDPDISPLAY PROCNEAR ;显示于功能MOV BX,0006H ;记录循环次数 DSL:MOV DL,SI+BX-1;将有效地址内的内容送往 DLMOV AH,02 ;2 号功能输出

5、 INT21H DEC BX ;BX 自动减 1JNZDSL RET DISPLAY ENDPCODEENDS END START2 分支程序设计实验分支程序设计实验接收键盘输入字符,将其中的小写字母转换为大写字母并显示。CODESEGMENT MAINPROCFAR ASSUMECS:CODE START:MOV AH,00H INT16H CMP AL,0DH JZOVER CALLJUDGE MOV DL,AL MOV AH,02H INT21H JMPSTART OVER:MOV AH,4CH INT21H MAINENDPJUDGEPROCNEAR CMP AL,a JBSTOP C

6、MP AL,z JASTOP SUBAL,20H STOP:RET JUDGEENDPCODEENDS END START3 循环程序设计实验统计一个有 10 人的班中,男、女生的人数各为多少。将男生人数存入变量 MAN、女生人数存入变量 WOMAN 中。DATASEGMENT MANDB 0,0 WOMANDB 0,0 STRINGDB iuput people number! (man is 0, woman is 1 ) $SMDB man is :$ SWDB woman is :$ DATAENDSCODESEGMENTMAINPROCFAR ASSUMECS:CODE,DS:DAT

7、A START:MOV AX,DATA MOV DS,AX MOV AH,09H;将 STRING 的内容输出MOV DX,OFFSET STRING INT21H CALLCRLF MOV CX,10;男女生总人数 AA:MOV AH,01H;从键盘输入,0 为男,1 为女INT21H CMP AL,30H;与0比较 JNZADDW;不为0,女生人数加 1 INCMAN;否则男生人数加 1BB:LOOPAA JMPDISPLY;打印ADDW:INCWOMAN JMPBBDISPLY: CALLCRLF MOV AH,09H;字符串输出MOV DX,OFFSET SM INT21H MOV A

8、H,02H;男生人数统计结果输出MOV DL,MAN ADD DL,30H CALLJUDGE CALLCRLF MOV AH,09H;字符串输出MOV DX,OFFSET SW INT21H MOV AH,02H;女生人数统计结果输出MOV DL,WOMAN ADD DL,30H CALLJUDGE MOV AH,4CH;返回 DOSINT21H MAINENDPJUDGEPROCNEAR;判断结果是否为 39HCMP DL,3AH JZSHI CC:INT21H RET SHI:MOV DL,31H INT21H MOV DL,30H JMPCC JUDGEENDPCRLFPROCNEAR

9、;回车换行子程序 MOV AH,02H;回车MOV DL,0DH INT21H MOV DL,0AH;换行INT21H RET CRLFENDP CODEENDS END START4 子程序设计实验1 键盘输入字符,依次显示在行的最左端(即每接受一个字符,显示在屏幕上并回车换行。 ) 2 对频繁使用的回车换行编写为子程序,在主程序中调用完成分行显示。CODESEGMENT MAINPROCFAR ASSUMECS:CODE START:MOV CX,10;设置循环次数 NEXT:MOV AH,01H;从键盘输入一个字符INT21H CALLCRLF;调用回车换行子程序LOOPNEXT MOV

10、 AH,4CH;返回 DOSINT21H MAINENDP CRLFPROCNEAR;回车换行子程序 MOV AH,02H;回车MOV DL,0DH INT21H MOV DL,0AH;换行INT21H RET CRLFENDP CODEENDS END START5 码制转换程序实验码制转换程序实验将 ASC码数据转换成二进制数据。要求从键盘上输入十进制整数(假定范围 032767) ,然后转换 成二进制格式存储。DATASEGMENT STRING1 DB PLEASE INPUT A NUMBER(032767):$ STRING2 DB THE ASCII IS:$ STRING3 D

11、B THE BINARY IS:$ DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATA MAINPROCFARSTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET STRING1 MOV AH,09H INT21H CALLCRLF INPUT:MOV AH,01H;输入数据INT21H CMP AL,0DH JZNEXT SUBAL,30H JLINPUT CMP AL,39H JGINPUT CBW XCHGAX,BX;AX 为输入值,BX 保存结果,两个对调为 MUL 做准备 MOV DX,10D;将上一次结果乘 10MUL

12、DX XCHGAX,BX;AX 为本次输入的值,BX 为之前的结果ADD BX,AX JMPINPUT NEXT: CALLCRLF MOV CL,4D MOV CH,4D MOV DX,OFFSET STRING2 MOV AH,09H INT21H CALLCRLF LOOP0:ROL BX,CL;循环左移,将最高为存到 BL 的低四位MOV AL,BL AND AL,0FH; ADD AL,30H CMP AL,3AH JLOUTPUT ADD AL,07H OUTPUT:MOVAH,02H MOV DL,AL INT21H DEC CH JNZLOOP0 CALLCRLF MOV DX

13、,OFFSET STRING3 MOV AH,09H INT21H CALLCRLF MOV CH,16D MOV CL,1D LOOP1:ROL BX,CL MOV AL,BL AND AL,01H ADD AL,30H MOV AH,02H MOV DL,AL INT21H DEC CH JNZLOOP1MOV AH,4CH INT21H MAINENDPOUTSPROCNEAR;字符串输出子程序MOV AH,09H INT21H RET OUTSENDPCRLFPROCNEAR;回车换行子程序 MOV AH,02H;回车INT21H MOV DL,0AH;换行INT21H RET CRL

14、FENDPCODEENDS ENDSTART6 两个数相乘的实验两个数相乘的实验 实现十进制数的乘法,被乘数和乘数均以 ASC码形式放在内存中,乘积在屏幕上显示出来。DATASEGMENT MBCS DW 0 MCSDW 0 RESULTDW 0 STRING1 DB THE BEICHENGSHU IS:$ STRING2 DB THE CHENGSHU IS:$ STRING3 DB THE RESULT IS:$ STRINGDB THEASCII IS:$ DATAENDSCODESEGMENT MAINPROCFAR ASSUMECS:CODE,DS:DATA START:MOV A

15、X,DATA MOV DS,AX MOV DX,OFFSET STRING1 CALLOUTS CALLINPUT;输入被乘数MOV DX,OFFSET STRING CALLOUTS CALLCRLF CALLASCII;被乘数转化为 ASCII 码输出CALLCRLF MOV MBCS,BX;被乘数保存到 MBCS 中MOV DX,OFFSET STRING2 CALLOUTS CALLINPUT;输入乘数MOV DX,OFFSET STRING CALLOUTS CALLCRLF CALLASCII;乘数转化为 ASCII 码输出CALLCRLF MOV MCS,BX;乘数保存到 MCS 中MOV DX,OFFSET STRING3 CALL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号