%include "rw32-2018.inc" section .data ; linearne vazany seznam (4 prvky obsahujici cislo a ukazatel na dalsi polozku) list dw -45 dd 0 ; NULL, posledni prvek dw 44 dd list+0 dw 42 dd list+18 dw -43 dd list+6 ; ekvivalent list v jazyce C: ; ; struct element { ; int16_t number; struct element *next; ; }__attribute__((packed)); ; ; struct element list[4] = {...}; head dd list+12 target dd -1,-1,-1,-1 target_end equ $ section .text CMAIN: mov ebp, esp; for correct debugging ; Ukol: napiste kod, ktery zkopiruje a rozsiri cisla se seznamu `list` do pole `target`. ; Linearni seznam zacina prvkem na adrese `head`. ; Cisla jsou 16-bitova se znamenkem. Mozne instrukce: mov, movsx, cwde, lea, add... ; vypis pole target na stdout mov esi,target mov edi,target_end .print_loop: cmp esi,edi je .print_end mov al,' ' call WriteChar mov eax,[esi] call WriteInt32 lea esi,[esi+4] jmp .print_loop .print_end: call WriteNewLine xor eax, eax ret