Поиск:

Ответ в темуСоздание новой темы Создание опроса
> segmentation fault в ассемблерном коде, помогите найти ошибку, плиз 
:(
    Опции темы
johnyblackbird2
Дата 26.12.2011, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.12.2011

Репутация: нет
Всего: нет



Пишу прогу на ассемблере AT&T. Тут 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


Это сообщение отредактировал(а) johnyblackbird2 - 26.12.2011, 22:40
PM MAIL   Вверх
500mhz
Дата 27.12.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: 1
Всего: 14



ну дык у вас перед RET на стеке совсем не адрес возврата из функции init
Код

addq $64, %rsp

это лишнее


--------------------

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.