isu:cv07
Table of Contents
[ISU] 7. Základní řídící konstrukce
- Moodle: Podklady ke cvičení 8 (IS VUT)
- Přednáška: Základní řídicí konstrukce
- Assembler Cheat Sheet IntelCodeTable.pdf
- Slides cvika: Sakin, Jakub Husa
cv7_A.asm ukázka
- cv7_A.asm
; 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
cv7_1.asm
- cv7_1.asm
%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
cv7_2.asm
- cv7_2.asm
; 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.
cv7_B.asm ukázka
- cv7_B.asm
; 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
cv7_3.asm
- cv7_3.asm
; 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
cv7_3.5.asm
- cv7_3.5.asm
; 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!
cv7_4.asm
- cv7_4.asm
; 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 ; **** ; * * ; * * ; ****
cv7_C.asm ukázka
- cv7_C.asm
; 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
cv7_5.asm
- cv7_5.asm
%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
isu/cv07.txt · Last modified: 2025/03/27 20:31 by sakin