主题:[转帖]求助高手
shangminsm
[专家分:0] 发布于 2007-11-09 00:54:00
用汇编语言编写程序,用来计算表达式的值
W=(Z-(X*Y-320))/X
回复列表 (共6个回复)
沙发
giftfish [专家分:50] 发布于 2007-11-09 18:37:00
去看看书,有类似的
板凳
文之天国 [专家分:10] 发布于 2007-11-09 21:11:00
用堆栈编吧
3 楼
臭石头雪球 [专家分:23030] 发布于 2007-11-10 10:02:00
说得不清楚,这些变量都是什么类型的?字长多少?
4 楼
shangminsm [专家分:0] 发布于 2007-11-10 14:09:00
字数据
5 楼
def [专家分:3380] 发布于 2007-11-16 22:38:00
.model small
.stack
.data
x dw 1 ;x的数值
y dw 4 ;y的数值
z dw 3 ;z的数值
w dw ? ;存储w的数值
.code
.startup
mov ax,x
mul word ptr y ;x*y->ax
sub ax,320 ;ax-320->ax
mov bx,z
sub bx,ax ;z-ax->bx
mov ax,bx
xor dx,dx
div word ptr x ;bx/x->ax
mov w,ax ;ax->w
.exit
end
;你自己研究研究就知道了,我已经分段了.
;用debug打开能发现结果(结果为整数,不整则截断取整)
6 楼
蓝海芽子 [专家分:0] 发布于 2007-11-18 11:28:00
我来完善上楼的答案
.model small
.stack
.data
x dw ? ;x的数值
y dw ? ;y的数值
z dw ? ;z的数值
w dw ? ;存储w的数值
.code
.startup
mov bx,0
call input
mov x,bx
mov ax,x
call input
mov y,bx
mul word ptr y ;x*y->ax
sub ax,320 ;ax-320->ax
call input ;input->z 保存在bx
sub bx,ax ;z-ax->bx
mov ax,bx
xor dx,dx
div word ptr x ;bx/x->ax
mov w,ax ;ax->w
input proc near
push ax
push cx
push dx
mov bx,0
in_gain: mov ah,01h
int 21h
cmp al,0dh ;是否为回车
je over1
sub al,30h
jl over1
cmp al,9d
jg over1
cbw
xchg ax,bx
mov cx,10d
mul cx
xchg ax,bx
add bx,ax
jmp in_again
over1: pop dx
pop cx
pop ax
ret
input endp
.exit
end
其本这样
没调式过
可能有错误
这 程序实现x,y,z自己输入
而不是 在数据段定义
我来回复