用汇编语言编写一个简单程序

设堆栈指针SP=2000H,AX=3000H,BX=5000H;编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元。可用的话绝对加分!... 设堆栈指针SP=2000H,AX=3000H,BX=5000H;编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元。可用的话绝对加分! 展开
 我来答
sweet冯
2011-10-30 · TA获得超过148个赞
知道答主
回答量:64
采纳率:0%
帮助的人:34万
展开全部
1.计算U=(X+(Y*Z-100))/W
其中:X,Y,Z,W均为十六位有符号数。
程序如下:
DATA SEGMENT
X DW 10 ;16位变量
Y DW 20
Z DW 30
W DW 40
U DW ?,?

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,Y
IMUL Z ;计算Y*Z,内容放在DX,AX中
MOV CX,AX
MOV BX,DX
SUB CX,100 ;计算Y*Z-100
SBB BX, 0
MOV AX,X
CWD ;将X符号扩展,形成DX:AX中的双字
ADD AX,CX ;计算X+(Y*Z-100),内容放在DX,AX中
ADC DX,BX
IDIV W ;计算(X+(Y*Z-100))/W
MOV U,AX
MOV U+2,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
groundhappy
2011-10-23 · TA获得超过722个赞
知道答主
回答量:146
采纳率:0%
帮助的人:110万
展开全部
PUSH AX
PUSH BX
POP AX
POP BX
核心代码
更多追问追答
追问
能解释一下每行的意思吗?真心是初学者
追答
3000H压栈
5000H压栈
5000H出栈放到AX
3000H出栈放到BX
堆栈是先进后出的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-10 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式