assume cs:code
data segment
db 10 dup(0)
data ends
stack segment
db 16 dup(0)
stack ends
code segment
start:
mov ax,12666
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 dx
push bx
push ax
push cx
push es
push si
mov dx,0
mov bx,10;32位的除法运算
div bx
mov cx,ax
jcxz dtoc_ok
add dx,30h
mov es:[si],dx
inc si
jmp short dtoc
dtoc_ok:
pop si
pop es
pop cx
pop ax
pop bx
pop dx
ret
show_str:
push ax
push es
push dx
push bx
push si
push cx
mov ax,0b800h
mov es,ax;显存的段地址
dec dh
mov al,160
mul dh
mov bx,ax
dec dl
mov al,2
mul dl
add bx,ax
mov dl,cl
s_show_str:
mov ch,0
mov cl,ds:[si]
jcxz ok
mov es:[bx],cl
mov es:[bx+1],dl
inc si
add bx,2
jmp s_show_str
ok:
pop cx
pop si
pop bx
pop dx
pop es
pop ax
ret
code ends
end start |