如何在装配中打印笑脸角色?

时间:2013-03-12 14:11:23

标签: assembly character-encoding x86 dos tasm

在汇编(TASM)中输出笑脸字符的代码行是什么?

我知道为了打印一个点,它需要:

MOV AH, 2
DL, '.'
INT 21h

并且为了打印退格,

MOV AH, 6
MOV DL, 8
INT 21H

笑脸怎么样?我知道它存在是因为它出现了垃圾值。

2 个答案:

答案 0 :(得分:3)

在DOS codepage 437(以及大多数其他人)中,白色笑脸是代码#1,黑色笑脸是代码#2。因此,这些是您需要输入DL的值。

MOV AH, 6
MOV DL, 1; print ☺
INT 21H

答案 1 :(得分:0)

您可能想查看http://spike.scu.edu.au/~barry/interrupts.html 他们对中断的作用给出了足够好的解释。

这里需要注意的重要一点是,通过在AH上加载值,您可以有效地选择运行的函数。因此,MOV AH,2 MOV AH,6和MOV AH,9都有效地选择不同的功能。 在你的情况下,AH,2或AH,6应该是好的。

现在DL是你传递给函数的参数。在这种情况下,函数需要一个包含将要打印的ASCII值的参数。

因此,MOV DL,1为笑脸。