Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Помогите устранить segmentation fault в ассемблерном коде  (Прочитано 493 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Johny Blackbird

  • Автор темы
  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
Пишу прогу на ассемблере. Тут 2 функции. Вызываемая должна инициализировать массив и возвращать инициализированный массив в вызывающую функцию. Необходимо реализовать соглашение pascal, то есть аргументы передаются через стек, слева направо, а указатель стека на исходную позицию возвращает подпрограмма. вылезает segmentation fault. подскажите, плиз, что не так делаю.
.text
.global main
.type main, @function
main:
pushq %rbp
movq %rsp, %rbp
subq $64, %rsp
leaq -64(%rbp), %rax
pushq %rax
call init
.size main, .-main

.text
.global init
.type init, @function
init:
pushq %rbp
movq %rsp, %rbp
movq 16(%rbp), %rax
movl $9, (%rax)
movl $11, 8(%rax)
movl $45, 12(%rax)
movl $13, 16(%rax)
movl $2, 20(%rax)
movl $46, 24(%rax)
movl $90, 28(%rax)
movl $12, 32(%rax)
movl $55, 36(%rax)
movl $100, 40(%rax)
popq %rax
addq $64, %rsp
ret
.size init, .-init

« Последнее редактирование: 26 Декабря 2011, 23:11:57 от Johny Blackbird »
Гну Linux. Скоро согну.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.