2013-09-26 85 views
-5

我正在爲debug.exe進行x86彙編,但是我似乎完全無法理解基本知識。我有這個彙編程序(由講師編寫),我必須對其進行修改,以便不用輸入和打印,而是需要輸入對其進行處理然後打印。我不知道哪裏讀端和打印開始,真的希望在哪裏插入我的代碼又是什麼每一行做第一個彙編程序

a100 
mov dx, 200 
mov ah, 0a 
int 21 
mov bh, 00 
mov bl, byte ptr[201] 
mov byte ptr[200], 0d 
mov byte ptr[201], 0a 
mov byte ptr[202 + bx], 24 
mov dx, 200 
mov ah, 09 
int 21 
mov ah, 4c 
int 21 

a200 
db 07 00 '***********' 

n progr1.com 
r cx 
100 
w 
q 
+0

http://static.patater.com/gbaguy/x86asm.htm – Tony

+1

這裏你去:[中斷21h參考](http://www.ctyme.com/intr/int-21.htm) – Michael

回答

1

我或許會開始閱讀關於每個在這些線路一者的一些技巧時間,只是看看他們做什麼。

例如,正如評論中的某人所說,請閱讀int 21所做的事情,它會執行很多操作,具體取決於AH寄存器中的內容。

http://www.ctyme.com/intr/int-21.htm

例如, 從STDIN中讀取一條線在AH寄存器中由0A指定,它將輸出以DX格式放入特定格式。字符

mov dx, 200 
mov ah, 0a 
int 21 

數目的讀取被放置在DX的第二個字節,因此它被保存到BX使用這些行:

mov bh, 00 
mov bl, byte ptr[201] 

打印到屏幕與不同INT 21AH值完成,09,並從徘徊無論DX點讀,這就是爲什麼DX重新設置爲200

mov dx, 200 
mov ah, 09 
int 21 

我會留給你找出其餘的,但看看這裏的閱讀和寫作格式http://www.ctyme.com/intr/rb-2563.htm。例如,該行mov byte ptr[202 + bx], 24將ASCII 0x24放在字符串的最後位置,因爲這是讀取的終止字符。

+0

謝謝你這是一個很大的幫助。我做了我的程序,它的工作原理,但我不明白爲什麼它刪除後仍然有效 a200 db 07 00'***********' – user2796400