主题:菜鸟和我一起写程序之二
今天,我们来写一个求w=(v-(x*y+z-540))/x 式子里面的变量都存在相应的大写字母里面的,不过这些变量都是DW内型的,我们求的结果要放在双字变量W里面
data segmeng
x dw 200
y dw 400
z dw 600
v dw 100000
w dw 2 dup (?) ;或者w dd ? 也可以的
data ends
stack segment
db 200 dup(0)
stack ends
code segment
asssuem ds:data,cs:code,ss:stack
start:mov ax,x
mov bx,y
imul bx ; dx:ax ,符号乘法
mov cx,dx
mov bx,ax
mov ax,z
cwb ;拓展符号 将 Z变成一个三十二位的数字
add bx,ax
adc cx,dx ;进位加法,cf=1 则直接加一上去,=0 加0
sub bx,540
sdc cx,0
mov ax,v
cwb
sub ax,bx
sdc dx,cx
idiv x ;符号除法
mov [w],ax
mov [w+2],dx
mov ax,4c00h
int 21h
code ends
code
data segmeng
x dw 200
y dw 400
z dw 600
v dw 100000
w dw 2 dup (?) ;或者w dd ? 也可以的
data ends
stack segment
db 200 dup(0)
stack ends
code segment
asssuem ds:data,cs:code,ss:stack
start:mov ax,x
mov bx,y
imul bx ; dx:ax ,符号乘法
mov cx,dx
mov bx,ax
mov ax,z
cwb ;拓展符号 将 Z变成一个三十二位的数字
add bx,ax
adc cx,dx ;进位加法,cf=1 则直接加一上去,=0 加0
sub bx,540
sdc cx,0
mov ax,v
cwb
sub ax,bx
sdc dx,cx
idiv x ;符号除法
mov [w],ax
mov [w+2],dx
mov ax,4c00h
int 21h
code ends
code