永发信息网

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

答案:2  悬赏:60  手机版
解决时间 2021-04-07 07:50
  • 提问者网友:孤凫
  • 2021-04-06 08:40
求高手给我的汇编语言程序纠错,急,急急!!! 只要获得正确的编码,会最快奖赏,原题w=(v-(x*y+z-540))/x
最佳答案
  • 五星知识达人网友:玩家
  • 2021-04-06 09:34
DATA SEGMENT
X db10
Ydb54
Zdb200
Vdb200
Wdd?;这个要用双字
DATA ENDS
CODESEGMENT
ASSUMECS:CODE;这地方你前面又没有加堆栈段,写个堆栈段干嘛
START:
MOVAX,DATA
MOV DS,AX
MOV AX,X;这个寄存器最好改一下,改成8位的不然要有警告,因为x是字节型
IMULY
MOVCX,AX
MOVBX,DX
CWD
ADCBX,DX
SBBBX,0
CWD

SBBDX,BX

MOVW,AX;商→W
MOVW+2,DX ;余数DX→W+2
MOVAH,4CH
INT21H
CODEENDS
END START;退出DOS 状态END START
全部回答
  • 1楼网友:青尢
  • 2021-04-06 10:32
//漏掉的东西比较多下面的编译和运行正确
DATA SEGMENT
X dw10
Ydw54
Zdw300
Vdw1000
Wdw?
DATA ENDS
CODESEGMENT ;定义代码段
ASSUMEDS:DATA,CS:CODE
START:
MOVAX,DATA
MOV DS,AX ;DATA→AX
MOV AX,X
IMULY;(X)*(Y)→DX:AX
MOVCX,AX
MOVBX,DX;(DX:AX)→(BX:CX)MOVAX,Z
MOVAX,Z ;这里你漏了
CWD;(Z)符号扩展ADDCX,AX
ADD CX,AX ;这里你也漏了
ADC BX,DX
SUBCX,540;(BX:CX)+(DX:AX)→(BX:CX)SUBCX,540
SBBBX,0 ;(BX:CX)-540→(BX:CX)MOVAX,V
MOVAX,V
CWD;(V)符号扩展SUBAX,CX
SUBAX,CX
SBBDX,BX
IDIV X;(DX:AX)-(BX:CX)→(DX:AX)IDIVX;(DX:AX)/X
MOVW,AX;商→W
MOVW+2,DX ;余数DX→W+2
MOVAH,4CH
INT21H
CODEENDS;退出DOS 状态END START
end START
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯