Почему мой код NASM печатается иначе, чем предполагаемыйLinux

Ответить
Anonymous
 Почему мой код NASM печатается иначе, чем предполагаемый

Сообщение Anonymous »

Я пишу в Nasm и не понимаю, что происходит. Дистрибутив Linux — это Ubuntu 16 64 бит, но NASM работает на 32 битах.
Ожидаемый результат --> «Число: 2»
Фактическое вывод --> "число: 134520868"
код:

Код: Выделить всё

%include "io.inc"

section .data

n1 db 2 ; i know its a bad practice to define a db variable, its just for a test

msg: db 'number is: %d',10,0

section .text

extern printf

global main

main:

push ebp
mov ebp, esp

push dword n1
push msg
call printf

mov esp, ebp
pop ebp
ret
Я пытался определить n1 с помощью dd или отправить содержимое n1, даже с помощью такого регистра, как eax.
не знаю, что делаю
не знаю, что делаю
п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... pected-one
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»