170 likes | 335 Views
Pemrograman Mikroprosesor. Procedure vs Macro. Macro hampir sama dengan dengan procedure Membantu dalam membuat program yang besar. Beberapa perbedaan Perbedaan Macro vs Procedure. Untuk menggunakan procedure : memanggil dengan perintah CALL dan diakhiri dengan RET
E N D
Macro hampirsamadengandengan procedure • Membantudalammembuat program yang besar
BeberapaperbedaanPerbedaan Macro vs Procedure • Untukmenggunakan procedure : memanggildenganperintah CALL dandiakhiridengan RET • Macro bisadigunakandenganmemanggillangsungnamanyadantidakperludiakhiri RET • Pada procedure tidakbisamenggunakan parameter secaralangsung • Macro denganmudahbisamenggunakan parameter, suatuciribahasatingkattinggi
Setiapmemanggil macro, makaseluruhisi macro akandipindahkanpada program yang memanggilnya, sehinggamempercepat program • Setiappemanggilan procedure, komputerharusmelakukanlompatan, sehinggamemperlambat program
Kapanmenggunakan Procedure/Macro? • Jikafungsitersebutjarangdipanggil, makamenggunakan macro karenatidakmemperlambatproses • Jikafungsitersebutseringdipanggil, makamenggunakan procedure karenatidakmemperbesar program • Jikafungsikecil, makamenggunakan macro, karenapengaruhterhadapbesarnya program hanyasedikitdan program akanlebihcepat • Jikafungsibesar, makamenggunakan procedure, karena procedure tidakmemperbesar program
Procedure • Mencetaksatukarakter: .MODEL SMALL .CODE ORG 100H PROSES: CALL Cetak_Kar ; PanggilCetak_Kar INT 20H Cetak_Kar PROC NEAR MOV AH,02H MOV DL,'S' INT 21H ; CetakKarakter RET ; Kembalikepadapemanggil Cetak_Kar ENDP ENDP PROSES
Macro • Mencetaksatukarakter: .MODEL SMALL .CODE ORG 100H Cetak_Kar Macro Kar MOV AH,02h MOV DL,Kar INT 21H ENDM PROSES: Cetak_Kar 'S' INT 20h ENDP PROSES
Membuat macro untukmenghitung LUAS sebuahsegitiga .DATA ALAS DB 10 TINGGI DB 50 LUAS DW 1 DUP(?) .CODE SEGITIGA MACRO VAR1,VAR2,VAR3 PUSH AX MOV AH,0 MOV AL,VAR1 MOV BL,2 DIV BL MUL VAR2 MOV VAR3,AX POP AX ENDM SEGITIGA ALAS,TINGGI,LUAS
Using The Keyboard and Video Display • Microprocessor dapatmenerima input dari user melaluikeyboard • menampilkan output melaluidisplay (layarkomputer) • semuakarakter yang diketikkandi keyboard diterimaolehmikroprosesordalamASCII • jikainginmenampilkansebuahkarakterke display, makamikroprosesorharusmengirimkannyake display dalamkodeASCII (lihat Table 1-8)
Prosesinimenggunakan DOS Function Calls yaitumelalui interrupt 21 (INT 21H). • Sebelum interrupt dijalankan, makaharusdipilih function yang diinginkandari yang tersedia function nomer 00H sampai 0CH
Membaca input dari Keyboard • Membaca 1 buahkarakterdari Keyboard danmenampilkannyake Display (yang diketikdapatdilihatdi display) Contoh program: MOV AH,01H INT 21h
Membaca input dari Keyboard • Membacasebariskaraktersampaiditekan ENTER (ASCII 0DH) Contoh Program : .DATA TIGA DB 257 DUP (?) .CODE MOV TIGA,255 MOV DX,OFFSET TIGA MOV AH,0AH INT 21H
Menampilkan output ke Display • Menampilkan 1 buahkarakterke Display (dari register tertentu) Contoh Program : MOV DL,’A’ MOV AH,02H INT 21H MOV DL,42H INT 21H
Menampilkan output ke Display • Menampilkansebariskaraktersampaiditemuikarakter $ (ASCII 24H) darilokasimemoritertentu Contoh Program : .DATA LIMA DB ‘KULIAH MIKROPROSESOR$’ .CODE MOV DX,OFFSET LIMA MOV AH,09H INT 21H
Contoh Program • Mandapatkan input berupanama, alamatdannomortelponmahasiswadanmenyimpannyadidalam NAMA, ALAMAT dan TELP danmenampilkannyakembali