问答文章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

我来回答

1个回答

热心网友 时间:2023-10-27 21:07

;整个程序实现data1和data2的相加
CRLF MACRO;宏定义回车换行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT;data1和data2为加数和被加数
DATA1 DB 33H,39H,31H,37H,34H
DATA2 DB 36H,35H,30H,38H,32H
DATA ENDS
STACK SEGMENT
STA DB 20 DUP(?)
TOP EQU LENGTH STA;把sta的长度给top
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
start: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2;把data2的偏移量给si
MOV BX,05;初始bx,输出五个字符
CALL DISPL;调用displ输出data2
CRLF;回车换行
MOV SI,OFFSET DATA1;把data1的偏移量给si
MOV BX,05;初始bx,输出五个字符
CALL DISPL;调用displ输出data1
CRLF;回车换行
MOV DI,OFFSET DATA2;把data2的偏移量给di
CALL ADDA;调用加法子程序,运算结果在data1中
MOV SI,OFFSET DATA1
MOV BX,05
CALL DISPL;输出结果
CRLF
MOV AX,4C00H
INT 21H
DISPL PROC NEAR;显示【si+bx-1中的内容】
DS1: MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1;循环5次
RET
DISPL ENDP
ADDA PROC NEAR;
MOV DX,SI;保存si
MOV BP,DI;保存di
MOV BX,05
AD1: SUB BYTE PTR [SI+BX-1],30H;把SI+BX-1字节中的asc||码还原成数字
SUB BYTE PTR [DI+BX-1],30H;把DI+BX-1字节中的asc||码还原成数字
DEC BX
JNZ AD1
MOV SI,DX;还原si
MOV DI,BP;还原si
MOV CX,05
CLC
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL;带进位加
AAA;调整al为非压缩的bcd码
MOV [SI],AL;保存结果
INC SI
INC DI
LOOP AD2
MOV SI,DX
MOV DI,BP
MOV BX,05
AD3: ADD BYTE PTR [SI+BX-1],30H;还原为asc||码
ADD BYTE PTR [DI+BX-1],30H;还原为asc||码
DEC BX

JNZ AD3
RET
ADDA ENDP
CODE ENDS
END START

修改后输六位的是下面的
;整个程序实现data1和data2的相加
CRLF MACRO;宏定义回车换行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT;data1和data2为加数和被加数
DATA1 DB 6 p(?)
DATA2 DB 6 p(?)
data3 db ?
DATA ENDS
STACK SEGMENT
STA DB 20 DUP(?)
TOP EQU LENGTH STA;把sta的长度给top
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
start: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2;把data2的偏移量给si
CALL shuru
CRLF;回车换行
MOV SI,OFFSET DATA1;把data1的偏移量给si
call shuru
CRLF;回车换行
MOV DI,OFFSET DATA2;把data2的偏移量给di
CALL ADDA;调用加法子程序,运算结果在data1中
mov ah,data3
sahf
mov dl,30h
adc dl,0
cmp dl,30h
jz a
mov ah,02h
int 21h
a: MOV SI,OFFSET DATA1
MOV BX,06
CALL DISPL;输出结果
CRLF
MOV AX,4C00H
INT 21H
DISPL PROC NEAR;显示【si+bx-1中的内容】
DS1: MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1;循环5次
RET
DISPL ENDP
ADDA PROC NEAR;
MOV DX,SI;保存si
MOV BP,DI;保存di
MOV BX,06
AD1: SUB BYTE PTR [SI+BX-1],30H;把SI+BX-1字节中的asc||码还原成数字
SUB BYTE PTR [DI+BX-1],30H;把DI+BX-1字节中的asc||码还原成数字
DEC BX
JNZ AD1
MOV SI,DX;还原si
MOV DI,BP;还原si
MOV CX,06
CLC
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL;带进位加
AAA;调整al为非压缩的bcd码
MOV [SI],AL;保存结果
INC SI
INC DI
LOOP AD2
lahf
mov data3,ah
MOV SI,DX
MOV DI,BP
MOV BX,06
AD3: ADD BYTE PTR [SI+BX-1],30H;还原为asc||码
ADD BYTE PTR [DI+BX-1],30H;还原为asc||码
DEC BX

JNZ AD3
RET
ADDA ENDP
shuru proc near
mov bx,6
sh1: mov ah,01h
int 21h
mov [si+bx-1],al
dec bx
cmp bx,0
jnz sh1
ret
shuru endp

CODE ENDS
END START

热心网友 时间:2023-10-27 21:08

;整个程序实现data1和data2的相加
CRLF MACRO;宏定义回车换行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT;data1和data2为加数和被加数
DATA1 DB 33H,39H,31H,37H,34H
DATA2 DB 36H,35H,30H,38H,32H
DATA ENDS
STACK SEGMENT
STA DB 20 DUP(?)
TOP EQU LENGTH STA;把sta的长度给top
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
start: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2;把data2的偏移量给si
MOV BX,05;初始bx,输出五个字符
CALL DISPL;调用displ输出data2
CRLF;回车换行
MOV SI,OFFSET DATA1;把data1的偏移量给si
MOV BX,05;初始bx,输出五个字符
CALL DISPL;调用displ输出data1
CRLF;回车换行
MOV DI,OFFSET DATA2;把data2的偏移量给di
CALL ADDA;调用加法子程序,运算结果在data1中
MOV SI,OFFSET DATA1
MOV BX,05
CALL DISPL;输出结果
CRLF
MOV AX,4C00H
INT 21H
DISPL PROC NEAR;显示【si+bx-1中的内容】
DS1: MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1;循环5次
RET
DISPL ENDP
ADDA PROC NEAR;
MOV DX,SI;保存si
MOV BP,DI;保存di
MOV BX,05
AD1: SUB BYTE PTR [SI+BX-1],30H;把SI+BX-1字节中的asc||码还原成数字
SUB BYTE PTR [DI+BX-1],30H;把DI+BX-1字节中的asc||码还原成数字
DEC BX
JNZ AD1
MOV SI,DX;还原si
MOV DI,BP;还原si
MOV CX,05
CLC
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL;带进位加
AAA;调整al为非压缩的bcd码
MOV [SI],AL;保存结果
INC SI
INC DI
LOOP AD2
MOV SI,DX
MOV DI,BP
MOV BX,05
AD3: ADD BYTE PTR [SI+BX-1],30H;还原为asc||码
ADD BYTE PTR [DI+BX-1],30H;还原为asc||码
DEC BX

JNZ AD3
RET
ADDA ENDP
CODE ENDS
END START

修改后输六位的是下面的
;整个程序实现data1和data2的相加
CRLF MACRO;宏定义回车换行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT;data1和data2为加数和被加数
DATA1 DB 6 p(?)
DATA2 DB 6 p(?)
data3 db ?
DATA ENDS
STACK SEGMENT
STA DB 20 DUP(?)
TOP EQU LENGTH STA;把sta的长度给top
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
start: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV SI,OFFSET DATA2;把data2的偏移量给si
CALL shuru
CRLF;回车换行
MOV SI,OFFSET DATA1;把data1的偏移量给si
call shuru
CRLF;回车换行
MOV DI,OFFSET DATA2;把data2的偏移量给di
CALL ADDA;调用加法子程序,运算结果在data1中
mov ah,data3
sahf
mov dl,30h
adc dl,0
cmp dl,30h
jz a
mov ah,02h
int 21h
a: MOV SI,OFFSET DATA1
MOV BX,06
CALL DISPL;输出结果
CRLF
MOV AX,4C00H
INT 21H
DISPL PROC NEAR;显示【si+bx-1中的内容】
DS1: MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1;循环5次
RET
DISPL ENDP
ADDA PROC NEAR;
MOV DX,SI;保存si
MOV BP,DI;保存di
MOV BX,06
AD1: SUB BYTE PTR [SI+BX-1],30H;把SI+BX-1字节中的asc||码还原成数字
SUB BYTE PTR [DI+BX-1],30H;把DI+BX-1字节中的asc||码还原成数字
DEC BX
JNZ AD1
MOV SI,DX;还原si
MOV DI,BP;还原si
MOV CX,06
CLC
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL;带进位加
AAA;调整al为非压缩的bcd码
MOV [SI],AL;保存结果
INC SI
INC DI
LOOP AD2
lahf
mov data3,ah
MOV SI,DX
MOV DI,BP
MOV BX,06
AD3: ADD BYTE PTR [SI+BX-1],30H;还原为asc||码
ADD BYTE PTR [DI+BX-1],30H;还原为asc||码
DEC BX

JNZ AD3
RET
ADDA ENDP
shuru proc near
mov bx,6
sh1: mov ah,01h
int 21h
mov [si+bx-1],al
dec bx
cmp bx,0
jnz sh1
ret
shuru endp

CODE ENDS
END START
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...怎么插入耳机时 耳机和外放都有声音?我用驱动人生驱动过显示声卡是正... USB耳机插入听不到声音,用什么软件可以听到声音?我的耳机是赛德斯的,听... 用USB71耳机看电影和用35mm立体声耳机杜比音效看电影哪个效果好 学生和家庭情况如何填写呢? 当初老板帮我租房子,租了半年,老板说干满半年才能退,现在没有干满半年... 博湖县在哪买辣椒酱 宝宝都一岁多了,要记得做这款高钙食物,不要浪费长身体的机会 高钙零食可不可以帮助孩子长高呢? 文艺一些的纹身店名字 宝马325li是三缸吗? 哪位英文高手帮忙翻译一下,非常感谢! CSS中display:block是什么意思? display单词由来.用法 体检中心都有哪些体检项目 体检中心可以考职称吗 苹果8p屏幕自动变暗怎么设置? 体检可以去医院吗? 小米8和苹果8p买买哪一个比较好? 我想做核磁共振的检查,请问哪家体检中心可以? 8p,屏幕亮度会自动调节,应该怎么设置 小米8是抄袭iPhone X么,怎么它俩这么像呢 五一体检中心可以办健康证么 想知道体检中心可以检查出职业病么。能检查出职业病是不是必须去专属的医院 小米8和苹果7p怎么选择呢,为什么。(手机都是从某靓机上购买,相差不超过500元,都是最低配) 体检中心可以在入职体检中检查乙肝五项么 iPhone 8 Plus和小米8哪个性价比高 体检中心可以检查视力吗 说实在的 买手机买小米8好还是苹果7p好? 一般的体检中心,可以检查有没有妇科病吗。我不想去医院,只想去体检中心。 去体检中心体检有用吗? 汇编语言 把下面这个程序每条指令加注释,尽量的详细 鼻子总是爆皮怎么回事? 泉州哪些地方适合幼儿园小朋友玩 JavaScript的问题:点击登陆按钮,弹出某div...我是说弹出,而不是简单地更改displ DISPLSABLE VINYL GLOVES是什么意思? 沙市适合幼儿园小朋友玩的地方 鼻子起皮怎么办 R语言dplyr包中窗口函数应用! 幼儿园好玩的游戏 鼻子总起皮,是为什么?怎么办处理? 变频器rpm怎么改成赫兹? 幼儿园户外场地小怎么开展游戏 鼻子总爆皮为什么? 船舶资料英语翻译? 孩子要上幼儿园了,最近武汉有没有什么好玩的地方可以带孩子去玩的? 秋天到了我鼻子老起皮怎么办? info displ什么意思 51单片机编程问题,如何在1602上显示出矩阵键盘的十六进制码,主要是如何把保存的十六进制数转化成十进制? 鼻子起皮怎么办? 中天一幼儿园 中天一幼儿园 幼儿园的户外场地怎么样,孩子们玩的器械多么?