注册 登录
编程论坛 汇编论坛

求大神帮忙做题或修改

lowryfly 发布于 2012-11-28 23:35, 401 次点击
x,y为字型,假设x单元中保存三个数,9,-6,34,分别作出判断并计算,当x<0,y=x*x.当0<=x<10,y=2x+3.当x>=10,y=x/6.帮做的一生平安,或帮忙修改
ASSUME CS:CODES,ds:data
data segment
dw 9,6,34,0,0,0
data ends
CODES SEGMENT
START:
MOV ax,data
MOV ds,ax
mov bx,0
mov cx,3
s:cmp ,0
jnb s0
mov al,
mul al
s0:cmp ,10
jb s1
mov ax,
mov bl,6
div bl
mov ,ax
inc bx
jmp s
s1:mov al,
mov bl,2
mul bl
add ax,3
mov ,ax
inc bx
jmp s
MOV AH,4CH
INT 21H
CODES ENDS
END START
2 回复
#2
woxingx2012-11-29 09:28
mul  ax
字类型是存在ax中的不是al中
#3
有容就大2012-11-29 13:13
程序代码:
ASSUME CS:CODES,ds:data
data segment
dw 9, -6, 34,0,0,0
data ends
CODES SEGMENT
START:
MOV ax,data
MOV ds,ax
mov si, 0
mov cx,3
s:cmp WORD  ptr [si],0
jl s0
cmp WORD   ptr [si],10
jnl s1
mov ax, WORD  ptr [si]
mov bx, 2
mul bx
add ax, 3
jmp ok
s0: mov ax, WORD  ptr [si]
mov bx, ax
mul bx
jmp ok
s1: mov ax, WORD  ptr [si]
mov bl, 6
div bl
ok: add si, 2
loop s
mov ah, 01h
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START

去单步跟踪下 结果应该没错对应的 AX为 0015H  0024H 0405H(4是余数 5是商)。
好好看下书上的指令吧 都是很基本的东西。


[ 本帖最后由 有容就大 于 2012-11-29 13:15 编辑 ]
1