[asm]Segmentation Fault + poczatek asm

0

No wiec postanowilem sie nauczyc tego assemblera. Ale jak zawsze poczatki sa trudne wiec teraz <ort>tesh </ort>tak jest...
Sciagnalem Nasma zainstalowalem na rh9 skompilowalem przykladowy kod z tutoriala, wszystko ok, linkuje i <ort>już </ort>warning:
cannot find entry symbol _start; defaulting 08048080
na ale nic uruchamiam i... segmentation fault
no wiec sprawdzam kod, identyczny jak w tutku, sprawdzam gdzie jest blad no i nie wiem co dalej zrobic wiec pytam ;)
kod:

section	.text				; początek sekcji kodu
    global _start			; linker ld chce mieć ten symbol globalny

tekst	db	'Czesc',0ah		; nasz napis, który wyświetlimy
dlugosc	equ	$ - tekst		; długość napisu

_start:					; punkt startu programu

	mov	edx, dlugosc		; EDX = długość tekstu

	mov	ecx, tekst		; ECX = adres ( offset ) tekstu

	mov	ebx, 1			; numer pliku, do którego piszemy.
					; 0 = stdout = ekran ( zazwyczaj )

	mov	eax, 4			; numer funkcji systemowej: sys_write - zapisz do pliku
	int	80h			; wywołujemy funkcję systemową

	mov	eax,1			; numer funkcji systemowej (sys_exit -wyjdź z programu)
	int	80h	

blad jest przy deklarowaniu zmiennych tekst i dlugosc... please pomozcie bo sie dopiero ucze

0

Nie powiem Ci na te chwile na pewno czy to ma byc tak bo ni mam linucha poki co na dysku po formacie ale na moje oko trza by ta instrukcje poprawic:

[code]
mov ecx, tekst ; ECX = adres ( offset ) tekstu[/code]

Dlaczego ?? Well, nie spotkalem sie jeszcze zeby offset byl przekazywany do rejestru poprzez podanie nazwy zmiennej. Jak juz pisze w asm to uzywam albo:

[code]mov ecx, offset tekst[/code]

albo:

[code]lea ebx, tekst[/code]

No bo tak poza tym to wyglada to calkiem normalnie...

1 użytkowników online, w tym zalogowanych: 0, gości: 1