; UKÁZKA jumpů %include "rw32.inc" section .data aa db 15 bb db 42 section .text main: mov al, [aa] mov bl, [bb] jmp .soucet .pokracuj1: nop jnz .nasobeni .pokracuj2: nop jmp .posledni .soucet: add al, bl jmp .pokracuj1 .nasobeni: mul bl jmp .pokracuj2 .posledni: call WriteUInt16NewLine ret
%include "rw32.inc" ; Načti dvě znaménková čísla z paměti, porovnej je a vypiš do terminálu string říkající, ; které číslo je větší podle výsledku porovnání (např. var1 > var2). section .data ; definuj var1, var2, strBigger, strSmaller section .text main: ; načtení proměnných do registrů ; porovnání hodnot ; podmíněný skok na návěští, kde se nastaví "Source Index" na string ; z návěští pak nepodmíněný skok na návěští ".end" .bigger: ; nastav string .smaller: ; nastav string .end: ; vypiš string ret
; Načti dvě znaménková 8-bit čísla a proveď jejich součet. ; Pokud došlo k přetečení, vypiš nějakou hlášku a skonči. ; Pokud je výsledek záporný, obrať číslo na kladné (absolutní hodnota). ; Vypiš výsledek.
; Ukázka cyklů %include "rw32.inc" section .text main: mov eax, 3 .for: cmp eax, 0 jz continue call WriteUInt32 dec eax jmp .for continue: call WriteNewLine mov ebx, 0 ; EBX = pocatecni hodnota sumy .dowhile: call ReadInt32_Silent ; EAX = vstup add ebx, eax ; suma = suma + vstup .condition: cmp eax, 0 ; porovnanim nastavime priznaky jne .dowhile ; pokud vstup nebyl 0 tak se cyklus bude opakovat enddowhile: mov eax, ebx ; EAX = suma call WriteInt32NewLine forloop: mov ecx, 3 .cycle: shl eax, 1 loop .cycle ; ECX--, jnz end: call WriteInt32NewLine ret
; Procházej prvky v poli a kladné čísla vypisuj jako znak (WriteChar). ; Konec pole je označen prvkem s hodnotou nula. section .data num dd 73,-5,83,-85,85,-101,-401,32,106,-1,101,32,66,-1,64,-1,90,73,-44,0,73,-4,99,72,0
; Definuj si řetězec (všechny symboly lower-case) ; Vypiš do terminálu řetězec ve formě Mocking SpongeBob (google it) ; Pokud bude hodnota písmena sudá, písmeno vypiště Capslokem, ; pokud bude hodnota písmena lichá, vypiště beze změny. ; Pozor na symbol mezery!
; Vykresli čtverec z hvězdiček. ; Od uživatele načti číslo n=<2;10> ; Pomocí cyklů vykresli rámeček z hvězdiček o velikosti n. ; Např. pro n=4 ; **** ; * * ; * * ; ****
; Ukázka zásobník %include "rw32.inc" section .data num dd 99 section .text main: mov eax, 55 push eax push 4 push dword [num] nop pop eax pop eax pop dword [num] ret
%include "rw32.inc" section .data pole dd 4, 8, 15, 16, 23, 42 section .text main: mov ecx, 6 ; Bez použití registrů (vyjímkou ECX pro cyklus) ; proveď reverzi prvků v poli pomocí zásobníku. ret