求高手给我的汇编语言程序纠错,急,急急!!! 只要获得正确的编码,会最快奖赏,原题w=(v-(x*y+z-540))/x

DATASEGMENTXdb10Ydb54Zdb300Vdb1000Wdb?DATAENDSCODESEGMENT;定义代码段ASSUMEDS:DATA,CS:CODE,... DATA SEGMENT
X db 10
Y db 54
Z db 300
V db 1000
W db ?
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME DS:DATA,CS:CODE,SS:STACK
START: MOV AX,DATA
MOV DS,AX ;DATA→AX
MOV AX,X
IMUL Y ;(X)*(Y)→DX:AX
MOV CX,AX
MOV BX,DX ;(DX:AX)→(BX:CX)MOV AX,Z
CWD ;(Z)符号扩展ADD CX,AX
ADC BX,DX ;(BX:CX)+(DX:AX)→(BX:CX)SUB CX,540
SBB BX,0 ;(BX:CX)-540→(BX:CX)MOV AX,V
CWD ;(V)符号扩展SUB AX,CX
SBB DX,BX ;(DX:AX)-(BX:CX)→(DX:AX)IDIV X ;(DX:AX)/X
MOV W,AX ;商→W
MOV W+2,DX ;余数DX→W+2
MOV AH,4CH
INT 21H
CODE ENDS ;退出DOS 状态END START
展开
 我来答
帐号已注销
2010-11-09 · TA获得超过517个赞
知道答主
回答量:173
采纳率:0%
帮助的人:93.2万
展开全部
DATA SEGMENT
X db 10
Y db 54
Z db 200
V db 200
W dd ?;这个要用双字
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE;这地方你前面又没有加堆栈段,写个堆栈段干嘛
START:
MOV AX,DATA
MOV DS,AX
MOV AX,X;这个寄存器最好改一下,改成8位的不然要有警告,因为x是字节型
IMUL Y
MOV CX,AX
MOV BX,DX
CWD
ADC BX,DX
SBB BX,0
CWD

SBB DX,BX

MOV W,AX ;商→W
MOV W+2,DX ;余数DX→W+2
MOV AH,4CH
INT 21H
CODE ENDS
END START ;退出DOS 状态END START
古振元
2010-11-08 · TA获得超过1046个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:260万
展开全部
//漏掉的东西比较多 下面的编译和运行正确
DATA SEGMENT
X dw 10
Y dw 54
Z dw 300
V dw 1000
W dw ?
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX ;DATA→AX

MOV AX,X
IMUL Y ;(X)*(Y)→DX:AX
MOV CX,AX
MOV BX,DX ;(DX:AX)→(BX:CX)MOV AX,Z

MOV AX,Z ;这里你漏了
CWD ;(Z)符号扩展ADD CX,AX

ADD CX,AX ;这里你也漏了
ADC BX,DX

SUB CX,540 ;(BX:CX)+(DX:AX)→(BX:CX)SUB CX,540
SBB BX,0 ;(BX:CX)-540→(BX:CX)MOV AX,V

MOV AX,V
CWD ;(V)符号扩展SUB AX,CX
SUB AX,CX
SBB DX,BX

IDIV X ;(DX:AX)-(BX:CX)→(DX:AX)IDIV X ;(DX:AX)/X
MOV W,AX ;商→W
MOV W+2,DX ;余数DX→W+2
MOV AH,4CH
INT 21H
CODE ENDS ;退出DOS 状态END START
end START
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式