BAHAN
PRESENTASI MATA KULIAH MIKROPROSESOR DAN MIKROKONTROLER 2023
Disusun Oleh:
Aine Metasawa Zendrato NIM. 2110951042
Dosen Pengampu:
Dr. Darwison, S. T., M. T.
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS ANDALAS
PADANG
2023
PENERAPAN
TEKNIK INTERFACE (PERANGKAT LUNAK) DENGAN PENGGUNAAN EMU86 PADA GAMBAR
38: PROGRAM INT 21H SERVICE 01H
13
September 2023
DAFTAR ISI
Daftar Isi
A. Tujuan
B. Komponen
C. Dasar Teori
c.1 Register
c.2 Perintah Dasar Assembler
D. Percobaan
d.1 Gambar Tampilan Input dan Output
d.2 Langkah-langkah Percobaan
d.3 Prinsip Kerja
d.4 Video Simulasi
E. Unduh Data Blog
e.1 Utama
e.2 Datasheet
e.3 Library
Tujuan diadakannya pemaparan
bahan presentasi melalui blog yakni sebagai berikut:
- Menyelesaikan tugas mata
kuliah Mikroprosesor dan Mikrokontroler yang diberikan oleh Bapak Dr. Darwison,
S. T., M. T. selaku dosen pengampu
- Mendesain dan mensimulasikan
rangkaian dengan perangkat lunak Emu8086 dan Proteus
- Mempelajari dan memahami
definisi dan spesifikasi teknik interface (perangkat lunak)
B. Komponen [Daftar Isi]
Untuk mendesain rangkaian ini, maka dibutuhkan perangkat lunak simulasi dan beberapa komponen penyusun, di antaranya:
- emu8086
C. Dasar Teori [Daftar Isi]
c.1 Register [Daftar Isi]
Register adalah sebagain kecil emmori CPU yang dipakai untuk tempat penampungan data. Data yang disimpan dalam register akan diproses dalam berbagai operasi. Besarnya data disesuaikan dengan daya tampung register. Secara umum register dapat dibagi dalam lima golongan yaitu:
1. General Purpose Register
Register yang digunakan untuk keperluan umum pemrograman, keperluan umum yang dimaksud yaitu melakukan perhitungan aritmatika dan perpindahan data. Register ini terdiri atas:
a. Register AX (Accumulator Register), di mana merupakan register 16 bit yang selalu dipakai dalam operasi penjumlahan, pengurangan, perkalian dan pembagian. Register AX terdiri dari buah register 8 bit yaitu AH dan AL.
b. Register BX (Base Address Register), di mana merupakan register 16 bit sebagai register yang selalu dipakai untuk mengambil atau menulis data langsung dari/ke memori. Register BX terdiri dari buah register 8 bit yaitu BH dan BL.
c. Register CX (Count Register), di mana merupakan register 16 bit sebagai register yang selalu dipakai untuk meletakkan jumlah lompatan pada loop-loop yang anda lakukan. Register CX terdiri dari buah register 8 bit yaitu CH dan CL.
d. Register DX (Data Register), di mana merupakan register 16 bit sebagai register yang selalu dipakai untuk membantu AX dalam operasi perkalian dan pembagian dan menunjukkan nomor port pada operasi port. Register DX terdiri dari buah register 8 bit yaitu DH dan DL. Selain itu DX merupakan register offset dari DS.
2. Segment Register
Segment Register membentuk alamat memori bagi suatu data, terdapat 2 operasi yakni Real Mode dan Protected Real. Register ini terdiri atas:
a. Register CS: Code Segment Register
b. Register DS: Data Segment Register
c. Register SS: Stack Segment Register
d. Register ES: Extra Segment Register
3. Point Register
Point Register adalah register yang digunakan untuk menunjukkan alamt sebuah data di lokasi memori. Penunjukan pada saat operasi perpindahan data, operasi stack (PUSH dan POP), akan dieksekusi pada saat program dijalankan. Register terdiri atas:
a. Instruction Point (IP) Register
b. Stack Point (SP) Register
c. Base Point (BP) Register
4. Index Register digunakan untuk menunjukkan alamat sebuah data di lokasi memori pada operasi-operasi string. Register ini juga digunakan untuk menunjukkan data berindek (Data tipe larik) di dalam memori. Register ini terdiri atas:
a. Source Index (SI) Register
b. Destination Index (DI) Register
5. Flag Register
Flag Register berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosesor. Register ini terdiri atas:
A: Merakit instruksi simbolik (kode mesin)
D: Menampilkan isi suatu daerah memori
E: Memasukan data ke memori yang dimulai pada lokasi tertentu
G: Run executable program ke memori
N: Memberikan nama progran
P: Eksekusi sekumpulan instruksi yang terkait
Q: Keluar
R: Menampilkan isi satu atau lebih register
T: Trace isi sebuah instruksi
U: Unassembled kode mesin ke kode simbolik
W: Menulis program ke disk
c.2 Perintah Dasar Assembler [Daftar Isi]
1. MOV
Perintah MOV adalah perintah untuk mengisi, memindahkan, memperbarui isi suatu register, variable ataupun lokasi memori. Adapaun tata penulisan perintah MOV adalah MOV [operand A], [operand B].
Contohnya: MOV AH, 02, di mana operand A dari perintah di atas adalah register AH dan operand B dari perintah di atas adalah bilangan 02. Hal yang dilakukan oleh komputer untuk perintah di atas adalah memasukkan 02 ke register AH.
2. INT
Perintah INT memanggil subroutine (sub program kecil) yang telah disediakan oleh memori komputer. INT ada dua jenis yaitu:
a. Interrupt 00h-1fh(0-31) merupakan interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS maupun bukan ynag menggunakan sistem operasi DOS. Lokasi interrupt vector table-nya ada di alamat absoluter 0000h-007Fh.
b. Interrupt 20h-FFH(32-255) merupakan interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan interrupt handler-nya dip roses ke memori oleh DOS pada saat DOS digunakan. Lokasi interrupt vector table-nya ada di alamat absolute 07h-3FFH,
Contohnya: INT 20h dan INT 21h service 02h INT, di mana
- INT 20h
Seperti yang telah diuraikan di atas, Int 20h merupakan salah satu dari DOS Interrupt. Adapun tugas Int 20h adalah memberhentikan proses komputer terhadap suatu program COM. Bila pada setiap program COM yang Anda buat tidak terdapat Int 20h, maka sudah bisa dipastikan bahwa bila program tersebut diproses, akan terjadi hanging pada komputer. Hal ini terjadi karena komputer tidak menemukan perintah pemberhentian proses.
- INT 21h Service 02
Seperti INT 20h, INT 21h adalah salah satu Int yang termasuk DOS Interrupt, karena INT 21h mempunyai banyak sekali tugas, maka tugasnya dibagi-bagi menjadi beberapa bagian. Untuk memanggil bagian-bagian itu, Anda perlu menyertakan nomor bagiannya yang disebut juga dengan service number. Pada kesempatan ini akan dibahas salah satu bagian dari INT 21h yang bertugas mencetak sebuah huruf ke layar yaitu fungsi kedua dari INT 21h. Untuk menjalankan fungsi INT 21h service 02 harus dipenuhi beberapa syarat yaitu:
> Register AH, harus berisi service number dari INT 21h yang akan dijalankan (02h).
> Register DL, harus berisi bilangan hexa dari karakter ASCII (American Standard Code for Information Interchange) yang akan dicetak
D. Percobaan [Daftar Isi]
d.1 Gambar Tampilan Input dan Output [Daftar Isi]
Gambar 2. Tampilan Pemrograman yang Telah Diketik
Gambar 3. Tampilan Ketika Pemrograman di-Compile
Gambar 4. Tampilan Ketika Pemrograman di-Emulate
Gambar 5. Tampilan Terminal Ketika di-Run
Gambar 6. Tampilan Akhir Program
d.2 Langkah-langkah Percobaan [Daftar Isi]
Percobaan materi dilaksanakan dengan tahapan berikut:
1. Instal
terlebih dahulu software emu8086. Setelah itu, buka software emu8086. Jika muncul jendela pop-up, klik tombol x,
2. Ketikkan pemrograman di bawah ini,
;Inisialisasi Pertanyaan
START: JMP MULAI
Tanya db 'Jawablah pertanyaan di bawah ini',13,10
db 'Apakah anda seorang mahasiswa?',13,10
db 'Jawaban anda:$'
Jawab1 db 13,10,'Anda adalah seorang mahasiswa.',13,10,'$'
Jawab2 db 13,10,'Anda adalah seorang mahasiswi.',13,10,'$'
;Memulai Program
MULAI: MOV AH, 09H
MOV DX,
INT 21H
;Memberikan Input
ULANG: MOV AH, 01H
INT 21H
CMP AL, 'Y'
JE Mahasiswa
CMP AL, 'y'
JE Mahasiswa
CMP AL, 'T'
JE Mahasiswi
CMP AL, 't'
JNE ULANG
;Mencetak Jawaban
Mahasiswi: MOV AH, 09H
MOV DX,OFFSET Jawab2
INT 21H
JMP SELESAI
Mahasiswa: MOV AH,09H
MOV DX,OFFSET Jawab1
INT 21H
;Mengakhiri Program
SELESAI: MOV AH,4CH
INT 21H
3. Tekan
tombol Compile dan simpan kode tersebut dengan format file .asm, lalu tekan
tombol Close,
4. Tekan
tombol Emulate, dan
5. Tekan
tombol Run, dan terminal akan muncul.
d.3 Prinsip Kerja [Daftar Isi]
Program dimulai
dengan label `START`, yang langsung melakukan loncatan ke label `MULAI`. Di
bagian inisialisasi pertanyaan, kita memiliki beberapa string yang
didefinisikan menggunakan direktif `db` (define byte). Angka 13 dan 10 yang
muncul di antara string-string tersebut adalah representasi karakter carriage
return (CR) dan line feed (LF), yang digunakan untuk pemformatan tampilan.
Proses dimulai
dengan perintah `MOV AH, 09H`, yang mengatur nilai register AH dengan 09H,
suatu fungsi layanan DOS untuk mencetak string. Register DX diatur dengan
alamat memori string pertanyaan, dan fungsi layanan DOS (INT 21H) dipanggil
untuk mencetak pertanyaan tersebut. Pada titik ini, program memberikan tanda
loncatan ke alamat memori 0100:009E.
Setelah loncatan,
terjadi perpindahan ke alamat memori 0100:009E, di mana pengguna diminta untuk
memberikan input. Setelah input diberikan, perintah-perintah pembanding seperti
`CMP`, `JE` (Jump if Equal), dan `JNE` (Jump if Not Equal) digunakan untuk menentukan
tindakan selanjutnya berdasarkan input yang diberikan.
Jika input adalah
'Y' atau 'y', program akan meloncat ke label `Mahasiswa` atau `Mahasiswi`,
masing-masing sesuai dengan kondisi. Pada label `Mahasiswa` dan `Mahasiswi`,
string jawaban yang sesuai disiapkan dengan mengatur register-registernya, dan
fungsi layanan DOS kembali dipanggil untuk mencetak jawaban tersebut. Program
kemudian meloncat ke label `SELESAI` untuk mengakhiri eksekusi.
d.4 Video Simulasi [Daftar Isi]
E. Unduh Data Blog [Daftar Isi]
Tautan untuk mengunduh dapat dilihat pada bawah ini dengan cara menekan tulisan berwarna biru:
Utama
Berkas pemrograman dapat diunduh di sini
Berkas video dapat diunduh di sini
Datasheet
-
Library
-
0 Komentar