Program ma za zadanie wczytać łańcuch znaków i wypisać ilość wystąpień litery 'a' w łańcuchu.
Do tej pory udało mi się osiągnąć (przez przypadek, nie było to zamierzone) jedynie wypisywanie ilości wszystkich znaków w łańcuchu:
.286
.model small
.stack 100h
.data
podaj db "Podaj lancuch znakow:",13,10,'$'
buf db 100,101 dup('$')
.code
start:
mov ax,seg @data
mov ds,ax
mov dx,offset podaj
mov ah,9
int 21h
mov dx,offset buf
mov ah,10
int 21h
mov dl,10
mov ah,2
int 21h
mov ah,2
mov si,offset buf
add si,2
mov ax,0
petla:
mov dl,[si]
cmp dl,13
je koniec
cmp dl,'a'
je licz
cmp dl,'A'
je licz
licz:
inc si
inc ax
jmp petla
koniec:
call wypisz
mov ax,4c00h
int 21h
wypisz proc
mov cx,0ah
mov dx,0
div cx
cmp ax,0
je @@kon
push dx
call wypisz
pop dx
@@kon:
mov ah,02h
add dl,'0'
int 21h
ret
wypisz endp
end start
Jeśli to możliwe prosiłbym o pomoc z tym zadaniem, mile widziane komentarze objaśniające co dana instrukcja robi.