Blog Nur Akhwan

Blog Nur Akhwan - Blog tentang Pemrograman Web dengan Bahasa PHP, Download Gratis Aplikasi Web PHP

Dibawah ini merupakan listing program assembly untuk menampilkan hasil penjumlahan dan rerata dari beberapa bilangan yang diinputkan. Sebelumnya banyaknya bilangan, diinput oleh user sendiri.

Priview :

Listing Programnya :
cetak_kal macro kal
mov ah,09h
lea dx,kal
int 21h
endm
cetak_angka macro angka
mov al,angka
cmp al,09h
jg duadigit
mov dl,al
mov ah,02h
int 21h
duadigit:
xor ax,ax
mov al,angka
mov bl,10
div bl
mov bh,ah
mov dl,al
or dl,30h
mov ah,2
int 21h
mov dl,bh
or dl,30h
mov ah,2
int 21h
endm

.model small
.code
org 100h
mulai: jmp proses
val1 db ?
val2 db ?
label1  db 13,10,'Jumlah data : $'
label2  db 13,10,'Masukkan angka : $'
label3  db 13,10,'Rata-rata : $'
label4  db 13,10,'Jumlah semua : $'
proses:
cetak_kal label1 ;cetak kalimat "Masukkan angka : "
mov ah, 01h ;ambil jumlah angka
int 21h ;ambil jumlah angka
sub al, 30h ;kurangkan hasil inputan dengan 30
mov cl, al ;copy ke register cl (untuk jumlah perulangan) dari al (hasil inputan tadi)
mov bl, al ;copy ke register bl (untuk pembagi rata2) dari al (hasil inputan tadi)
mov al, 00 ;copy ke register al = 00
mov val1, al ;isi variabel sementara val1 dengan al = 0
lbl2: ;cetak label2 (Masukkan angka : )
cetak_kal label2 ;cetak label2 dengan makro cetak_kal
mov ah, 01h ;ambil hasil angka inputan ke-"cl"
int 21h ;ambil hasil angka inputan
sub al, 30h ;kurangkan hasil inputan dengan 30
add al, val1 ;tambahkan al(hasil inputan barusan) dengan val1
mov val1, al ;isikan val1, dengan al (hasil val1+inputan)
loop lbl2 ;melakukan perulangan sebanyak "cl" (kembali ke lbl1)
rata2: cetak_kal label3 ;cetak label3 (Rata-rata : ) dengan makro cetak_kal
mov ax, 00 ;copy ke register ax = 00
mov al, val1 ;copy ke register ax = val1 (hasil penjumlahan inputan angka)
div bl ;bagi al, dengan bl (jumlah angkan yang diinput di atas)
add ax, 3030h ;tambahkan ax == 00, dengan 3030
mov dx, ax ;copy ke register dx = ax (00+3030)
mov ah, 02h ;cetak dx (rata-rata)
int 21h
jumlah: cetak_kal label4 ;cetak label4 (Jumlah semua : )
cetak_angka val1 ;cetak nilai val1 (hasil penjumlahan inputan)
mov ah, 4ch
int 21h
end mulai

DOWNLOAD