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

汇编语言,两数相乘或相加帮忙解释

发布网友 发布时间:2022-04-24 04:25

我来回答

2个回答

热心网友 时间:2022-04-24 15:59

;这够详细了
;如果哪里不懂,你指出来吧!
;=======================================================
;CRLF宏定义
;功能:回车换行
CRLF MACRO
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT
DATA1 DB 5 DUP(0)
DATA2 DB 5 DUP(0)
RESULT DB 6 DUP(?)

DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STA DB 20 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX ;初始化数据段寄存器
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX ;这个紧随MOV SS,AX较妥当,所以MOV SP,TOP就好,SP又不是段寄存器

MOV SI,OFFSET DATA2
MOV BX,05
CALL INKEY ;输入DATA2,之所以先输入DATA2,是为了在ADDA之前少一个MOV SI,OFFSET DATA1
CRLF ;宏调用换行,下同
MOV SI,OFFSET DATA1
MOV BX,05
CALL INKEY
CRLF
MOV DI,OFFSET DATA2
CALL ADDA ;加法
MOV SI,OFFSET DATA1
MOV BX,06
CALL DISPL ;显示输出
CRLF
MOV AX,4C00H
INT 21H
;DISPL子程序定义
;功能:打印字符串
;参数:SI=字符串首地址
; BX=字符串长度
;返回:NONE
DISPL PROC NEAR
DS1: MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1
RET
DISPL ENDP
;INKEY子程序定义
;功能:输入字符串
;参数:SI=字符串首地址
; BX=字符串长度
;返回:NONE
INKEY PROC NEAR
IN1: MOV AH,01
INT 21H
MOV [SI+BX-1],AL
DEC BX
JNZ IN1
RET
INKEY ENDP
;INKEY子程序定义
;功能:多位加法
;参数:SI=目标字符串首地址
; SI=目标字符串首地址
; BX=字符串长度
;返回:NONE
ADDA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV BX,05
AD1: SUB BYTE PTR [SI+BX-1],30H
SUB BYTE PTR [DI+BX-1],30H
DEC BX
JNZ AD1 ;转换字串为数字
MOV SI,DX
MOV DI,BP
MOV CX,05
CLC
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL ;带进位加法
AAA ;非压缩BCD加法调整
MOV [SI],AL ;保存结果
INC SI
INC DI
LOOP AD2
;------------------------------
MOV AL,00H
ADC AL,00H
MOV [SI],AL
;------------------------------
;处理最高位
;就是[SI]+CF->[SI]
;我可能会这么写
;JNC YC
;INC BYTE PTR [SI]
;YC:
MOV SI,DX
MOV DI,BP
MOV BX,06

AD3: ADD BYTE PTR [SI+BX-1],30H
ADD BYTE PTR [DI+BX-1],30H
DEC BX
JNZ AD3 ;转换数为字串
RET
ADDA ENDP
CODE ENDS
END START

热心网友 时间:2022-04-24 17:17

;这够详细了
;如果哪里不懂,你指出来吧!
;=======================================================
;CRLF宏定义
;功能:回车换行
CRLF
MACRO
MOV
DL,0DH
MOV
AH,02H
INT
21H
MOV
DL,0AH
MOV
AH,02H
INT
21H
ENDM
DATA
SEGMENT
DATA1
DB
5
DUP(0)
DATA2
DB
5
DUP(0)
RESULT
DB
6
DUP(?)
DATA
ENDS
STACK
SEGMENT
PARA
STACK
'STACK'
STA
DB
20
DUP(?)
TOP
EQU
LENGTH
STA
STACK
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA,SS:STACK
START:
MOV
AX,DATA
MOV
DS,AX
;初始化数据段寄存器
MOV
AX,STACK
MOV
SS,AX
MOV
AX,TOP
MOV
SP,AX
;这个紧随MOV
SS,AX较妥当,所以MOV
SP,TOP就好,SP又不是段寄存器
MOV
SI,OFFSET
DATA2
MOV
BX,05
CALL
INKEY
;输入DATA2,之所以先输入DATA2,是为了在ADDA之前少一个MOV
SI,OFFSET
DATA1
CRLF
;宏调用换行,下同
MOV
SI,OFFSET
DATA1
MOV
BX,05
CALL
INKEY
CRLF
MOV
DI,OFFSET
DATA2
CALL
ADDA
;加法
MOV
SI,OFFSET
DATA1
MOV
BX,06
CALL
DISPL
;显示输出
CRLF
MOV
AX,4C00H
INT
21H
;DISPL子程序定义
;功能:打印字符串
;参数:SI=字符串首地址
;
BX=字符串长度
;返回:NONE
DISPL
PROC
NEAR
DS1:
MOV
AH,02
MOV
DL,[SI+BX-1]
INT
21H
DEC
BX
JNZ
DS1
RET
DISPL
ENDP
;INKEY子程序定义
;功能:输入字符串
;参数:SI=字符串首地址
;
BX=字符串长度
;返回:NONE
INKEY
PROC
NEAR
IN1:
MOV
AH,01
INT
21H
MOV
[SI+BX-1],AL
DEC
BX
JNZ
IN1
RET
INKEY
ENDP
;INKEY子程序定义
;功能:多位加法
;参数:SI=目标字符串首地址
;
SI=目标字符串首地址
;
BX=字符串长度
;返回:NONE
ADDA
PROC
NEAR
MOV
DX,SI
MOV
BP,DI
MOV
BX,05
AD1:
SUB
BYTE
PTR
[SI+BX-1],30H
SUB
BYTE
PTR
[DI+BX-1],30H
DEC
BX
JNZ
AD1
;转换字串为数字
MOV
SI,DX
MOV
DI,BP
MOV
CX,05
CLC
AD2:
MOV
AL,[SI]
MOV
BL,[DI]
ADC
AL,BL
;带进位加法
AAA
;非压缩BCD加法调整
MOV
[SI],AL
;保存结果
INC
SI
INC
DI
LOOP
AD2
;------------------------------
MOV
AL,00H
ADC
AL,00H
MOV
[SI],AL
;------------------------------
;处理最高位
;就是[SI]+CF->[SI]
;我可能会这么写
;JNC
YC
;INC
BYTE
PTR
[SI]
;YC:
MOV
SI,DX
MOV
DI,BP
MOV
BX,06
AD3:
ADD
BYTE
PTR
[SI+BX-1],30H
ADD
BYTE
PTR
[DI+BX-1],30H
DEC
BX
JNZ
AD3
;转换数为字串
RET
ADDA
ENDP
CODE
ENDS
END
START
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
win7不能浏览网页,但用搜狗浏览器高速模式能上网,兼容就不行???求 ... ...64位 IE浏览器无法打开网页 搜狗浏览器可以打开 类似的新窗口网页都... 千牛工作台子账号怎么开权限?子账号的安全设置在哪里? 千牛怎么设置子账号-千牛设置子账号步骤 怎么把CD里的歌曲改成MP3格式? ...戴眼镜吗?想给孩子去检查一下,哪里比较推荐,渭南这块的 Windows Media Player将CD音乐转换为MP3 最简单的方法将CD转换为MP3音频文件(一步一步教你将CD音乐转换为MP3格 ... 孩子最近视力下降了有可能是近视吗?渭南哪里可以免费检查视力啊 奥运会跳远世界纪录 鼻子爆皮是怎么回事?我今天从鼻子上撕下来好几块皮 我是一个大学生,老师让做一个EDA的实验设计,请专家帮帮我啊!先谢谢了... 为什么鼻子上总是起皮 如何使用汇编语言程序设计方法在屏幕上输出汉字? 中天一幼儿园 中天一幼儿园 幼儿园的户外场地怎么样,孩子们玩的器械多么? 鼻子起皮怎么办? 51单片机编程问题,如何在1602上显示出矩阵键盘的十六进制码,主要是如何把保存的十六进制数转化成十进制? info displ什么意思 秋天到了我鼻子老起皮怎么办? 孩子要上幼儿园了,最近武汉有没有什么好玩的地方可以带孩子去玩的? 船舶资料英语翻译? 鼻子总爆皮为什么? 幼儿园户外场地小怎么开展游戏 变频器rpm怎么改成赫兹? 鼻子总起皮,是为什么?怎么办处理? 幼儿园好玩的游戏 R语言dplyr包中窗口函数应用! 鼻子起皮怎么办 沙市适合幼儿园小朋友玩的地方 DISPLSABLE VINYL GLOVES是什么意思? 鼻子上起皮怎么去除 用jquery怎么样实现下点击其他地方下拉菜单 鼻子掉皮怎么办 汇编编程,中断程序,并显示中断次数! 鼻子掉皮,有什么简单,方便的方法解决? 鼻子周围干燥起皮怎么办 汇编语言,冒泡法排序 有关旅行的名言 鼻子西边干燥起皮 关于旅游的名言警句 关于旅游的谚语或者名言 关于旅游的名言 关于旅行的经典语录 旅游名言名句经典语录山 我的太阳电子书txt全集下载 天缝元帅伤我心是什么生肖 缝了一针几天拆线 美缝后几天可以磁砖上面可以覆盖膜保护地面 伤口缝合没有缝好过了4天还可以补缝吗 做完美缝过几天可以直接刷漆面