Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 100h
- ; Pętla głównego programu.
- push 1
- mov cx, 1
- Program:
- mov dx, prosze_wpisac
- mov ah, 9
- int 21h
- ; Wpisanie ciągu znaków z klawiatury.
- mov ah, 0ah
- mov dx, znaki
- int 21h
- ; Sprawdzenie czy ciąg znaków jest niepusty.
- mov al, [(znaki + 2 ) + 0]
- cmp al, 10
- je CzyKoniec
- mov dx, 10
- mov ah, 2
- int 21h
- ; Wypisywanie znaków.
- mov dx, wynik
- mov ah, 9
- int 21h
- mov bx, 0
- jmp Sprawdz
- ; Koniec wypisywania znaków.
- loop Program
- ; Koniec pętli głównego programu.
- ; Sprawdzenie, czy sprawdzono wszystkie znaki.
- Sprawdz:
- cmp bx, [(znaki + 1)]
- jb CzyWypisac
- jae CzyKoniec
- ; Sprawdzenie, czy znak ma być wypisany.
- CzyWypisac:
- mov al, [(znaki + 2) + bx]
- cmp al, 32
- ja DoWypisania
- jbe NieDoWypisania
- ; Wypisanie znaku.
- DoWypisania:
- call WypiszZnak
- inc bx
- jmp Sprawdz
- ; Niewypisanie znaku.
- NieDoWypisania:
- inc bx
- jmp Sprawdz
- ; Funkcja wypisująca znak.
- WypiszZnak:
- mov dx, [(znaki + 2) + bx]
- mov ah, 2
- int 21h
- ret
- ; Koniec funkcji wypisującej znak.
- ; Sprawdzenie, czy użytkownik chce zakończyć program.
- CzyKoniec:
- mov dx, 10
- mov ah, 2
- int 21h
- mov dx, czy_zakonczyc
- mov ah, 9
- int 21h
- mov dx, 10
- mov ah, 2
- int 21h
- mov dx, jesli_nie
- mov ah, 9
- int 21h
- mov ah, 7
- int 21h
- cmp al, "%"
- je Koniec
- mov dx, 10
- mov ah, 2
- int 21h
- inc cx
- push cx
- ; Koniec funkcji.
- ;Kończy program.
- Koniec:
- mov dx, 10
- mov ah, 2
- int 21h
- mov dx, sp
- mov ah, 9
- int 21h
- mov ax, 4c00h
- int 21h
- ;
- section .data
- zmienna db 0
- brak db "Nie wpisano znakow, prosze wpisac ponownie$"
- prosze_wpisac db "Prosze podac ciag znakow: $"
- wynik db "Zmieniony ciag znakow: $"
- czy_zakonczyc db "By zakonczyc program wcisnij znak '%'.$"
- jesli_nie db "W przypadku wprowadzenia innego znaku program bedzie kontynuowany.$"
- znaki db 51
- db 0
- times 52 db "$"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement