我想将内存中以二进制存储的数以十进制的形式输出到屏幕。在next3中做了一个判断,将开头的0省去,可是怎么就省不掉呢?谢谢
data segment
x dw 05400
table dw 10000,1000,100,10,1
result db 5 dup(0), '$ '
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea si,result
lea di,table
mov cx,5
mov ax,x
xor dx,dx
next:
mov bx,[di]
add di,2
div bx
mov [si],al
inc si
mov ax,dx
xor dx,dx
loop next
mov cx,5
lea si,result
next2:
add byte ptr [si],30h
inc si
loop next2
lea dx,result
mov bx,dx
next3:
cmp bx,30h
jne done
inc bx
jmp next3
done:
mov dx,bx
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
------解决方案--------------------------------------------------------
lea dx,result
mov bx,dx
这里应该是寻址呀,怎么成了寄存器赋值了,初学汇编,学术不高
------解决方案--------------------------------------------------------
容易除法溢出,呵呵