Oleh :
Fitria Anggraini
19063012
Dosen Pengampu:
Juli Sardi, S.Pd.,M.T.
TUJUAN
1. Mengetahui dan memahami Register pada Mikroprosesor 8086
2. Mempelajari cara menggunakan DOSBox
3. Membuat program sederhana pada Register Mikroprosesor 8086
4. Membuat dan menganalisis program dalam mencari suatu kategori data
DASAR TEORI
Mikroprosesor 8086/8088 memiliki 4 register yang masing-masingnya terdiri dari 16
bit, ditambah 9 register flag. Empat kelompok register 16 bit yaitu Data Register, Pointer
dan Index Register, flag register dan instruction pointer, dan Segment Register. 4 Jenis
kelompok register tersebut sebagai berikut:
1. General Purpose Register
Accumulator Register AX
Fungsi: Sebagai akumulator dan berhubungan dengan jenis-jenis operasi khusus
seperti Aritmetika, In/Out, Shift,Logic, Rotate, dan operasi desimal berkode biner.
Base Register BX
Fungsi: Sebagai register base untuk mereferensi alamat memori. Operasi yang
dapat dilakukan adalah Rotate, Logic, Shift, dan Aritmetika.
Counter Register CX
Fungsi: Sebagai pencacah implisit dengan instruksi tertentu, misalnya terhadap
perintah loop dan operasi string. Counter naik jika direction flag bernilai 0, dan
counter turun jika direction flag bernilai 1.
Data Register DX
Fungsi: Menyimpan alamat port I/O selama operasi I/O tertentu, baik alamat port
8-bit maupun 16 bit. Digunakan juga dalam operasi perkalian dan pembagian.
2. Pointer dan Index Register
Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack seperti menyimpan alamat return saat
memanggil subroutine. SP merupakan register yang secara implisit digunakan oleh
perintah PUSH dan POP yaitu menyimpan dan mengambil kembali dari stack.
Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam stack yang disediakan untuk penyimpanan
data. BP juga digunakan SI dengan bahasa pemrograman misalnya Assembler dan C.
Register SI (Sourch Index)
Fungsi : digunakan untuk mengalamati sumber data secara indirect untuk
digunakan dalam instruksi string
Register DI (Destination Index)
Fungsi : secara normal digunakan untuk mengalamati data tujuan dan instruksi
string, dan menyimpan offset suatu operan selama berlangsungnya operasi string.
4. Segment Register
Daerah-daerah memori yang disediakan bagi program data dan stack dialamatkan
secara terpisah, walaupun daerah-daerah ini mungkin saja saling tumpang tindih. Pada
setiap saat tersedia empat blok memori yang dapat dialamatkan, yang dinamakan
segment dan masing-masing panjangnya 64K.
Register segment yang disediakan yaitu :
Segment kode (CS) : berisi instruksi yang melakukan tugas yang telah didesain,
pasangan register ini adalah register IP.
Segment Data (DS) : menyimpan informasi yang harus diproses oleh instruksi
segment kode, pasangan register ini adalah register SS dan SP.
Segment Stack (SS) : bagian dari memori yang digunakan untuk stack, pasangan
register ini adalah register SS dan SP.
Segment Extra (ES) : segment khusus yang secara normal digunakan hanya untuk
operasi string.
Instruksi MOV
Instruksi mov ini memberitahukan kepada CPU untuk pindah dari operad sumber ke
operan tujuan. Contoh instruksi berpengalamatan register.
MOV tujuan, sumber : Copy operand sumber ke tujuan
MOV DX,CL : Menyalin isi dari register CX ke register DX
MOV AX,BL : Menyalin BL ke AL
MOV CH,CL : Menyalin CL ke CH
MOV AX,CX : Menyalin CX ke AX
MOV SP,BP : Menyalin BP ke SP
MOV SI,DI : Menyalin DI ke SI
MOV BX,ES : Menyalin ES ke BX
Pengalamatan Immediate
Pengamalatan immediate berarti data secara langsung mengalami opcode
heksadesimal dalam memori. Data immediate merupakan data konstan, sedangkan data
yang ditransfer dari register adalah data variable.
Contoh pengamalatan immediate menggunakan instruksi MOV
MOV BL,44 : Menyalin/memindahkan angka decimal 44 (2CH) ke BL
MOV AX,44H : Menyalin 0044H ke AX
MOV SI,0 : Menyalin 0044H ke SI
Interrupt (Int)
DOS Interrupt yaotu Int yang disediakan oleh DOS (disk operating system), yang
termasuk interrupt DOS adalah interrupt diatas Int IF hwxa.
Int 20h
Tugas Int 20h adalah memberhentikan proses computer terhadap suatu program COM.
2. Ketik dan jalankan program berikut ini untuk mencetak huruf A-Z terdiri dari 26 huruf
3. Ketik dan jalankan program berikut ini untuk mencetak angka dan huruf dari 0-I
4. Ketik dan jalankan program untuk mencetak huruf C tujuh kali, kode untuk
menampilkan huruf C, MOV DL,43
5. Ketik dan jalankan program untuk mencetak huruf D Empat kali, kode untuk
menampilkan huruf D, MOV DL,44
6. Ketik dan jalankan program untuk mencetak huruf C-Z terdiri dari 24 huruf atau 18
hexa
7. Ketik dan jalankan program untuk mencetak huruf D-W terdiri dari 20 huruf atau 14
hexa
8. Ketik dan jalankan program untuk mencetak huruf Z-A terdiri dari 26 huruf