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

我来回答

3个回答

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

CRLF MACRO;定义宏
MOV DL,0DH;调用DOS中断字符输出,输出字符ASCLL是0DH,即换行符
MOV AH,02H;中断功能号02H
INT 21H;DOS中断,21H
MOV DL,0AH;调用DOS中断字符输出,输出字符ASCLL是0AH,即回车
MOV,AH,02H;中断功能号02H
INT 21H;;DOS中断,21H
ENDM ;宏定义结束
DATA SEGMENT ;数据段
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 ;预定义TOP为STA的长度
STACK ENDS;堆栈段结束
CODE SEGMENT;代码段
ASSUME CS:CODE,DS:STACK,ES:DATA ;指定相关段
START: MOV AX,DATA;把DATA段的段地址赋予AX
MOV DS,AX;通过AX把DATA段地址赋予DS
MOV AX,STACK;把STACK段的段地址赋予AX
MOV SS,AX;通过AX把STACK段地址赋予SS
MOV AX,TOP;把TOP赋予AX
MOV SP,AX;把AX的值赋予栈指针,即让SP指向堆栈段段尾
MOV SI,OFFSET DATA2;把变量DATA2的偏移地址赋予SI
MOV BX,05;把BX赋值为05
CALL DISPL;调用子程序DISPL
CRLF;宏CRLF,即输出换行符
MOV SI,OFFSET DATA1;把变量DATA1的偏移地址赋予SI
MOV BX,05;把BX赋值为05
CALL DISPL;调用子程序DISPL
CRLF;宏CRLF,即输出换行符
MOV DI,OFFSET DATA2;把变量DATA2的偏移地址赋予DI
CALL ADDA;调用子程序ADDA
MOV SI,OFFSET DATA1;把变量DATA1的偏移地址赋予DI
MOV BX,05;把BX赋值为05
CALL DISPL;调用子程序DISPL
CRLF;宏CRLF,即输出换行符
MOV AX,4C00H ;准备调用DOS终端结束程序,功能号4CH,返回值0
INT 21H;调用DOS中断
DISPL PROC NEAR ;子程序DISPL
DS1:MOV AH,02 ;准备调用DOS中断,功能好02,即字符输出
MOV DL,[SI+BX-1];字符的ASCLL代码在[SI+BX-1]中
INT 21H;调用中断
DEC BX;BX值减1
JNZ DS1;条件跳转到DS1,即重复5次
RET;子程序返回
DISPL ENDP;子程序结束
ADDA PROC NEAR;子程序NEAR
MOV DX,SI;SI值赋予DI
MOV BP,DI;DI值赋予BP
MOV BX,05;把BX赋值为05
AD1:SUB BYTE PTR[SI+BX-1],30H;[SI+BX-1]中的数值减30H
SUB BYTE PTR[DI+BX-1],30H;[DI+BX-1]中的数值减30H
DEC BX ;BX值减1
JNZ AD1;条件跳转,即循环5次
MOV SI,DX;把DX的值赋予SI
MOV DI,BP;把BP的值赋予DI
MOV CX,05;把CX赋值为05
CLC;CF标识符清零
AD2: MOV AL,[SI];把[SI]中的值赋予AL
MOV BL,[DI];把[DI]中的值赋予BL
ADC AL,BL;AL=AL+BL
AAA;非压缩BCD码调整
MOV [SI],AL;AL的值赋予[SI]
INC SI;SI=SI+1
INC DI;DI=DI+1
LOOP AD2;循环跳转AD2
MOV SI,DX;SI赋值为DX的值
MOV DI,BP;DI赋值为BP的值
MOV BX,05;BX赋值为05
AD3:ADD BYTE PTR[SI+BX-1],30H;[SI+BX-1]中的数值加30H
ADD BYTE PTR[DI+BX-1],30H;[DI+BX-1]中的数值加30H
DEC BX;BX=BX-1
JNZ AD3;条件跳转到AD3
RET;子程序返回
ADDA ENDP;子程序结束
CODE ENDS;代码段结束
END START;程序结束

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

程序要完成的功能很简单,就是将用ASCII码定义的两串数字39174+65082,结果还是用十进制的形式显示在屏幕上。
程序结构是主程序调用显示子程序DISPL、加法计算子程序ADDA的形式完成的。

热心网友 时间:2022-04-24 18:51

CRLF MACRO;定义宏,功能上光标指向下一行
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV,AH,02H
INT 21H
ENDM;宏定义结束
DATA SEGMENT
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
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:STACK,ES:DATA
START: MOV AX,DATA;程序开始,将DATA的段地址赋给DS
MOV DS,AX
MOV AX,STACK;将STACK的短地址赋给SS
MOV SS,AX
MOV AX,TOP;SP指向栈顶
MOV SP,AX
MOV SI,OFFSET DATA2;SI指向DATA2的偏移地址
MOV BX,05
CALL DISPL;调用子程序DISPL
CRLF;宏调用
MOV SI,OFFSET DATA1;SI指向DATA1的偏移地址
MOV BX,05
CALL DISPL;调用子程序DISPL
CRLF;宏调用
MOV DI,OFFSET DATA2;DI指向DATA2的偏移地址
CALL ADDA;调用子程序ADDA,此时,SI指向DATA1的偏移地址,DI指向DATA2的偏移地址
MOV SI,OFFSET DATA1
MOV BX,05
CALL DISPL;调用子程序DISPL
CRLF
MOV AX,4C00H ;软中断
INT 21H
DISPL PROC NEAR ;定义子程序DISPL,功能是将数组中的数顺序反过来输出
DS1:MOV AH,02
MOV DL,[SI+BX-1]
INT 21H
DEC BX
JNZ DS1
RET
DISPL ENDP
ADDA PROC NEAR;定义子程序ADDA,作用是将两数组中的数对应相加,并将结果转化成ASCII码表示。应该是为了后面调用DISPL将其十进制输出
MOV DX,SI
MOV BP,DI
MOV BX,05
AD1:SUB BYTE PTR[SI+BX-1],30H;将数组中的数减30H
SUB BYTE PTR[DI+BX-1],30H;同上
DEC BX
JNZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05
CLC;进位标志CF清零
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL;将数组中对应的数相加
AAA;将运算结果调整为非压缩十进制数
MOV [SI],AL;将AL存到SI所指向的数组中
INC SI
INC DI
LOOP AD2
MOV SI,DX
MOV DI,BP
MOV BX,05
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
逃跑吧!少年 逃跑吧少年有哪些彩蛋? 逃跑吧!少年 逃跑吧少年失忆者怎么玩? 逃跑吧!少年 逃跑吧少年失忆者动作举荧光棒在哪获得? 考驾照周六有考试吗 烟台星期六可以考驾照吗 考驾照的站岗星期六星期天可以站吗 如何看待张艺谋导演的电影《满江红》被指“辱女”? 满江红艺伎叫什么 月经不来尿尿前好像憋着似的一上厕所就尿的不多 怎么学英语歌?我学不会? 微机原理汇编语言问题,哪位高手帮忙解决下?要求写出程序注释,并把源程序改为任意两个六位十进制相加。 哪位英文高手帮忙翻译一下,非常感谢! 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上显示出矩阵键盘的十六进制码,主要是如何把保存的十六进制数转化成十进制? 鼻子起皮怎么办? 中天一幼儿园 中天一幼儿园 幼儿园的户外场地怎么样,孩子们玩的器械多么? 如何使用汇编语言程序设计方法在屏幕上输出汉字?