Код сборки не печатает строку

108
13

Поэтому в основном я пытаюсь написать приветственную программу мира в сборке. Программа выходит, как и должно, но ни одна строка не будет напечатана на этом пути. В любом случае ошибок нет. Я подозреваю, что я как-то объявляю или использую строку.

    .intel_syntax noprefix

.data

msg:
.ascii "Hello World"

.text

.globl _start

_start:
mov eax, 4 #call write
mov ebx, 1 #output into stdout
mov ecx, msg #what to write
mov edx, 11 #length of what to write
int 0x80

mov eax, 1 #exit
mov ebx, 0
int 0x80

Я также попытался заменить

mov ecx, msg

с

mov ecx, [msg]

но, похоже, это не имеет значения.

спросил(а) 2013-10-15T18:07:00+04:00 7 лет назад
1
Решение
80

Вам нужно использовать mov ecx, offset msg или lea ecx, msg. Также убедитесь, что вы собираете 32-битный код, если вы находитесь на 64-битной системе.

ответил(а) 2013-10-15T18:30:00+04:00 7 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема