单片机 用汇编语言编写三个字节数的相加的程序,要用堆栈保护,急!!!!!

 我来答
maxisheng_bd
2011-01-29
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
堆栈保护?用中断来做三个字节数的相加是吧?我只能给你说下此程序的整个流程。
1. 进行现场保护,保存工作寄存器,状态寄存器值等中断中用到的寄存器。
2. 将求和用的寄存器(至少4个字节)清零;
3. 将最低字节被加数送入工作寄存器,加数最低字节与工作寄存器相加,结果存在工作寄存器;
4.工作寄存器内容送入和的最低字节,如有进位和的第2字节加1;
5. .将第2字节被加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节, 如有进位,和的第3字节加1;
6. 将第2字节加数送入工作寄存器,和的第2字节与工作寄存器相加,结果存在和的第2字节,.如有进位和的第3字节加1;
7..将第3字节被加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节, 如有进位,和的第4字节加1;
8. 将第3字节加数送入工作寄存器,和的第3字节与工作寄存器相加,结果存在和的第3字节,.如有进位和的第4字节加1;
9. . 恢复现场,恢复工作寄存器,状态寄存器值等中断中用到的寄存器。
百度网友b79519e
2011-01-17 · TA获得超过3399个赞
知道大有可为答主
回答量:1417
采纳率:100%
帮助的人:1316万
展开全部
DATA SEGMENT
NUM DW 3456H,2612H,7000H
DATA ENDS
STACK SEGMENT
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET NUM
PUSH [SI]
PUSH [SI+2]
PUSH [SI+4]
CALL ACCUMU
CALL DISPLAY
MOV AH,4CH
INT 21H
ACCUMU PROC
MOV BP,SP
MOV AX,0
ADD AX,[BP+2]
ADD AX,[BP+4]
ADD AX,[BP+6]
MOV BX,AX
RET 3
ACCUMU ENDP
DISPLAY PROC
MOV CX,10H
LP:MOV DL,'0'
RCL BX,1
JNC LP1
MOV DL,'1'
LP1:MOV AH,2
INT 21H
LOOP LP
RET
DISPLAY ENDP
CODE ENDS
END START
以上程序的功能是将2个字类型的数据相加,使用堆栈传递参数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式