2020年汇编实验报告

实验三 算术运算与代码转换程序设计 一、实验目的 1)掌握算术运算程序的设计方法

2)掌握代码转换程序的设计方法。

3)进一步掌握各种程序结构。

4)熟练掌握和使用用DEBUG调试程序。

二、实验内容 1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。

2)编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结果显示在屏幕上。

3)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,并以十进制形式输出。

4)写程序把从键盘输入的四位十六进制数转换为压缩的BCD码,并显示输出。

5)编写一通用过程用来将十进制数从键盘输入转换为P从键盘输入进制数。

三、实验设备 PC机一台 四、实验步骤 1 按程序流程图编制实验程序。

2 输入源程序。

3 汇编、连接程序,执行程序,检查结果。

4 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。

5 用D命令检查执行结果。

六、源程序 实验一 DATASEGMENT NUM1DB22H,33H,44H,55H,66H,77H NUM1LDB6H NUM2DB22H,22H,22H,22H NUM2LDB4H OUTCOME1DB10HDUP0 OUTCOME2DB10HDUP0 NDB0H DATAENDS STACK1SEGMENTPARASTACK DW20HDUP0 STACK1ENDS CODESEGMENT ASSUMECSCODE,DSDATA,SSSTACK1 STARTMOVAX,DATA MOVDS,AX MOVCH,0 MOVSI,OFFSETNUM1 MOVDI,OFFSETNUM2 MOVAH,NUM1L MOVAL,NUM2L CMPAH,AL JAECHA XCHGSI,DI XCHGAH,AL CHASUBAH,AL MOVCL,AL CLC MOVBX,OFFSETOUTCOME1 LOP1MOVAL,[DI] PUSHCX MOVCL,[SI] ADCCL,AL MOV[BX],CL INCBX INCSI INCDI POPCX LOOPLOP1 MOVCL,AH JCXZLOP3 LOP2PUSHCX MOVCL,BYTEPTR[SI] ADCCL,0 MOV[BX],CL POPCX INCBX INCSI LOOPLOP2 LOP3MOVCH,0 MOVSI,OFFSETNUM1 MOVDI,OFFSETNUM2 MOVAH,NUM1L MOVAL,NUM2L CMPAH,AL JAECHA1 XCHGSI,DI XCHGAH,AL CHA1SUBAH,AL MOVCL,AL CLC MOVBX,OFFSETOUTCOME2 LOP11MOVAL,[DI] PUSHCX MOVCL,[SI] SBBCL,AL MOV[BX],CL INCBX INCSI INCDI POPCX LOOPLOP11 MOVCL,AH JCXZLOP7 LOP21PUSHCX MOVCL,BYTEPTR[SI] SBBCL,0 MOV[BX],CL POPCX INCBX INCSI LOOPLOP21 LOP7MOVDI,OFFSETOUTCOME1 ADDDI,10H MOVCX,11H LOP4MOVDL,[DI] DECDI CMPN,0H JNELOP5 CMPDL,0H JELOP9 LOP5PUSHDX PUSHCX MOVCL,4H SHRDL,CL POPCX CMPDL,9H JBELOP6 ADDDL,7H LOP6ADDDL,30H MOVAH,2 INT21H MOVN,1H POPDX ANDDX,0FH CMPDL,9H JBELOP8 ADDDL,7H LOP8ADDDL,30H MOVAH,2 INT21H MOVDL,H MOVAH,2 INT21H LOP9LOOPLOP4 MOVN,0 MOVDI,OFFSETOUTCOME2 ADDDI,10H MOVCX,11H LOP14MOVDL,[DI] DECDI CMPN,0H JNELOP15 CMPDL,0H JELOP19 LOP15PUSHDX PUSHCX MOVCL,4H SHRDL,CL POPCX CMPDL,9H JBELOP16 ADDDL,7H LOP16ADDDL,30H MOVAH,2 INT21H MOVN,1H POPDX ANDDX,0FH CMPDL,9H JBELOP18 ADDDL,7H LOP18ADDDL,30H MOVAH,2 INT21H MOVDL,H MOVAH,2 INT21H LOP19LOOPLOP14 MOVAH,4CH INT21H CODEENDS ENDSTART 实验2 DATASEGMENT TISHI1DBPleaseenterthefirstnumber, TISHI2DBPleaseenterthesecondnumber, JIADB, JIANDB-, CHENGDB*, CHUDB/, DENGDB, YUDB......, ADB10 BDW10 CDW10000 FDW0H NUM1DW0H NUM2DW0H NDB0H N1DB4H DATAENDS STACK1SEGMENTSTACK DW30HDUP0 STACK1ENDS CODESSEGMENT ASSUMECSCODES,DSDATA STARTMOVAX,DATA MOVDS,AX MOVDX,OFFSETTISHI1 MOVAH,09H INT21H LOOP2MOVAX,NUM1 MULB MOVBX,AX MOVAH,1 INT21H CMPAL,0DH JELOP1 MOVNUM1,BX MOVAH,0 SUBAL,30H ADDNUM1,AX JMPLOOP2 LOP1MOVDL,0AH输出换行和回车 MOVAH,2 INT21H MOVDL,0DH MOVAH,2 INT21H MOVDX,OFFSETTISHI2 MOVAH,09H INT21H LOOP1MOVAX,NUM2 MULB MOVBX,AX MOVAH,1 INT21H CMPAL,0DH JELOP3 MOVNUM2,BX MOVAH,0 SUBAL,30H ADDNUM2,AX JMPLOOP1 LOP3MOVDL,0AH输出换行和回车 MOVAH,2 INT21H MOVDL,0DH MOVAH,2 INT21H MOVN,0 MOVDX,NUM1 MOVF,DX LOP6MOVDX,0H MOVAX,F DIVB PUSHDX INCN CMPAX,0H JELOP7 MOVF,AX JMPLOP6 LOP7MOVCL,N MOVCH,0 LOP16POPDX ADDDX,30H MOVAH,2 INT21H LOOPLOP16 MOVDX,NUM2 MOVF,DX MOVN,0 MOVDX,OFFSETJIA MOVAH,09HINT21H LOOOP6MOVDX,0H MOVAX,F DIVB PUSHDX INCN CMPAX,0H JELOOOP7 MOVF,AX JMPLOOOP6 LOOOP7MOVCL,N MOVCH,0 LOOOP16POPDX ADDDX,30H MOVAH,2 INT21H LOOPLOOOP16 MOVDX,OFFSETDENG MOVAH,09H INT21H MOVN,0 LOOP3MOVAX,NUM1 ADDAX,NUM2 MOVF,AX LOOP4MOVDX,0H MOVAX,F DIVB PUSHDX INCN CMPAX,0H JELOOP5 MOVF,AX JMPLOOP4 LOOP5MOVCL,N MOVCH,0 LOOP0POPDX ADDDX,30H MOVAH,2 INT21H LOOPLOOP0 MOVDL,0AH输出换行和回车 MOVAH,2 INT21H MOVDL,0DH MOVAH,2 INT21H MOVN,0 MOVDX,NUM1 MOVF,DX LOP61MOVDX,0H MOVAX,F DIVB PUSHDX INCN CMPAX,0H JELOP71 MOVF,AX JMPLOP61 LOP71MOVCL,N MOVCH,0 LOP161POPDX ADDDX,30H MOVAH,2 INT21H LOOPLOP161 MOVDX,NUM2 MOVF,DX MOVN,0 MOVDX,OFFSETJIAN MOVAH,09HINT21H LOOOP61MOVDX,0H