test.c內容如下
extern void pChar(char), //這個函數只是聲明了,沒有定義,因此根本就編譯不過。
main()
{
pChar('a');
}
後面那個匯編文件寫的,拋開語言問題。
1、8086在現在的計算機上,只是壹種兼容模式,這種模式就類似於妳在32位xp上運行debug那樣,根本不對的。
2、windows妳調不了這個int指令,這是特權指令,直接調不了的。而且int 10h,這個10h也未必就是輸出操作,這個要詳細查windows系統調用表的,就是那個GDT。壹般需要windbg內核調試的時候才能看到。
因此建議:
1、安裝壹個radasm或者masm,這是windows上的開發工具。
2、轉戰linux,linux可以直接作用as匯編器編譯匯編代碼,也可以使用gcc直接編譯,而且可以馬上看到執行效果。
3、若真欲學匯編大可不必單純的學匯編,直接下載壹個vc6.0 ?__asm直接內聯匯編看效果就好啦,匯編語言重在讀懂源碼,目的是為了工作中調試程序,真正的靠匯編來編寫程序,除非內存要求特別苛刻的條件下,譬如寫shellcode .如下圖所示,妳就明白啦。 直接在VC中用匯編實現 1+1 = 2