我正在嘗試編寫一個NASM程序,它可以翻轉矩陣並彙總所有數字。在NASM中增加一個變量
我一直堅持過去兩個小時試圖讓增量操作工作。
我試圖
mov DX, 0
inc DX
和
mov DX, DX+1
和
mov CX, counter ; a variable initialized to 0
inc CX
多,但沒有什麼工作。
請幫幫我!
更新
具體而言,我發現了錯誤:
/usr/bin/ld: warning: i386 architecture of input file `a3.o' is incompatible with i386:x86-64 output
a3.o: In function `main':
a3.asm:(.text+0x18): relocation truncated to fit: R_386_16 against `.bss'
collect2: ld returned 1 exit status
看來這個問題與inc操作無關,而是與你鏈接的一些「壞」文件(即a3.o)能分享a3.asm的來源嗎? – 2013-03-15 20:29:11
除非'DX'是在源代碼中聲明的編譯時常量,否則不能真正做'mov DX,DX + 1'。這不是一種高級語言:您需要在運行時使用CPU指令來處理所有事情。另外,在x86上清零寄存器通常是通過將它與自己異或來完成的。 :) – 2013-03-15 22:23:37