TUGAS KELOMPOK BAHASA RAKITAN PUSTAKA MAKRO
Disusun Oleh Sulton Nugraha
12100925
Taufiq Hidayat
12100931
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN ILMU KOMPUTER EL RAHMA YOGYAKARTA 2012
Tugas kelompok bahasa rakitan
A. KASUS Jika terdapat 3 buah bilangan A=20 , B=10 , C=2 dan sebuah bilangan D untuk menampung hasil operasi aritmatika. Bandingkan A dengan B :
Jika A>B lakukan D = (A+B)-C Jika A = B lakukan perbandingan A dengan C - Jika A>C lakukan D = (A+B)/C - jika A=C lakukan D = (A+B)*C - jika A
Tugas : 1. Cetak nilai A,B,C,D 2. Beri keterangan dengan cetak kalimat dengan menggunakan macro yang sudah disimpan di pustaka macro 3. Operasi aritmatika dilakukan dengan menggunakan macro macro yang sudah di simpan di pustaka makro
B. ALGORITMA PROGRAM 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Mulai Meng include kan pustaka.mcr Diklarasikan untuk variabel dan kalimat kalimat yang akan digunakan dalam program Memanggil macro untuk cetak kalimat dengan parameter Kal1 Memanggil macro untuk cetak karakter dengan parameter A Memanggil macro untuk cetak kalimat dengan parameter Kal2 Memanggil macro untuk cetak karakter dengan parameter B Memanggil macro untuk cetak kalimat dengan parameter Kal3 Memanggil macro untuk cetak karakter dengan parameter C Pindahkan nilai A ke register AX Lakukan perbandingan nilai register AX dengan nilai B Jika A > B lompat ke baris 15 Jika A = B lompat ke baris 27 Jika A < B lompat ke baris 21 Memanggil macro untuk cetak kalimat dengan parameter Kal4 Memanggil macro untuk penjumlahan dengan parameter nilai A dan B Memindahkan nilai register AX / hasil penjumlahan A dan B ke D Memanggil macro untuk pengurangan dengan parameter nilai D dan C Memanggil macro tampil untuk proses cetak Lompat ke baris 50 STIMIK EL RAHMA YOGYAKARTA 2012
2
Tugas kelompok bahasa rakitan
21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
Memanggil macro untuk cetak kalimat dengan parameter Kal8 Memanggil macro untuk perkalian dengan parameter nilai A dan B Memindahkan nilai register AX / hasil perkalian A dan B ke D Memanggil macro untuk penjumlahan dengan parameter nilai D dan C Memanggil macro tampil untuk proses cetak Lompat ke baris 50 Memindahkan nilai A ke register AX Bandingkan nilai register AX dengan nilai C Jika A > C lompat ke baris 32 Jika A = C lompat ke baris 38 Jika A < C lompat ke baris 44 Memanggil macro untuk cetak kalimat dengan parameter Kal5 Memanggil macro untuk penjumlahan dengan parameter nilai A dan B Memindahkan nilai register AX / hasil penjumlahan A dan B ke D Memanggil macro untuk pembagian dengan parameter nilai D dan C Memanggil macro tampil untuk proses cetak Lompat ke baris 50 Memanggil macro untuk cetak kalimat dengan parameter Kal6 Memanggil macro untuk penjumlahan dengan parameter nilai A dan B Memindahkan nilai register AX / hasil penjumlahan A dan B ke D Memanggil macro untuk perkalian dengan parameter nilai D dan C Memanggil macro tampil untuk proses cetak Lompat ke baris 50 Memanggil macro untuk cetak kalimat dengan parameter Kal7 Memanggil macro untuk penjumlahan dengan parameter nilai A dan B Memindahkan nilai register AX / hasil penjumlahan A dan B ke D Memanggil macro untuk penjumlahan dengan parameter nilai D dan C Memanggil macro tampil untuk proses cetak Lompat ke baris 50 Interupsi untuk menghentikan program Selesai
STIMIK EL RAHMA YOGYAKARTA 2012
3
Tugas kelompok bahasa rakitan
C. FLOWCHART PROGRAM
Mulai
Deklarasi data
Membaca A, B, C
MOV AX, A CMP AX, B
(A+B)-C
Y
A>B ?
N
A=B ?
N
A
Y
A
Y
A>C ?
Y
(A+B)/C
N
A=C ?
Y
(A+B)*C
N
N
A
Y
(A+B)+C
N
Cetak
Selesai
STIMIK EL RAHMA YOGYAKARTA 2012
4
Tugas kelompok bahasa rakitan
D. SOURCE CODE PROGRAM a. Source code untuk program barak.asm
INCLUDE PUSTAKA.MCR .MODEL SMALL .CODE ORG 100h
Mulai : JMP Proses Kal1 DB 13,10,'A = $' Kal2 DB 13,10,'B = $' Kal3 DB 13,10,'C = $' Kal4 DB 13,10,'(A+B)-C = $' Kal5 DB 13,10,'(A+B)/C = $' Kal6 DB 13,10,'(A+B)*C = $' Kal7 DB 13,10,'(A+B)+C = $' Kal8 DB 13,10,'(A*B)+C = $' A Dw 30 B Dw 20 C DW 2 D DW ?
Proses: Cetak_Klm Kal1 Cetak_Angka A
Cetak_Klm Kal2 Cetak_Angka B
Cetak_Klm Kal3 Cetak_Angka C
MOV AX,A CMP AX,B JA AlebihbesarB
STIMIK EL RAHMA YOGYAKARTA 2012
5
Tugas kelompok bahasa rakitan
JE AsamadenganB JB AlebihkecilB
AlebihbesarB:
cetak_klm kal4 Penjumlahan A,B MOV D,AX Pengurangan D,C Tampil JMP keluar
AlebihkecilB:
cetak_klm kal8 Perkalian A,B MOV D,AX Penjumlahan D,C Tampil JMP Keluar
AsamadenganB:
MOV AX,A CMP AX,C JA AlebihbesarC JE AsamadenganC JB ALebihkecilC
AlebihbesarC:
cetak_klm Kal5 Penjumlahan A,B MOV D,AX Pembagian D,C Tampil JMP keluar
AsamadenganC:
cetak_klm Kal6 Penjumlahan A,B MOV D,AX Perkalian D,C Tampil JMP keluar
AlebihkecilC:
cetak_klm Kal7 Penjumlahan A,B
STIMIK EL RAHMA YOGYAKARTA 2012
6
Tugas kelompok bahasa rakitan
MOV D,AX Penjumlahan D,C Tampil JMP keluar Keluar: END
INT 20h Mulai
b. Source code untuk pustaka.mcr Cetak_Kar
Macro Kar MOV AH,02 MOV DL,Kar INT 21H EndM
Cetak_Klm
MACRO Klm LEA DX,Klm MOV AH,09 INT 21h ENDM
Cetak_Angka
MACRO Angka mov ax,angka Tampil endm
Perkalian
MACRO a,b MOV AX,a Mul b endm
Penjumlahan
MACRO a,b MOV AX,a ADD AX,b endm
STIMIK EL RAHMA YOGYAKARTA 2012
7
Tugas kelompok bahasa rakitan
Pengurangan
MACRO a,b MOV AX,a SUB AX,b endm
Pembagian
MACRO a,b SUB DX,DX MOV AX,a DIV b endm
Tampil
Macro local looping, cetak mov bx,10 xor cx,cx looping: xor dx,dx div bx push dx inc cx cmp ax,0 jne looping cetak: pop dx add dl,'0' mov ah,02h int 21h loop cetak endM
STIMIK EL RAHMA YOGYAKARTA 2012
8
Tugas kelompok bahasa rakitan
E. SCREEN SHOT
STIMIK EL RAHMA YOGYAKARTA 2012
9