初学汇编语言

时间:2022-07-04 12:28:54
如何用汇编语言实现(AL)=3DH, 将AL内容以16进制数据显示。

2 个解决方案

#1


初学汇编语言
我也是初学者,你参考一下吧。

#2


楼上的是个方法,但完全不合题意。这样的题目,多是考移位指令和字符显示功能的。
以十六进制数据显示,就是每 4 位显示出一个数据字符,可以将这个功能做成子程,分别将 AL 的高 4 位和低 4 位来调用。
显示字符,可以用 int21h 的 AH=02h 功能调用;由 4 位的数据到显示的字符,需要个转换过程,可以查表,也可以分区判断。
code	segment
assume cs:code

showh1 proc
and al, 0fh
add al, '0'
cmp al, '9'
jna l_sh
add al, 7
l_sh:
mov dl, al
mov ah, 2
int 21h
ret
showh1 endp

start::
mov al, 3dh
push ax
mov cl, 4
shr al, cl
call showh1
pop ax
and al, 0fh
call showh1
mov ah, 4ch
int 21h
code ends

end start

#1


初学汇编语言
我也是初学者,你参考一下吧。

#2


楼上的是个方法,但完全不合题意。这样的题目,多是考移位指令和字符显示功能的。
以十六进制数据显示,就是每 4 位显示出一个数据字符,可以将这个功能做成子程,分别将 AL 的高 4 位和低 4 位来调用。
显示字符,可以用 int21h 的 AH=02h 功能调用;由 4 位的数据到显示的字符,需要个转换过程,可以查表,也可以分区判断。
code	segment
assume cs:code

showh1 proc
and al, 0fh
add al, '0'
cmp al, '9'
jna l_sh
add al, 7
l_sh:
mov dl, al
mov ah, 2
int 21h
ret
showh1 endp

start::
mov al, 3dh
push ax
mov cl, 4
shr al, cl
call showh1
pop ax
and al, 0fh
call showh1
mov ah, 4ch
int 21h
code ends

end start