将ax中的数据以10进制ascii码显示
assume cs:code,ds:data,ss:stackdata segment
db 10 dup(0)
data ends
stack segment
db 0
dw 8 dup(0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov di,1
mov ax,0A1C2hs
call dtoc
mov dh,10 ; 行数
mov dl,50 ; 列数
mov si,di
call show_str
mov ax,4c00h
int 21h
; 将数据以10进制ascii码存放到di目标空间去
dtoc:
push cx
push bx
mov bx,10
s:
mov cx,ax
jcxz jisu
mov dx,0
div bx
add dl,30h
mov ,dl
inc di
jmp s
jisu:
dec di
pop bx
pop cx
ret
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串
;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79),(cl)=颜色,ds:si指向字符串的首地址
;返回无
show_str:
push cx
push si
push ax
push di
push es
mov ax,0b800h
mov es,ax
push dx
mov ah,0
mov al,dh
mov bx,160
mul bx
pop dx
push ax
mov ah,0
mov al,dl
mov bx,2
mul bx
pop bx
add ax,bx
mov di,ax
ks:
mov cl,
mov ch,0
jcxz jishu
mov es:,cl
mov byte ptr es:,02h
dec si ; 下一个字符
add di,2 ; 下一个要显示的位置
jmp short ks
jishu:
pop es
pop di
pop ax
pop si
pop cx
ret
code ends
end start
页:
[1]