我在寫一個簡單的NASM彙編程序。我有大約95%的結果。但是,我遇到了一個我似乎無法解決的問題。打到ctrl - d應該顯示再見消息,然後終止程序。下面是我有什麼NASM不讀ctrl-d字符
Section .bss
Buff resb2
BuffLen equ $-Buff
loop:
; some code
mov ecx, Buff
move edx, BuffLen
; some code
cmp ecx, 0x04
je Exit
jne loop
根據ASCII表的骨架,CTRL +d是0×04。我必須錯過簡單的東西。有沒有人有任何想法?
1)您的程序是否可以正確地用於其他代碼,尤其是可打印的代碼? 2)根據您使用什麼類型的終端與您的程序進行交互,CTRL-D可能會被困在那裏或被翻譯出來。 –
除了Chris提到的,你正在比較'buff'的地址'ecx'和'0x04'。不大可能!嘗試'cmp byte [ecx],0x04'。 –
對不起,反應遲緩,正在寫另一份作業。我試着用ctrl_j(0x0A),並讓它工作得很好。這導致我相信ctrl + d出現了一些問題。弗蘭克,我也實施了你的建議。 –