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 Macro bisa digunakan dengan memanggil langsung namanya dan tidak perlu diakhiri RET Pada procedure tidak bisa menggunakan parameter secara langsung Macro dengan mudah bisa menggunakan parameter, suatu ciri bahasa tingkat tinggi
Setiap memanggil macro, maka seluruh isi macro akan dipindahkan pada program yang memanggilnya, sehingga mempercepat program Setiap pemanggilan procedure, komputer harus melakukan lompatan, sehingga memperlambat program
Kapan menggunakan Procedure/Macro? Jika fungsi tersebut jarang dipanggil, maka menggunakan macro karena tidak memperlambat proses Jika fungsi tersebut sering dipanggil, maka menggunakan procedure karena tidak memperbesar program Jika fungsi kecil, maka menggunakan macro, karena pengaruh terhadap besarnya program hanya sedikit dan program akan lebih cepat Jika fungsi besar, maka menggunakan procedure, karena procedure tidak memperbesar program
Procedure Mencetak satu karakter: .MODEL SMALL .CODE ORG 100H PROSES: CALL Cetak_Kar ; Panggil Cetak_Kar INT 20H Cetak_Kar PROC NEAR MOV AH,02H MOV DL,'S' INT 21H ; Cetak Karakter RET ; Kembali kepada pemanggil Cetak_Kar ENDP ENDP PROSES
Macro Mencetak satu karakter: .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 untuk menghitung LUAS sebuah segitiga .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 dapat menerima input dari user melalui keyboard menampilkan output melalui display (layar komputer) semua karakter yang diketikkan di keyboard diterima oleh mikroprosesor dalam ASCII jika ingin menampilkan sebuah karakter ke display, maka mikroprosesor harus mengirimkannya ke display dalam kode ASCII (lihat Table 1-8)
Proses ini menggunakan DOS Function Calls yaitu melalui interrupt 21 (INT 21H). Sebelum interrupt dijalankan, maka harus dipilih function yang diinginkan dari yang tersedia function nomer 00H sampai 0CH
Membaca input dari Keyboard Membaca 1 buah karakter dari Keyboard dan menampilkannya ke Display (yang diketik dapat dilihat di display) Contoh program: MOV AH,01H INT 21h
Membaca input dari Keyboard Membaca sebaris karakter sampai ditekan 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 buah karakter ke Display (dari register tertentu) Contoh Program : MOV DL,’A’ MOV AH,02H INT 21H MOV DL,42H
Menampilkan output ke Display Menampilkan sebaris karakter sampai ditemui karakter $ (ASCII 24H) dari lokasi memori tertentu Contoh Program : .DATA LIMA DB ‘KULIAH MIKROPROSESOR$’ .CODE MOV DX,OFFSET LIMA MOV AH,09H INT 21H
Contoh Program Mandapatkan input berupa nama, alamat dan nomor telpon mahasiswa dan menyimpannya di dalam NAMA, ALAMAT dan TELP dan menampilkannya kembali