nasm: error: инструкция не поддерживается в 16-битном режиме - PullRequest
0 голосов
/ 24 февраля 2019

Я следую этому примеру.Но я получил эту ошибку.Кто-нибудь знает, как решить эту проблему?Я работаю на Mac OS X 10.14.1.

$ nasm -o hello_world.o hello_world.asm
hello_world.asm:8: error: instruction not supported in 16-bit mode
hello_world.asm:9: error: instruction not supported in 16-bit mode
hello_world.asm:10: error: instruction not supported in 16-bit mode
hello_world.asm:11: error: instruction not supported in 16-bit mode
hello_world.asm:15: error: instruction not supported in 16-bit mode
hello_world.asm:16: error: instruction not supported in 16-bit mode
$ nasm --version
NASM version 2.13.03 compiled on Feb  8 2018

Как работает связывание C ++ на практике?

section .data
hello_world db "Hello world!", 10
section .text
global _start
_start:

; sys_write
mov rax, 1
mov rdi, 1
mov rsi, hello_world
mov rdx, 13
syscall

; sys_exit
mov rax, 60
mov rdi, 0
syscall

1 Ответ

0 голосов
/ 07 июня 2019

Проблема не в коде.

Полная команда для компиляции: nasm -f elf64 -o hello.o hello.asm

Вы должны указать формат (elf64) для nasm компилятора с помощью -f опция.

...