汇编实验:字符转ASCII码
题目
循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。
算法流程图
本题的核心在于如何将字符转成其对应的ASCII码
代码
data segment
data ends
code segment
assume ds:data, cs:code
start:
mov ax, data
mov ds, ax
p3:
mov ah, 01h
int 21h
cmp al, 'q'
je over
cmp al, 'Q'
je over
mov dh, 02h ; 循环次数,循环两次,分别取高四位和低四位
mov dl, al
mov ch, al ; 将值暂存到dl和ch
mov cl, 04h
shr dl, cl ; 取高四位
l2:
cmp dl, 0ah
jb f2
add dl, 07h
f2:
add dl, 30h
mov ah, 02h
int 21h
dec dh
mov dl, ch
and dl, 0fh ; 取低字节
cmp dh, 0h ; 是否取了低四位
ja l2
mov ah, 02h
mov dl, 0ah ; 换行,为了美观
int 21h
loop p3 ; 循环输入,直到遇到q或Q
over:
mov ah, 08h ; 结束时停留
int 21h
mov ah, 4ch
int 21h
code ends
end start
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!