近期学习,需要打印字符,以及读取寄存器(Register)的内容,并输出到dos窗口下显示,C+Assembly实现很简单,但是,纯汇编实现就比较复杂了。由于个人能力有限,自己不会写,就在网上找到了可用的Demo,下面,我把这个demo分享给大家,同时,也是自己做个记录,方便后续使用。
一:打印字符,代码如下:(使用的是BL Regster)
disp_ch proc
push dx
push ax
mov ah,02h
mov dl,bl
int 21h
pop ax
pop dx
ret
disp_ch endp
调用 方式如下:
mov bl, 'Y'
call disp_ch
二
:输出寄存器的值(以十六进制显示),使用的是Ax Register。代码如下:
;example for display register content
disp_ch proc
push dx
push ax
mov ah,02h
mov dl,al
int 21h
pop ax
pop dx
ret
disp_ch endp
wrhax PROC
push ax
push dx
mov dx,ax
mov ch, 4
L1:
mov cl, 4
rol dx, cl
mov al,dl
and al,0FH
add al,30h
cmp al,3ah
jl printit
add al,7h
printit:
call disp_ch
dec ch
jnz L1
pop dx
pop ax
ret
wrhax ENDP
调用 方式如下:
MOV Ax,12H
call wrhax