- 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