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