问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

两个数相加的汇编语言程序

发布网友 发布时间:2022-12-16 16:22

我来回答

1个回答

热心网友 时间:2024-12-12 13:36

DATAS SEGMENT
STR1 DB 'Please input the first number(10-99) a:$'
STR2 DB 'Please input the second number(10-99) b:$'
STR3 DB 'The anwser a+b=$'
STR4 DB 'a=$'
STR5 DB 'b=$'
D1 DB 10
DB ?
D11 DB 10 DUP(?)
D2 DB 10
DB ?
D22 DB 10 DUP(?)
N1 DW ?
N2 DW ?
DATAS ENDS

STACKS SEGMENT
STA DB 100 DUP(?)
TOP EQU LENGTH STA
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV AX,TOP
MOV SP,AX

MOV DX,OFFSET STR1 ;输入第一个个数
MOV AH,9
INT 21H
MOV DX,OFFSET D1
MOV AH,0AH
INT 21H

MOV DL,0DH ;回车换行
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H

MOV DX,OFFSET STR2 ;输入第二个数
MOV AH,9
INT 21H
MOV DX,OFFSET D2
MOV AH,0AH
INT 21H

MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR4
MOV AH,9
INT 21H

LEA SI,D1 ;第一个数放在D1
LEA DI,D11
CALL SLZSJZ ;调用子程序,将字符串D1转换为真正的两位数
MOV N1,AX

MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR5
MOV AH,9
INT 21H

LEA SI,D2 ;第二个数放在D2
LEA DI,D22
CALL SLZSJZ ;调用子程序,将字符串D2转换为真正的两位数
MOV N2,AX

MOV DX,0DH
MOV AH,2
INT 21H
MOV DX,0AH
MOV AH,2
INT 21H
MOV DX,OFFSET STR3
MOV AH,9
INT 21H

CALL JGTZ

XOR DX,DX
XOR CH,CH
XOR AH,AH
XOR BH,BH ;输出结果,先输出百位,如为0,则不输出;在输出十位和个位
CMP CL,30H
JZ DEW
PUSH AX
MOV DL,CL
MOV AH,2
INT 21H
POP AX
DEW:MOV DL,AL
MOV AH,2
INT 21H
XOR DX,DX
MOV DL,BL
MOV AH,2
INT 21H

JMP EXIT

JGTZ PROC
MOV BX,N1
MOV DX,N2
XOR CX,CX
ADD DX,BX
MOV AX,DX
XOR DX,DX
MOV DL,100
DIV DL
ADD AL,30H
MOV CL,AL ;结果的第一位放在CL
MOV AL,AH
XOR AH,AH
MOV DL,10
DIV DL
ADD AL,30H ;结果的第二位放在AL
MOV BL,AH
ADD BL,30H ;结果的第三位放在BL
XOR AH,AH
RET
JGTZ ENDP

SLZSJZ PROC
MOV [SI+4],'$'
MOV DX,DI ;输出输入的两位数
MOV AH,9
INT 21H

XOR CX,CX ;将输入的字符串每位的ASCII码转为真正的数字
MOV CX,2

SUB [SI+2],30H
SUB [SI+3],30H

XOR AX,AX ;计算出输入的两位数
XOR BX,BX
MOV AL,10
MOV BL,[SI+2]
MUL BL
ADD AL,[SI+3]
RET
SLZSJZ ENDP

EXIT:MOV AH,4CH
INT 21H
CODES ENDS
END START来自:求助得到的回答
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
太平盛世专辑曲目 梦见自家灶台缺个角 如何看待宝马3系? - 知乎 为什么缺爱的女人婚姻难幸福快乐 求一些好看的架空言情小说,最好是以第一人称为视角的。小白文请绕。 带双目相机的无人机有哪些 禄莱1982年后 工业3d相机国内有哪些靠谱的厂商,特别是在阳光和弱光环境 海康全新双目单线相机 | 消盲区、抑杂光,引领3D检测新突破 10米范围内实现零盲区大FoV深度测量,奥比中光发布Gemini 2双目... 用汇编语言怎么实现两个数的加法? 2022新站区农民工小学有哪些 固镇县三中旁有哪些小区 大家觉得乌克兰是否在战争? 为什么乌克兰很多地区要独立 基辅历史 1988年贵昆铁路事故地点在哪里 统计资料表明,88%的质量安全事故都是由什么造成的? 笔记本电脑的扬声器怎么老是一会自动关闭一会自动打开?是坏了吗... 我的戴尔笔记本电脑扬声器老是自动开关驱动也从新安装了还是不行求解... 电脑扬声器老自己开自己关是怎么回事 在网络俚语中,上网的新手别称为什么如题 谢谢了 职场新人的代称 从古至今,对于新人有哪些别称? 陂,这什么字有多少一样的,跟这个波字一样吗,多谢了 清洗油烟机的工人会带来病毒吗 哪些商业杂志比较好 在零下30度的哈尔滨,出门买菜是一种怎样的体验? centos5.6 怎么配置vnc 如何配置虚拟机的vnc,来保证安全 汇编语言两数组相加,急!!! 求汇编语言大神:两位非组合型BCD码整数加法 用汇编语言编写从键盘输入两个两位的十进制数,做加法运算,并显示结果... 汇编,两二位十进制数相加,结果16进制输出 汇编语言 两位数的加减运算~~~ 第二个是 数值之间的转换 就是2进制专... 什么软件可以一起看电影一起连麦 豆荚猫最开放的mv是哪个 求Doja Cat-say so百度云 say so什么意思 菜板脏用什么洗干净 清洗内容介绍 大型电机二次起动是怎样的 超大功率电机 为什么做不了隔爆型 全新台铃80V36A超大电池1500瓦超大电机电车多少钱 我家里的电钻七八百瓦,最近买了个大的卧式电机也是七八百瓦请问两者间... 请教这个fortran脚本怎么用?据说是把txt文件转化成cst文件 可是在linu... 小米4电信版信号差 小米四电信版插电信卡 为什么网络那么差 信号条是满的就是不显示3g... 我这是小米4电信版。上面显示着可以用4G网,但我就是没有4G信号是怎么... 国庆买了个小米4电信3g,现在才2个月就无服务无信号。 不能上网不能打... 与仲有关的诗句