Assembly (Program Menghitung Huruf Vokal&Konsonan)

.Model Small
.Code
org 100h

Start :
jmp mulai
welcome DB 'Program Untuk Menghitung Jumlah Vokal'
DB 13,10,'dan Konsonan dalam Suatu Kalimat'
DB 13,10,'-------------------------------------',13,10,'$'
tanya DB 'Ketikkan suatu kalimat : $'
buffer DB 30,?,30 DUP (?)
vokal DB 13,10,'Jumlah Huruf Vokal = $'
konsonan DB 13,10,'Jumlah Huruf Konsonan = $'

mulai :
mov ah,09
lea dx,welcome
int 21h

mov ah,09
lea dx, tanya
int 21h

mov ah,0Ah
lea dx, buffer
int 21h ; input dari keyboard

lea bx, buffer+2

mov al,00
compare :
cmp byte ptr [bx], 0dh
je exit
cmp byte ptr [bx], 'a'
je c_vokal
cmp byte ptr [bx], 'e'
je c_vokal
cmp byte ptr [bx], 'i'
je c_vokal
cmp byte ptr [bx], 'o'
je c_vokal
cmp byte ptr [bx], 'u'
je c_vokal

cmp byte ptr [bx], 20h
je c_kons

inc bx
add al,1 ; isi dari consonant
loop compare

c_vokal :
add dh,1 ; isi dari vocal
inc bx
add al,1
loop compare

c_kons :
inc bx
loop compare

exit :
;mov dl,6
;count dl

sub al,dh
add al,1
push dx ; simpan isi dari dh (untuk vocal)

push ax ; simpan isi dari al (untuk consonant)
mov ah,09
mov dx, offset konsonan
int 21h

pop ax ; pop al
mov bl,10
mov al,al
mov ah,0
div bl
push ax

mov dl,al
add dl,30h
mov ah,2
int 21h

pop ax
mov dl,ah
mov ah,2
add dl,30h
int 21h

pop dx ; pop dh
;.............................................

sub dh,1
push dx
mov ah,09
mov dx,offset vokal
int 21h

pop dx
mov bl,10
mov al,dh
mov ah,0
div bl
push ax

mov dl,al
add dl,30h
mov ah,2
int 21h

pop ax
mov dl,ah
mov ah,2
add dl,30h
int 21h

int 20h
end start

Category: 0 komentar

Tidak ada komentar:

Posting Komentar