isu:cv03
Table of Contents
[ISU] 3. Paměť, pole
- Elearning: Podklady ke cvičení 3 (IS VUT)
cv3_0.asm ukázka
- cv3_0.asm
; UKÁZKA ; Do x ulož hodnotu 12 a vypočítej a+b+x %include "rw32.inc" section .data pA db 5 ; char A = 5; char *pA = &A; pB dw 100 ; short B = 100; char *pB = &B; pC dd 2000 ; long C = 2000; section .bss x resd 1 section .text main: mov [x], dword 12 mov eax, 0 mov ax, [pB] add eax, [pC] mov [x], eax call WriteUInt32 call WriteNewLine ret
cv3_1.asm
- cv3_1.asm
; Vypočítej obvod obdélníku s 8b a 16b hodnoty v paměti. %include "rw32.inc" section .data a ?? 300 ; definuj velikost b ?? 200 ; definuj velikost section .text main: ; zde prosím výpočet call WriteUInt32 call WriteNewLine ret
cv3_2.asm
- cv3_2.asm
; Vypočítej obvod trojúhelníku. ; Postupně načti od uživatele všechny tři strany: 8-bit, 16-bit, 32-bit čísla. ; OMEZENÍ: Máš k dispozici pouze jediný registr EAX, využij neinicializované proměnné. %include "rw32.inc" section .bss ; něco zde section .text main: ; tvůj kód zde call WriteUInt32 call WriteNewLine ret
cv3_3.asm ukázka
- cv3_3.asm
; UKÁZKA ; Práce s polem %include "rw32.inc" section .data pA db 5 ; char A = 5; char *pA = &A; pB dw 1000 ; short B = 5; char *pB = &B; pC dd 200000 ; long C = 5; arrA db 11, 22, 33, 44, 55 ; char arrA[5] = {11,22,33,44,55}; pole bytů s 5 prvky arrB dw 222, 444, 666, 888 ; short arrB[4] arrC dd 0x12345, 0xCAFE, 6969, 911 ; long arrC[4] stri db "aloha",0 section .text main: mov eax, 0 mov al, [arrA + 0] mov al, [arrA + 1] mov al, [arrA + 2] mov al, [arrA + 3] mov al, [arrA + 4] nop mov ax, [arrB + 0] mov ax, [arrB + 2] mov ax, [arrB + 4] mov ax, [arrB + 6] nop mov ax, [arrB + 8] ; ? mov ax, [arrB + 10] ; ?? mov ax, [arrB + 12] ; ??? ret
cv3_4.asm
- cv3_4.asm
; Vypočítej hodnotu z prvků v polích %include "rw32.inc" section .data arrB db 9, 4, 1010b, 125, 17 arrD dd 1234, 0x202, 6969, 911 strFinal db "Done",0 section .text main: mov eax, 0 ; EAX = arrD[3] + arrB[2] - arrD[1] + arrB[4] ; tyto řádky nemodifikuj call WriteUInt32 call WriteNewLine mov esi, strFinal call WriteStringASCIIZ call WriteNewLine ret
cv3_5.asm
- cv3_5.asm
; Vytvoř neinicializované pole a od uživatele do něj načti 5 znaků. ; Znaky přeskládej do opačného pořadí a vypiš na výstup. ; Např.: ABCDE -> EDCBA %include "rw32.inc" section .bss ; něco zde section .text main: mov eax, 0 ; tvůj kód zde ret
isu/cv03.txt · Last modified: 2025/02/27 16:19 by sakin