汇编高手帮下

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:36:30
2x+y,结果存在W中X和Y初值分别30h和60h

assume cs:code dat segment
db X,Y;换成十进制 dat ends
code segment
s: mov ax,dat
mov ds,ax
mov bx,0
mov ax,(bx)
add ax,ax
add ax,(bx).1
mov W,ax ;存W前重设段地址
CODE ENDS
END S

cdh macro
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
endm

data segment
x db 30h
y db 60h
w db ?
data ends

stack segment stack
sh db 40H dup(?)
ssize db $-sh
stack ends

cdh
mov ax,stack
mov ss,ax
xor ax,ax
mov al,ssize
mov sp,ax
lea di,x
lea si,y
mov al,[di]
shl al,1
add al,[si]
lea di,w
mov [di],al
mov ax,4C00H
INT 21H
code ends
end start