Como compilar em Assembly? [RESOLVIDO]

1. Como compilar em Assembly? [RESOLVIDO]

ADRIANO SEVERINO DE FREITAS
adriano58

(usa Ubuntu)

Enviado em 10/10/2021 - 15:53h

Boa tarde. Estou com um livro recente de Assembly e C e não estou conseguindo de jeito nenhum compilar um programa de teste. Usando

nasm -f elf64 ola.asm -o ola.o, aparecem os seguintes erros:

[email protected]:/home/adr/assembly# nasm -f elf64 ola.asm -o ola.o
ola.asm:16: error: label or instruction expected at start of line
ola.asm:17: error: label or instruction expected at start of line
ola.asm:18: error: label or instruction expected at start of line
ola.asm:19: error: label or instruction expected at start of line
[email protected]:/home/adr/assembly#


O código:

global _start

section .data
message: db ‘hello world’, 10

section .text
_start:

mov rax, 1
mov rdi, 1
mov rsi, message
mov rdx, 14
syscall
~


Se alguém puder dar uma luz eu agradeceria


  


2. MELHOR RESPOSTA

Buckminster
Buckminster

(usa Debian)

Enviado em 11/10/2021 - 18:19h


adriano58 escreveu:


Amigo, obrigado pelo interesse, mas não entendi sua resposta. Vc pode me explicar melhor? Valeu.


Ele quis dizer para acrescentar uma linha no código:

global _start

section .data
message: db ‘hello world’, 10

section .text
global_start <<< acrescente esta linha nesta posição.
_start:

mov rax, 1
mov rdi, 1
mov rsi, message
mov rdx, 14
syscall
~

E caso não funcionar poste o código completo.

________________________________________________
Always listen the Buck!
Sanou tua dúvida, resolveu teu problema?
Então marque como Resolvido e escolha a Melhor Resposta.


3. Re: Como compilar em Assembly? [RESOLVIDO]

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 10/10/2021 - 19:49h

Tente mudar p:

section .text
global _start
_start:

Se não funcionar, coloque o código completo c
cat -n ola.asm


4. Não entendi.

ADRIANO SEVERINO DE FREITAS
adriano58

(usa Ubuntu)

Enviado em 10/10/2021 - 21:09h


Amigo, obrigado pelo interesse, mas não entendi sua resposta. Vc pode me explicar melhor? Valeu.