DISUSUN
OLEH
KELAS : TI - 1B
NIM : 2021573010002
AJARAN 2022-2023
LEMBARAN PENGESAHAN
MENGETAHUI,
DOSEN PMBIMBING MAHASISWA
LEMBAR PENGESAHAN...........................................................................................................................i
DAFTAR ISI.............................................................................................................................................ii
DAFTAR GAMBAR.................................................................................................................................iii
PRAKTIKUM IV.......................................................................................................................................4
1.1 Tujuan Praktikum...................................................................................................................4
1.2 Dasar Teori.............................................................................................................................4
1.3 Percobaan..............................................................................................................................6
1.3.1 Prosedur sederhana...........................................................................................................6
1.3.2 Prosedur dengan POP dan PUSH....................................................................................8
1.3.3 Macro sederhana.........................................................................................................10
1.3.4 Macro dengan label.....................................................................................................12
1.3.5 Pustaka Makro.............................................................................................................14
KESIMPULAN.......................................................................................................................................16
DAFTAR GAMBAR
Gambar 1 Hasil output procedure sederhana.......................................................................................6
Gambar 2 Hasil output dari Prosedur dengan POP dan PUSH...............................................................9
Gambar 3 Hasil output dari macro sederhana.....................................................................................10
Gambar 4 Hasil output dari mcaro dengan label.................................................................................13
Gambar 5 Hasil output pustaka macro................................................................................................15
PRAKTIKUM IV
PROSEDUR DAN MAKRO
CALL NamaProsedur
Macro merupakan bentuk lain dari pemrograman terstruktur pada bahasa mesin. Macro
memiliki bentuk sebaga berikut :
NamaM merupakan nama dari macro yang akan dibuat. MACRO merupakan
key word yang menandakan bahwa kita akan membuat sebuah macro. P1, P2
merupakan parameterparameter yang bisa dimasukkan ke dalam sebuah macro.
Parameter ini bersifat opsional. Macro merupakan sebuah cara untuk menyingkat
penulisan program dengan parameter-parameter yang bisa secara bebas dimasukkan.
Jadi macro dapat dikatakan sebagai template penulisan program bahasa mesin. Oleh
karena itu penggunaan macro yang berulang-ulang akan semakin memperbesar ukuran
file yang akan dihasilkan.
Karena macro merupakan sebuah template penulisan bahasa mesin, maka dapat
dipergunakan label sebagaimana layaknya program bahasa mesin biasa. Namun karena
sifat label yang hanya boleh dipergunakan satu kali saja, maka harus dipergunakan key
word LOCAL untuk membedakan satu label dengan yang lain. Seperti layaknya sebuah
header file, maka macro juga dapat dibuat dalam sebuah file terpisah untuk selanjutnya
diikutkan dalam program utamanya. Untuk melakukannya, maka dipergunakan sintak :
INCLUDE NamaFile
Prosedur dan macro memiliki karakteristik masing-masing sehingga harus
dibedakan kapan harus menggunakan prosedur dan kapan harus menggunakan macro
dalam suatu program bahasa mesin agar efisiensi programnya tetap terjaga.
1.3 Percobaan
Program Assembly
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : proc1.ASM ;
; FUNGSI : MENCETAK KARATER ;
; DENGAN PROCEDURE ;
; ;
;===============================;
.Model Small
.Code
ORG 100h
Proses :
CALL Cetak_Kar ; Panggil
Cetak_Kar INT 20h
End Proses
Hasil output
Program Assembly
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : PROC2.ASM ;
; FUNGSI : MENCETAK KARATER ;
; DENGAN PROCEDURE ;
;;
;===============================;
.Model Small
.Code
ORG 100h
TData : JMP Proses
Kar db ?
Klm db 'BATMAN SI MANUSIA KELELAWAR ' ; 28 Karakter
Proses :
MOV CX,28 ; Banyaknya pengulangan
XOR BX,BX ; Addressing Mode
Ulang :
MOV DL,Klm[BX]
MOV Kar,DL
CALL Cetak_Kar ; Panggil Cetak_Kar
INC BX
LOOP Ulang
INT 20h
Hasil Output
Gambar 2 Hasil output dari Prosedur dengan POP dan PUSH
Analisa :
Servis 02h dan INT 21h akan mencetak karakter yang telah di set, pada dasarnya
program ini hampir sama dengan program procedure yang pertama hanya saja
dibagian push pop dan pengulangan karakter yang dicetak berbeda. Register CX
akan berfungsi untuk pengulangan karena nilai CX disini adalah 28 maka karakter
akan dicetak sebanyak 28 kali. Terdapat adressing mode dibagian klm yang akan
disimpan kedalam register BX, lalu MOV DL akan berfungsi untuk mencopy ke
register DL baru kemudian isi dari register DL akan dicopy oleh kar. CALL akan
berfungsi untuk memanggil procedure, RET berfungsi untuk kembali keprogram
utama atau mereturn ke program utama. Outputnya adalah “Batman Si Manusia
Kelelawar” yang semua karakternya berjumlah 28 termasuk juga spasi. Pada saat 28
karakter ini dicetak, karakter karakter tersebut dicetak satu persatu dengan
perulangan lalu fungsi push akan menyimpan kedalam register. Selanjutnya fungsi
pop akan mengembalikan hasil yang disimpan di register dan INT 21h dan servis
02h akan mencetaknya. Hasil output tidak akan berubah saat penghapusan push
dan pop. Lalu INT 20h akan mengakhiri program dan kembali ke DOS.
1.3.3 Macro sederhana
Program Assembly
Cetak_Kar Macro Kar
MOV CX,3
MOV AH,02
MOV DL,Kar
Ulang :
INT 21h ; Cetak Karakter
LOOP Ulang
EndM ; End Macro
;-----------------------------------;
; Program : MAC1.ASM ;
; Fungsi : Menggunakan Macro ;
; Untuk mencetak ;
; huruf 'SSS' ;
;-----------------------------------;
.Model Small
.Code
ORG 100h
Proses:
Cetak_Kar 'S' ; Cetak Huruf S
INT 20h
End Proses
Hasil Output
Gambar 3 Hasil output dari macro sederhana
Analisa :
.Model Small, .Code, ORG 100h adalah library di bahasa assembly, di program ini
INT 21h dan servis karakter 02h akan disimpan pada register AH yang akan
berfungsi untuk mencetak karakter. Karakter yang akan dicetak adalah karakter S.
register CX akan berfungsi sebagai counter penghitung banyaknya perulangan yang
akan dilakukan dalam program ini akan dilakukan 3 kali perulangan. Karena makro
dapat langsung dipanggil maka pendefinisian atau pemanggilan CALL tidak
diperlukan lagi. Dengan adanya perulangan maka karakter “S” akan dicetak
sebanyak 3 kali karena isi dari register CX adalah 3. EndM akan berfungsi untuk
menghentikan program makro. Baru kemudian INT 20h akan menghentikan
program secara keseluruhan dan kembali ke DOS.
1.3.4 Macro dengan label
Program Assembly
Hasil Output
Gambar 4 Hasil output dari mcaro dengan label
Analisa :
Interupt 21h dan servis 02h akan berfungsi untuk mencetak karakter. Di program
mencetak karakter dengan label ini akan mencetak karakter “P” dan “C”. Register
CX akan berfungsi sebagai counter atau banyaknya perulangan yang akan dilakukan
dalam program ini register CX berisi nilai 3 maka banyaknya perulangan yang akan
dilakukan adalah 3 kali yang menjadikan outputnya adalah “PPPCCC”. Karena
pemanggilan label pada makro hanya dapat dilakukan sebanyak satu kali maka
nama label akan diganti dari nama “Ulang” menjadi “LOCAL” untuk mencegah
terjadinya error. EndM akan berfungsi untuk menghentikan program makro. Baru
kemudian INT 20h akan menghentikan program secara keseluruhan dan kembali ke
DOS.
1.3.5 Pustaka Makro
Program Assembly 1
;/========================\;
; Program : macku.MCR ;
;\========================/;
Cetak_Kar MACRO Kar ; Macro untuk
mencetak
MOV AH,02 ; Karakter
MOV DL,Kar
INT 21h
ENDM
Cetak_Klm MACRO Klm ; Macro untuk
mencetak
LEA DX,Klm ; kalimat
MOV AH,09
INT 21h
ENDM
Program Assembly 2
;/====================================\;
; Program : mac3.ASM ;
; Fungsi : Contoh menggunakan ;
; pustaka macro ;
;\====================================/;
INCLUDE macku.mcr ; Gunakan file macku.mcr
.Model Small
.Code
ORG 100h
TData :
JMP Proses
Kal0 db 'PENGGUNAAN PUSTAKA Macro $'
Proses:
Cetak_Klm Kal0 ;Cetak Kalimat Kal0
Cetak_Kar 'Y' ; Cetak Huruf 'Y'
INT 20h
End TData
Hasil Output
KESIMPULAN
Bahasa mesin juga memiliki suatu bentuk prosedur yang mana masih dalam
bentuk yang sederhana. Meskipun demikian, prosedur dalam bahasa mesin
sudah memiliki fungsi dan kegunaan yang serupa dengan prosedur pada
bahasa level tinggi.
Dilihat dari penggunaan dan fungsi dari prosedur dan makro maka dapat
dipastikan bahwa prosedur dan makro sangat perlu untuk bisa di kuasai.