Cześć, przypuśćmy mam takie coś:
str db 'hello'
I chcialbym wyswietlic na stdout tylko str[0], czyli 'h', no to robie sobie coś takiego:
section .data
str db 'hello'
section .text
global _start
_start:
; write
mov eax, str
mov ebx, 1 ; stdout
mov ecx, [eax + 1] [b]; litera 'h' ?[/b]
mov edx, 1 ; długość str
xor eax, eax
mov eax, 4 ; write
int 80h
;exit
xor ebx, ebx
inc ebx
int 80h
Tylko coz, jest blad, zrobilem: strace ./hyhy
execve("./hyhy", ["./hyhy"], [/* 51 vars */]) = 0
write(1, ptrace: umoven: Input/output error
0x61686f, 1) = -1 EFAULT (Bad address)
_exit(1) = ?
Z tego wynika, że źle zadresowałem, mógłby mi ktoś powiedzieć, jak powinno wyglądać prawidłowe zadresowanie ?
//na przyszłość - są tagi <asm> i <code> - nie ma [code] - M