assume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,0f24h
mov dx,0009h
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
dtoc:push bx
push ax
push dx
push cx
push si
mov si,0
push si
s0:mov cx,10
call divdw
jcxz s1
add cx,30h
mov bl,cl
mov bh,0
push bx
jmp short s0
s1:pop cx
jcxz s2
mov ds:[si],cl
inc si
jmp short s1
s2:pop si
pop cx
pop dx
pop ax
pop bx
ret
divdw:push bp
push bx
mov bp,ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
mov ax,bp
div cx
mov cx,dx
mov dx,bx
pop bx
pop bp
ret
show_str:push bx
push es
push cx
push si
mov ax,0b800h
mov es,ax
mov ax,0
mov al,160
mul dh
mov bx,ax
mov ax,0
mov al,2
mul dl
add bx,ax
mov al,cl
b:mov cl,ds:[si]
mov ch,0
jcxz ok
mov ch,al
mov word ptr es:[bx],cx
inc si
add bx,2
jmp short s
ok:pop si
pop cx
pop es
pop bx
ret
code ends
end start
连接编译不上,还有请教一下OR是用来判断商是否为零吗?能给我解释一下吗? |