您的位置:首页 > 其它

print numbers on the screen.(show_str and dtoc function)

2009-09-20 22:46 561 查看
;show_str, dtoc functions.
;by:double; date:2009-09-20; ver:0.1
assume cs:codesg,ss:stacksg,ds:datasg

datasg segment
dw 123,12666,1,8,3,38,339,284,374,11124
db 12 dup (0)
datasg ends

stacksg segment
dw 32 dup (0)
stacksg ends

codesg segment
start:
mov ax,stacksg
mov ss,ax
mov sp,64

mov ax,datasg
mov ds,ax

mov di,0
mov si,20
mov cx,10
mov bh,10
;bh row number
mov bl,8
;bl col number

s:      mov ax,ds:[di]
call dtoc
;push cx
;mov cl,00001010b
;mov ch,0
call show_str
;pop cx
add di,2
add bh,1
loop s

mov ax,4c00h
int 21h
dtoc:
push si
push bx
push cx
push bp
push dx
mov bx,0
mov bp,0ah
s1:
mov dx,0
div bp
add dl,30h
push dx
inc bx
mov cx,ax
jcxz ok
jmp short s1
ok:
mov cx,bx
s2:
pop dx
mov ds:[si],dl
inc si
loop s2
mov byte ptr ds:[si],0

pop dx
pop bp
pop cx
pop bx
pop si
ret
show_str:
push ax
push bx
push es
push si
push di
push cx
push dx
mov di,0
mov ax,0b800h
mov es,ax
mov al,0a0h
mov ah,0
mul bh
mov dx,ax
mov al,2
mov ah,0
mul bl
add dx,ax
mov bx,dx
s3:      mov cl,ds:[si]
mov ch,0
jcxz ok1
mov es:[bx+di],cl
inc di
;mov es:[bx+di],dl
mov byte ptr es:[bx+di],00001010b
inc di
inc si
jmp short s3
ok1:
pop dx
pop cx
pop di
pop si
pop es
pop bx
pop ax
ret

codesg ends

end start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐