Skip to content

Instantly share code, notes, and snippets.

@draganczukp
Created May 14, 2018 07:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save draganczukp/d4f11182c0ae4ea6a2187a074e561694 to your computer and use it in GitHub Desktop.
Save draganczukp/d4f11182c0ae4ea6a2187a074e561694 to your computer and use it in GitHub Desktop.
.model tiny
.386
.data
wiersz db 255 dup (?)
.stack 100h
.code
start:
mov ax, @data
mov ds, ax
xor ax, ax
mov dx, offset wiersz
mov (wiersz), 255
mov ah, 0Ah
int 21h
xor cx, cx ; wyzerowanie rejestru cx
xor bx,bx
mov si, 2 ; wykorzystanie rejestru si jako licznika adresowego
licz:
mov al, (wiersz + si) ; wpisanie do rejestru AL pierwszego wczytanego znaku
cmp al, 'a' ; por?wnanie, czy wczytany znak to litera 'a'
jne dalej ; je?li to nie jest litera 'a', to skocz do ?dalej?
inc cx ; zwi?kszenie zawarto?ci CX o 1 (inkrementacja)
cmp cx, 10
jne dalej
inc bl
mov cx, 0
cmp bl, 10
jne dalej
inc bh
mov bl, 0
dalej:
inc si ; zwi?kszenie zawarto?ci SI o 1 (inkrementacja)
cmp al, 13 ; por?wnanie, czy wczytany znak to 'Enter' (kod 13)...
jne licz ; ... je?eli to nie 'Enter' to kontynuuj p?tl?
mov dl, 10
mov ah, 02h
int 21h ; przej?cie do nowej linii
mov dl, bh
add dl, '0'
int 21h ; wy?wietlenie na ekranie ilo?ci znak?w 'a'
mov dl, bl
add dl, '0'
int 21h ; wy?wietlenie na ekranie ilo?ci znak?w 'a'
mov dl, cl
add dl, '0'
int 21h ; wy?wietlenie na ekranie ilo?ci znak?w 'a'
mov ah, 4Ch
int 21h
end start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment