Hali!
Van itt hozzám hasonló elmebeteg, aki linux alatt gépi kóddal foglalkozik? A problémám, hogy vagy nem fordul vagy szegmens hibával kidob. A szegmens hibát a lodsb/lodsw okozza a fordítási hibát a mov si,adatok. A program:
section .data
section .text
global _start
_start: jmp go
adatok: dw 6,10 ; Hanyszor, milyen szunetekkel
db 1,2
go: mov eax,110
mov ebx,3
int 0x80
mov ax,cs
mov ds,ax
mov dx,378h
mov si,[adatok]
cld
lodsw ;ITT DOB KI SZEGMENS HIBÁVAL!!!
mov bp,ax
lodsw
mov bx,ax
mov di,si
l50: mov si,di
l400: lodsb
cmp al,0ffh
jz r500
out dx,al
push bx
l500: loop $
dec bx
jnz l500
pop bx
r500: dec bp
jnz l50
mov eax,1
int 0x80
Ebben az [adatok] azért így szerepel, mert már beleőszültem, hogy zárójel nélkül nem fogadja el, hát próbaképp így oldottam meg. fotáskor "Szegmens hiba"
A másik:
section .data
adatok: dw 6,10 ; Hanyszor, milyen szunetekkel
db 1,2
section .text
global _start
_start: jmp go
go: mov eax,110
mov ebx,3
int 0x80
mov dx,378h
mov si,adatok
cld
lodsw
mov bp,ax
lodsw
mov bx,ax
mov di,si
l50: mov si,di
l400: lodsb
cmp al,0ffh
jz r500
out dx,al
push bx
l500: loop $
dec bx
jnz l500
pop bx
r500: dec bp
jnz l50
mov eax,1
int 0x80
Itt az "adatok" átkerült a .data szegmensre(?) és zárójel nélkül hivatkoznék rá (a lea si,adatok -ra még jobban lehülyéz) - ezt lefordítani sem engedi.
Példaprogramok például itt:
http://www.csee.umbc.edu/help/nasm/sample.shtml
Eddig nem kellett lodsb/lodsw utasítást használnom, semmi gondom nem volt vele. Most meg tépem a hajam. (DOS masm/link simán elfogadja az első példát csak a mov si,[adfatok] helyett természetesen a lea si,adatok vagy csúnyábban lea si, offset adatok)
Valaki tud segíteni?