Задать вопрос
@HamsterGamer

Почему происходит ошибка сегментирования?

Всем привет, следующий код должен сложить все элементы array и вывести их сумму (по крайней мере так планировалось), однако он выдает segsig и я не понимаю почему. Помогите разобраться:
section .data
array dw 1,1,2,-4,13,14

section .bss
res resd 1

section .text
global _start
_start:
    mov ecx, 6
    mov esi, array
    mov eax, 0
lp:
    add eax, [esi]
    add esi, 4
    loop lp
    mov [res], eax
    mov ecx, [res]
    mov edx, 4
    mov ebx, 1
    mov eax, 4
    int 0x80
  • Вопрос задан
  • 283 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Нетология
    1С-программист
    10 месяцев
    Далее
Решения вопроса 1
includedlibrary
@includedlibrary
Из-за того, что вы в конце не вызвали системный вызов exit. Системный вызов write ожидает строку, а не число, так что перед выводом суммы нужно выполнить преобразование. Кстати, в 32-х битных линуксах системные вызовы принято делать через комманду sysenter, т.к это быстрее, а не через int 0x80.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы