mam do napsiania program który ma za zadanie wyświetlić n-ty wyraz z podanego ciągu
np. uruchamiam ./program 3 'ax ab cd fg' i ma pokazać cd
napisałem do tej pory
.intel_syntax noprefix
.text
.globl main
main:
// kompilacja: gcc prog.s -o prog -m32 -nostdlib
// zeruj wszystkie pozycje
xor eax, eax
xor ebx, ebx
xor ecx, ecx
// run ./programm 3 'ax ab cd fg'
mov eax , [esp+8] /* "argv[1]" -> 3 */
mov ebx, [esp+12] /* "argv[2]" -> 'ax ab cd fg' */
cld
szukaj:
// zaladuj do AL bajt spod adresu ESI
lodsb
// sprawdz czy koniec stringa (znak '\0')
cmp AL, 0
// jesli tak -> zakoncz
je out
// sprawdz czy ilosc spacji == 1?
cmp eax, 1
je wyraz
cmp al, ' '
je spacja
lodsb /* załaduj kolejny znak*/
jmp szukaj
spacja:
dec eax /*zmniejsz eax o 1*/
jmp szukaj /* wroc do szukania*/
wyraz:
//wyswietlaj litery do kolejnej spacji
// lub zapisz litery do zmiennej az do kolejnej spacji
nie wiem jak zrobić ostatnią etykiete wyraz. bede wdzięczny za pomoc