将NASM转换为GAS

时间:2014-11-16 10:45:04

标签: arrays assembly stack nasm gas

我是一名学生,对装配编程完全陌生,特别是对GAS而言。我有一个.asm程序,它使用选择排序(显然)排序10个整数的数组,我们的任务是将代码转换为GAS。我坚持要获得阵列的输入。这是我所做的一小部分:

section .bss
   arr resb 10

section .text
global _start:

_start:
   push arr
   call getInput
   ...

getInput:
   mov esi, 0
   mov ebp, [esp+4]    ; line number 59
   ...

问题是,我无法找到如何转换第59行中的代码。这就是我所做的(基于我发现的教程):

.data
   arr:     .space 10

.text
.globl _start

_start:
push arr
call getInput
...

getInput:
   movl $0, %esi
   movl 4(%esp,1), %ebp

我尝试运行它并产生了分段错误。我究竟做错了什么?我是否正确地推动了arr的地址? 4(%esp,1)是否等于[esp + 4]?提前谢谢!

0 个答案:

没有答案