mov eax, 4 mov ebx, 1 mov ecx, tekst mov edx, [dlugosc_tekst]

Transkrypt

mov eax, 4 mov ebx, 1 mov ecx, tekst mov edx, [dlugosc_tekst]
1. Wypisywanie tekstu na standardowe wyjście:
mov eax, 4
mov ebx, 1
mov ecx, tekst
mov edx, [dlugosc_tekst]
int 80h
2. Czytanie tekstu ze standardowego wejścia:
mov eax, 3
mov ebx, 0
mov ecx, tekst
mov edx, [ dlugosc_tekst]
int 80h
3. Warunek if else:
cmp eax, ebx
; porównanie rejestrów
je _skok
; jeśli równe to skok warunkowy
.......................
;blok instrukcji else
jmp
;koniec bloku else. Wyjście z pętli za pomocą skoku
;bezwarunkowego
_koniec
_skok:
...................
;blok wykonywalny gdy warunek prawdziwy
_koniec:
4. Pętla for:
_skok:
cmp eax, ebx
ja _koniec
....................
; porównanie rejestrów
;jeśli eax większy od ebx to koniec pętli
;ciało pętli
inc ebx
;inkrementacja zmiennej warunkowej
jmp _skok
; powrót do początku pętli
_koniec:
5. Pętla do-while, czyli loop na rejestrze ecx:
mov ecx, 10
_skok:
..............................
loop _skok
;ustawienie ilości wykonania pętli
;ciało pętli
;dopóki wartość ecx większa od 0 dekrementacja ecx o jeden
;i skok na początek. W przeciwnym razie wykonywane są
;dalsze instrukcje
6. Operacje arytmetyczne:
ADD rejestr, zmienna
SUB rejestr, zmienna
INC rejestr
DEC rejestr
MUL rejestr lub zmienna
Dodawanie
Odejmowanie
Zwiększanie o jeden
Zmniejszanie o jeden
Mnożenie
Przykład pętli loop:
mov ecx,8
_petla:
mov esi,ecx
mov eax, 4
mov ebx, 1
mov ecx, tekst1
mov edx, [dlw]
int 80h
mov ecx,esi
loop _petla
mov eax, 1
int 80h
Przykład pętli for:
mov esi,8
petla:
cmp esi,0
je _koniec
dec esi
mov eax, 4
mov ebx, 1
mov ecx, tekst1
mov edx, [dlw]
int 80h
jmp _petla
_koniec:
Zadania do samodzielnego wykonania:
1. Napisz program echo powtarzający podany przez ciebie ciąg znaków.
2. Napisz program, który wypisze na ekran wszystkie znaki ASCII,
z użyciem obu wariantów pętli.
3. Napisz program, który policzy liczbę wystąpień litery 'a' w zdaniu podanym z klawiatury.
4. Napisz program który w zależności od wprowadzonego znaku policzy sumę, albo różnicę
dwóch liczb.
5. Napisz program wczytujący znaki z klawiatury do póki nie wprowadzisz 'k'.