增加NASM中的变量

时间:2013-03-15 19:43:03

标签: 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

1 个答案:

答案 0 :(得分:2)

这是32位/ 64位不匹配。

对于32位可执行文件,请执行以下操作:

nasm -f elf32 -o main.o main.asm
ld -m elf_i386 -o main main.o

对于64位可执行文件,请执行以下操作:

nasm -f elf64 -o main.o main.asm
ld [-m elf_x86_64] -o main main.o

要使用gcc链接,请将第二个命令替换为:

gcc -m32 -o main main.o      # 32 bits
gcc [-m64] -o main main.o    # 64 bits

方括号内的东西并非绝对必要。