首页 汇编语言键盘输入十六进制加法

汇编语言键盘输入十六进制加法

举报
开通vip

汇编语言键盘输入十六进制加法汇编语言键盘输入十六进制加法 十六进制加法 DSEG SEGMENT 'DATA' DATA1 DB 5,0,5 DUP(?) DB 5 DUP(?) DATA2 DB 5,0,5 DUP(?) DB 5 DUP(?) DATA3 DB 6 DUP(?),'$' DATA4 DB 0DH,0AH,'SORRY!THE NUMBER IS ILLEGAL!',0DH,0AH,'$' DSEG ENDS SSEG SEGMENT STACK 'STACK' DW 100h DUP(?) SSEG EN...

汇编语言键盘输入十六进制加法
汇编语言键盘输入十六进制加法 十六进制加法 DSEG SEGMENT 'DATA' DATA1 DB 5,0,5 DUP(?) DB 5 DUP(?) DATA2 DB 5,0,5 DUP(?) DB 5 DUP(?) DATA3 DB 6 DUP(?),'$' DATA4 DB 0DH,0AH,'SORRY!THE NUMBER IS ILLEGAL!',0DH,0AH,'$' DSEG ENDS SSEG SEGMENT STACK 'STACK' DW 100h DUP(?) SSEG ENDS DISP MACRO M MOV DL,M MOV AH,2 INT 21H ENDM CSEG SEGMENT 'CODE' ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DSEG MOV DS, AX MOV ES, AX L1: MOV DX,OFFSET DATA1 ;键盘输入四位十六进制数 MOV AH,0AH INT 21H DISP 'H' ;屏幕显示H DISP '+' ;屏幕显示加号 MOV DX,OFFSET DATA2 ;键盘输入四位十六进制数 MOV AH,0AH INT 21H DISP 'H' ;屏幕显示H DISP '=' ;屏幕显示等号 MOV BX,10 ;赋值BX为10,作为除数,用以转换十六进制数为十进制数 XOR AX,AX ;AX清零,用来存十六进制数 LEA SI,DATA1[5] ;指针指向十六进制数的个位 CALL HUAN ;调用子程序 LEA SI,DATA1[11] ;指针指向DATA1[11],用来存入转换后的十进制数 CALL ZHUAN ;调用子程序 LEA SI,DATA2[5] ;指针指向十六进制数的个位 CALL HUAN ;调用子程序 LEA SI,DATA2[11] ;指针指向DATA2[11],用来存入转换后的十进制数 CALL ZHUAN ;调用子程序 LEA SI,DATA1[11] ;指针指向第一个十进制数 LEA DI,DATA2[11] ;指针指向第二个十进制数 LEA BX,DATA3[5] ;指针指向DATA3[5],用来存入相加的结果 MOV CX,5 ;循环次数为5(五位数相加,加五次) CLC ;CF位清零 L2: MOV AL,[SI] ;以下为相加的程序 ADC AL,[DI] AAA PUSHF OR AL,30H POPF MOV [BX],AL DEC SI DEC DI DEC BX LOOP L2 JNC L3 MOV [BX],'1' L3: MOV DX,OFFSET DATA3 ;屏幕显示和 MOV AH,09H INT 21H MOV AH,4CH ;返回DOS INT 21H RET START ENDP HUAN PROC ;将四位十六进制数按位存入AX CALL BIAN OR AL,DL CALL BIAN MOV CL,4 SHL DL,CL OR AL,DL CALL BIAN OR AH,DL CALL BIAN MOV CL,4 SHL DL,CL OR AH,DL RET HUAN ENDP BIAN PROC ;判断输入的十六进制数是否合法? MOV DL,[SI] CMP DL,30H ;是否在0-9范围内 JB ERROR CMP DL,3AH JB A1 CMP DL,41H ;是否在A-F范围内 JB ERROR CMP DL,47H JB A2 CMP DL,61H ;是否在a-f范围内 JB ERROR CMP DL,67H JB A2 ERROR: LEA DX,DATA4 ;屏幕显示输入非法'SORRY!THE NUMBER IS ILLEGAL!' MOV AH,09H INT 21H JMP L1 A1: AND DL,0FH ;该位十六进制数为数字,高位清零 JMP A3 A2: ADD DL,09H ;该位十六进制数为字母,数值加九后,高位清零 AND DL,0FH A3: DEC SI RET BIAN ENDP ZHUAN PROC C1: XOR DX,DX ;AX除以BX,得到的余数(在DL内),即为转换后的十进 制数 DIV BX OR DL,30H MOV [SI],DL DEC SI CMP AX,0 ;判断AX=0?是,所有十六进制数全部转换为了十进制 数;否则,继续AX除以BX JNZ C1 RET ZHUAN ENDP CSEG ENDS END START
本文档为【汇编语言键盘输入十六进制加法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731942
暂无简介~
格式:doc
大小:17KB
软件:Word
页数:0
分类:其他高等教育
上传时间:2017-12-04
浏览量:48