Пишу прогу на ассемблере 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
|
|