在Linux程序集

时间:2016-06-15 07:55:40

标签: linux assembly x86 att abi

我正在英特尔处理器和Ubuntu 14上编写带有AT& T语法(GAS编译)的汇编程序。

我试图读取用户在程序启动时传递的参数数量。例如,如果用户打开他的终端并键入./programname x y z,我希望nParameters变量假设值为4(因为程序名,x,y和z是参数)。

这是我到目前为止所做的,但我不断收到分段错误。

.code32
.section .data

nParameters: .byte 0

.section .text
    .global _start

_start:
    popl %eax   #extract the number of parameters on the stack
    movl %eax,nParameters

movl $1,%eax
movl $0,%ebx
int $0x80

错误在于这一行:movl %eax,nParameters但我不知道为什么

0 个答案:

没有答案