Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

wyświetlanie n-tego słowa ze stringu asembler

$
0
0

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 


Viewing all articles
Browse latest Browse all 21942