[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Hello, world -> nao funcionou



On Tue, 25 Feb 2003, Tiago Motta Jorge wrote:

>     Ao tentar executar o programa "Hello, World" que foi dado em classe, 
> os caracteres do meu terminal foram descaracterizados: se transformaram 
> em um monte de símbolos sem significado.
> 
>     O código com problema é:
> 
>     section .data
> msg     db     "Hello, World!", 0xa
> len       equ     $-msg
> 
> 
>     section .text
>     global _start
> 
> _start:  mov    edx, len
>             mov    ecx, msg
>             mov    ebx, 1
>             mov    eax, 4
>             int       0x80
> 
>             mov    ebx, 0
>             mov    eax, 1
>             int       0x80
> 
> 
>     Andei lendo alguma coisa pela internet e fiz a seguinte modificação:
> 
>     section .text
>     global _start
> 
> msg     db     "Hello, World!", 0xa
> len       equ     $-msg
> 
> _start:  mov    edx, len
>             mov    ecx, msg
>             mov    ebx, 1
>             mov    eax, 4
>             int       0x80
> 
>             mov    ebx, 0
>             mov    eax, 1
>             int       0x80
>  
>     Depois disso o programa passou a funcionar corretamente. A única 
> coisa que fiz foi remover a sessão .data. O que se passa?

Não sei... Acabei de testar o programa original e ele funcionou:

$ cat hello.asm
section	.data
msg	db	"Hello, World!", 0xa
len	equ	$-msg

section	.text
global	_start

_start:	mov	edx, len
	mov	ecx, msg
	mov	ebx, 1
	mov	eax, 4
	int	0x80
	mov	ebx, 0
	mov	eax, 1
	int     0x80

$ nasm -f elf hello.asm
$ ld -s -o hello hello.o 
$ hello 
Hello, World!
$ 

Você está montando e rodando o programa no Linux?

Reverbel