算术运算与代码转换程序设计.docx
- 文档编号:1699630
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:26
- 大小:47.71KB
算术运算与代码转换程序设计.docx
《算术运算与代码转换程序设计.docx》由会员分享,可在线阅读,更多相关《算术运算与代码转换程序设计.docx(26页珍藏版)》请在冰点文库上搜索。
算术运算与代码转换程序设计
实验三算术运算与代码转换程序设计
一、实验目的
1)掌握算术运算程序的设计方法。
2)掌握代码转换程序的设计方法。
3)进一步掌握各种程序结构。
4)熟练掌握和使用用DEBUG调试程序。
二、实验内容
1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。
2)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,并以十进制形式输出。
3)编写程序把从键盘输入的以回车为结束符的字符串中的空格去掉并按相反的顺序输出。
三实验代码、
实验1
DATASEGMENT
NUM1DB22H,33H,44H,55H,66H,77H
NUM1LDB6H
NUM2DB22H,22H,22H,22H
NUM2LDB4H
OUTCOME1DB10HDUP(0)
OUTCOME2DB10HDUP(0)
NDB0H
DATAENDS
STACK1SEGMENTPARASTACK
DW20HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
MOVCH,0
MOVSI,OFFSETNUM1
MOVDI,OFFSETNUM2
MOVAH,NUM1L
MOVAL,NUM2L
CMPAH,AL
JAECHA
XCHGSI,DI
XCHGAH,AL
CHA:
SUBAH,AL
MOVCL,AL
CLC
MOVBX,OFFSETOUTCOME1
LOP1:
MOVAL,[DI]
PUSHCX
MOVCL,[SI]
ADCCL,AL
MOV[BX],CL
INCBX
INCSI
INCDI
POPCX
LOOPLOP1
MOVCL,AH
JCXZLOP3
LOP2:
PUSHCX
MOVCL,BYTEPTR[SI]
ADCCL,0
MOV[BX],CL
POPCX
INCBX
INCSI
LOOPLOP2
LOP3:
MOVCH,0
MOVSI,OFFSETNUM1
MOVDI,OFFSETNUM2
MOVAH,NUM1L
MOVAL,NUM2L
CMPAH,AL
JAECHA1
XCHGSI,DI
XCHGAH,AL
CHA1:
SUBAH,AL
MOVCL,AL
CLC
MOVBX,OFFSETOUTCOME2
LOP11:
MOVAL,[DI]
PUSHCX
MOVCL,[SI]
SBBCL,AL
MOV[BX],CL
INCBX
INCSI
INCDI
POPCX
LOOPLOP11
MOVCL,AH
JCXZLOP7
LOP21:
PUSHCX
MOVCL,BYTEPTR[SI]
SBBCL,0
MOV[BX],CL
POPCX
INCBX
INCSI
LOOPLOP21
LOP7:
MOVDI,OFFSETOUTCOME1
ADDDI,10H
MOVCX,11H
LOP4:
MOVDL,[DI]
DECDI
CMPN,0H
JNELOP5
CMPDL,0H
JELOP9
LOP5:
PUSHDX
PUSHCX
MOVCL,4H
SHRDL,CL
POPCX
CMPDL,9H
JBELOP6
ADDDL,7H
LOP6:
ADDDL,30H
MOVAH,2
INT21H
MOVN,1H
POPDX
ANDDX,0FH
CMPDL,9H
JBELOP8
ADDDL,7H
LOP8:
ADDDL,30H
MOVAH,2
INT21H
MOVDL,'H'
MOVAH,2
INT21H
LOP9:
LOOPLOP4
MOVN,0
MOVDI,OFFSETOUTCOME2
ADDDI,10H
MOVCX,11H
LOP14:
MOVDL,[DI]
DECDI
CMPN,0H
JNELOP15
CMPDL,0H
JELOP19
LOP15:
PUSHDX
PUSHCX
MOVCL,4H
SHRDL,CL
POPCX
CMPDL,9H
JBELOP16
ADDDL,7H
LOP16:
ADDDL,30H
MOVAH,2
INT21H
MOVN,1H
POPDX
ANDDX,0FH
CMPDL,9H
JBELOP18
ADDDL,7H
LOP18:
ADDDL,30H
MOVAH,2
INT21H
MOVDL,'H'
MOVAH,2
INT21H
LOP19:
LOOPLOP14
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
实验2
DATASEGMENT
TISHI1DB'Pleaseenterthefirstnumber:
','$'
TISHI2DB'Pleaseenterthesecondnumber:
','$'
JIADB'+','$'
JIANDB'-','$'
CHENGDB'*','$'
CHUDB'/','$'
DENGDB'=','$'
YUDB'......','$'
ADB10
BDW10
CDW10000
FDW0H
NUM1DW0H
NUM2DW0H
NDB0H
N1DB4H
DATAENDS
STACK1SEGMENTSTACK
DW30HDUP(0)
STACK1ENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETTISHI1
MOVAH,09H
INT21H
LOOP2:
MOVAX,NUM1
MULB
MOVBX,AX
MOVAH,1
INT21H
CMPAL,0DH
JELOP1
MOVNUM1,BX
MOVAH,0
SUBAL,30H
ADDNUM1,AX
JMPLOOP2
LOP1:
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVDX,OFFSETTISHI2
MOVAH,09H
INT21H
LOOP1:
MOVAX,NUM2
MULB
MOVBX,AX
MOVAH,1
INT21H
CMPAL,0DH
JELOP3
MOVNUM2,BX
MOVAH,0
SUBAL,30H
ADDNUM2,AX
JMPLOOP1
LOP3:
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVN,0
MOVDX,NUM1
MOVF,DX
LOP6:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOP7
MOVF,AX
JMPLOP6
LOP7:
MOVCL,N
MOVCH,0
LOP16:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOP16
MOVDX,NUM2
MOVF,DX
MOVN,0
MOVDX,OFFSETJIA
MOVAH,09H
INT21H
LOOOP6:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOOP7
MOVF,AX
JMPLOOOP6
LOOOP7:
MOVCL,N
MOVCH,0
LOOOP16:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOOP16
MOVDX,OFFSETDENG
MOVAH,09H
INT21H
MOVN,0
LOOP3:
MOVAX,NUM1
ADDAX,NUM2
MOVF,AX
LOOP4:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP5
MOVF,AX
JMPLOOP4
LOOP5:
MOVCL,N
MOVCH,0
LOOP0:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP0
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVN,0
MOVDX,NUM1
MOVF,DX
LOP61:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOP71
MOVF,AX
JMPLOP61
LOP71:
MOVCL,N
MOVCH,0
LOP161:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOP161
MOVDX,NUM2
MOVF,DX
MOVN,0
MOVDX,OFFSETJIAN
MOVAH,09H
INT21H
LOOOP61:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOOP71
MOVF,AX
JMPLOOOP61
LOOOP71:
MOVCL,N
MOVCH,0
LOOOP161:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOOP161
MOVDX,OFFSETDENG
MOVAH,09H
INT21H
MOVN,0
MOVN,0
MOVAX,NUM1
SUBAX,NUM2
MOVF,AX
ANDAX,10000000B
CMPAX,10000000B
JNELOOP6
NEGF
LOOP6:
MOVDX,0
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP7
MOVF,AX
JMPLOOP6
LOOP7:
MOVCL,N
MOVCH,0
LOOP16:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP16
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVN,0
MOVDX,NUM1
MOVF,DX
LOP62:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOP72
MOVF,AX
JMPLOP62
LOP72:
MOVCL,N
MOVCH,0
LOP162:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOP162
MOVDX,NUM2
MOVF,DX
MOVN,0
MOVDX,OFFSETCHENG
MOVAH,09H
INT21H
LOOOP62:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOOP72
MOVF,AX
JMPLOOOP62
LOOOP72:
MOVCL,N
MOVCH,0
LOOOP162:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOOP162
MOVDX,OFFSETDENG
MOVAH,09H
INT21H
MOVN,0
MOVAX,NUM1
MULNUM2
DIVC
PUSHDX
MOVF,AX
MOVN,0
LOOP8:
MOVDX,0
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP9
MOVF,AX
JMPLOOP8
LOOP9:
MOVCL,N
MOVCH,0
LOOP17:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP17
MOVN,0
POPF
LOOP10:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP11
MOVF,AX
JMPLOOP10
LOOP11:
MOVAL,N
CMPAL,4H
JELOOP20
MOVAL,4H
SUBAL,N
MOVCL,AL
MOVCH,0
LOOP19:
MOVDX,'0'
MOVAH,2
INT21H
LOOPLOOP19
LOOP20:
MOVCL,N
MOVCH,0
LOOP18:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP18
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
MOVN,0
MOVDX,NUM1
MOVF,DX
LOP64:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOP74
MOVF,AX
JMPLOP64
LOP74:
MOVCL,N
MOVCH,0
LOP164:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOP164
MOVDX,NUM2
MOVF,DX
MOVN,0
MOVDX,OFFSETchu
MOVAH,09H
INT21H
LOOOP64:
MOVDX,0H
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOOP74
MOVF,AX
JMPLOOOP64
LOOOP74:
MOVCL,N
MOVCH,0
LOOOP164:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOOP164
MOVDX,OFFSETDENG
MOVAH,09H
INT21H
MOVN,0
MOVAX,NUM1
MOVDX,0
DIVNUM2
PUSHDX
MOVF,AX
MOVN,0
LOOP15:
MOVDX,0
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP12
MOVF,AX
JMPLOOP15
LOOP12:
MOVCL,N
MOVCH,0
LOOP21:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP21
MOVDX,OFFSETYU
MOVAH,09H
INT21H
POPF
MOVN,0
LOOP13:
MOVDX,0
MOVAX,F
DIVB
PUSHDX
INCN
CMPAX,0H
JELOOP14
MOVF,AX
JMPLOOP13
LOOP14:
MOVCL,N
MOVCH,0H
LOOP22:
POPDX
ADDDX,30H
MOVAH,2
INT21H
LOOPLOOP22
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
实验3
DATASEGMENT
LENGDW0H
DATAENDS
STACK1SEGMENTPARASTACK
DW30HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
LOOP1:
MOVAH,1
INT21H
CMPAL,20H
JELOOP1
INCLENG
MOVAH,0
PUSHAX
CMPAL,0DH
JNELOOP1
MOVDL,0AH;输出换行和回车
MOVAH,2
INT21H
MOVDL,0DH
MOVAH,2
INT21H
POPDX
DECLENG
MOVCX,LENG
LOOP2:
POPDX
MOVAH,2
INT21H
LOOPLOOP2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
四实验结果
实验1结果
实验2结果
实验3结果
五实验心得
1.计算机中处理的信息不全是数,有时需要处理字符或字符串,因此,计算机中必须能表示字符。
这些字符在计算机中用二进制表示,最常用的是ask值表示
1〉当我们利用指令
MOVAH,1H
INT21H
输入数字时,所得到存放在AL中的并不数字本身,而是相对应的ask值,因此,在输入后需要对字符进行深加工后才能够使用,有时还需要通过判断来决定对字符串的处理方式。
2〉当程序运行得到结果时,我们在输出结果时,依然要得到相对应的ask值之后才能输出,在转换为相对应的ask值时,依然要通过判断来决定处理的方式,例如,在以十六进制输出结果时,就要判断是加上30H还是加上37H。
然后将ask值放DL中,再利用
MOVAH,2H
INT21H
输出。
3.将输入的一段字符串反序输出时,我认为堆栈是最好的选择,因为堆栈是‘先进后出’的原则,所以最先输入的最后输出。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算术 运算 代码 转换 程序设计