2013-03-12 47 views
1

彙編(TASM)中輸出笑臉人物的代碼行是什麼?

我知道爲了打印一個點,它要求:
如何在組件中打印笑臉人物?

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

,並以打印退格,

MOV AH, 6 
MOV DL, 8 
INT 21H 

如何笑臉?我知道它存在,因爲它有垃圾值時出現。

+0

當然,你已經回答了你自己的問題 - 打印(正確的)垃圾? – 2013-03-12 14:13:36

+0

但我無法控制這些字符如何顯示爲垃圾值。 – 2013-03-12 14:14:49

+0

[http://www.jimprice.com/ascii-dos.gif](http://www.jimprice.com/ascii-dos.gif)你去那裏 – Michael 2013-03-12 14:18:23

回答

3

在DOS codepage 437(和大多數人)中,白色笑臉是代碼#1,黑色代碼是#2。所以這些都是你需要在DL中輸入的值。

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

非常感謝! – 2013-03-12 14:29:59

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爲笑臉。

+0

這非常有幫助。非常感謝你! – 2013-03-12 14:48:22