键入字符并使用Assembler打印其代码

时间:2015-05-31 18:44:49

标签: assembly

我正在尝试打印已在控制台中输入的字符代码(拉丁语)。这是我的代码(使用 TASM ):

.model tiny
.code
org 100h
begin:
mov ah,01h
int 21h
or al,30h
mov ah,2
mov dl,al
int 21h
ret
end begin

但这不起作用,请参阅下面的屏幕截图(第一个字符是输入而不是输出) enter image description here

提前致谢!

我的操作系统:Windows XP 32位

处理器:Intel(R)Core(TM)i3 CPU M 350 x86_64

1 个答案:

答案 0 :(得分:2)

这个简单的代码将输出0到99之间的所有ASCII码。

mov ah,01h
int 21h
aam
xchg al, ah
add ax, 3030h
mov dx, ax
mov ah,2
int 21h
mov dl, dh
int 21h

以十六进制输出(允许显示所有256个代码)使用

mov ah, 01h
int 21h
aam 16
xchg al, ah
add ax, 3030h
mov dx, ax
cmp dl, "9"
jbe OK1
add dl, 7
OK1:
mov ah, 02h
int 21h
mov dl, dh
cmp dl, "9"
jbe OK2
add dl, 7
OK2:
int 21h

如果您的汇编人员不了解aam 16,您可以将其替换为db 0D4h,10h