global _start section .data podaj db "podaj imie",10 dl_podaj equ $-podaj podaj2 db "podaj nazwisko",10 dl_podaj2 equ $-podaj2 section .bss imie resb 16 nazwisko resb 16 section .text _start: mov rax,4 mov rbx,1 mov rcx,podaj mov rdx,dl_podaj int 80h mov rax,3 mov rbx,0 mov rcx,imie mov rdx,16 int 80h mov rax,4 mov rbx,1 mov rcx,podaj2 mov rdx,dl_podaj2 int 80h mov rax,3 mov rbx,0 mov rcx,nazwisko mov rdx,16 int 80h mov rax,4 mov rbx,1 mov rcx,imie mov rdx,16 int 80h mov rax,4 mov rbx,1 mov rcx,nazwisko mov rdx,16 int 80h mov rax,1 xor rbx,rbx int 80h //kalkulator global _start section .data zma db 0 zmb db 0 suma db 0,10 roznica db 0,10 podaj db "podaj 1 liczbe",10 dl_podaj equ $-podaj podaj2 db "podaj 2 liczbe",10 dl_podaj2 equ $-podaj2 section .text _start: mov rax,4 mov rbx,1 mov rcx,podaj mov rdx,dl_podaj int 80h mov rax,3 mov rbx,0 mov rcx,zma mov rdx,2 int 80h mov rax,4 mov rbx,1 mov rcx,podaj2 mov rdx,dl_podaj2 int 80h mov rax,3 mov rbx,0 mov rcx,zmb mov rdx,2 int 80h mov al,[zma] sub al,'0' mov [zma],al mov al,[zmb] sub al,'0' mov [zmb],al ;suma mov al,[zma] add al,[zmb] add al,'0' mov [suma],al mov rax,4 mov rbx,1 mov rcx,suma mov rdx,2 int 80h ;roznica mov al,[zma] sub al,[zmb] add al,'0' mov [roznica],al mov rax,4 mov rbx,1 mov rcx,roznica mov rdx,2 int 80h mov rax,1 xor rbx,rbx int 80h //kwadrat global _start section .data bok db 0 znak db "*",0 endl db 10 section .text _start: mov rax,3 mov rbx,0 mov rcx, bok mov rdx,1 int 80h mov sil,[bok] sub sil,48 _petla: mov dil,[bok] sub dil,48 cmp sil,0 je _koniec _petla2: cmp dil,0 je _endl mov rax,4 mov rbx,1 mov rcx,znak mov rdx,1 int 80h dec dil jmp _petla2 _endl: mov rax,4 mov rbx,1 mov rcx,endl mov rdx,1 int 80h dec sil jmp _petla _koniec: mov rax,1 xor rbx,rbx int 80h //trojkat global _start section .data bok db 0 znak db "*",0 endl db 10 section .text _start: mov rax,3 mov rbx,0 mov rcx, bok mov rdx,1 int 80h mov sil,[bok] sub sil,48 mov dil,[bok] sub dil,48 _petla: cmp sil,0 je _koniec _petla2: cmp dil,0 je _endl mov rax,4 mov rbx,1 mov rcx,znak mov rdx,1 int 80h dec dil jmp _petla2 _endl: mov rax,4 mov rbx,1 mov rcx,endl mov rdx,1 int 80h dec sil mov dil,sil jmp _petla _koniec: mov rax,1 xor rbx,rbx int 80h //max wart albo min, nie pamietam xd default rel global main extern scanf extern printf section .data format db "%d" format_wypisz db "najwieksza liczba to %d",10,0 tab TIMES 10 db 0 main: push rbp mov rbp,rsp mov r12,tab mov r14d,10 _petla: cmp r14d,0 je _dalej mov rdi, format mov rsi,r12 xor rax,rax call scanf wrt ..plt dec r14d add r12,4 jmp _petla _dalej: mov r13d,[tab] mov r14d,1 _lop: cmp r14d,10 je _koniec cmp r13d,[tab+4*r14d] jl _mniejsza mov r13d,[tab +r14d] _mniejsza: inc r14d jmp _lop _koniec: mov rdi, format_wypisz mov esi,r13d xor rax,rax call printf wrt ..plt mov rsp,rbp pop rbp ret //wypisywanie ASCII section .data napis: db 0,10,0 dlugosc_napisu equ $-napis liczba_iteracji: equ 128 section .bss licznik: resb 1 section .text global main main: mov byte [licznik],0 _petla: mov rax, 4 mov rbx, 1 mov rcx, napis mov rdx, dlugosc_napisu int 80h inc byte [licznik] inc byte [napis] cmp byte [licznik], liczba_iteracji jnz _petla mov rax, 1 mov rbx, 0 int 80h