BAB II
MIKROPROSESOR INTEL 8088
Tujuan
Setelah mempelajari bab ini, mahasiswa mampu: a. Memahami konfigurasi pin 8088
b. Mengidentifikasi blok arsitektur internal 8088 c. Menjelaskan fungsi register yang ada di 8088
d. Memahami instruksi-instruksi 8088 dan mengaplikasikan instruksi tersebut dalam bahasa asembler.
Mikroprosesor Intel 8088 adalah multipurpose mikroprosesor yang diimplementasikan dengan teknologi N-channel, depletion load, silicon gate (HMOS-II). Dipasarkan dengan format 40-pin CERDIP (Ceramic Dual Inline Package). Mikroprosesor ini termasuk keluarga
mikroprosesor 8 bit dan 16 bit. Mikroprosesor Intel 8088 kompatible secara langsung dengan software yang didesain untuk mikroprosesor 8086 dan 8080/8085, dan secara hardware juga kompatible dengan mikroprosesor 8080/8085, dan konfigurasi pin 8088 pada gambar 2.1. Keterangan
GND : ground (0 volt) Vcc : +5 volt
D0 – D7 : Data bus (8 informasi biner = 1 byte)
ada 28 = 256 kombinasi data (00H – FFH) untuk kode ASCII A0 – A19 : Address bus (20 informasi biner)
ada 220 = 1048576 kombinasi harga, berarti ada 1048576 lokasi memori yg dpt dialamati read : sinyal kontrol untuk membaca
write : sinyal kontrol untuk menulis
clock : frekuensi kerja μP8088 (5 MHz atau 8 MHz) reset : menginisialisasi kembali semua isi register ALE : Address Latch Enable,
Kemampuan Bus
1. Lebar dari bus data sering digunakan untuk mengklasifikasikan μP.
Contoh: μP8088 adalah microprocessor 8-bit karena jumlah pin untuk bus data sebanyak 8 buah (D0–D1–D2–D3–D4–D5–D6–D7 : pin no. 9 – 16).
2. Lebar dari bus alamat menyatakan jumlah maksimum blok memory yang dapat diakses oleh mikroprosesor.
a. μP dengan 1 buah alamat (A) hanya dapat mengakses 2 blok memori yaitu pada saat A=0 dan A=1
b. μP
Jumlah jalur alamat
Total blok memori
Kapasitas memori (1 blok memori = 1 byte)
keterangan
1 21 = 2 2 byte
2 22 = 4 4 byte
16 216 = 65536 65536 byte = 64 K byte i8080, Z80
20 220 = 1048576 1048576 byte = 1024 K byte = 1 M byte
i8088
Contoh: uP 8088 memiliki bus alamat dengan lebar 20 bit sehingga uP 8088 dapat mengakses memori berkapasitas maksimum 220 =1048576 blok memori atau 1 Mb. Sedangkan bus kontrol memiliki lebar 1 saluran untuk setiap fungsi.
Register
Pada bagan organisasi komputer, memori diletakkan terpisah dari mikroprosesor. Jika bagan tersebut diimplementasikan, uP harus mengakses memori setiap saat. Dan karena kecepatan memori jauh lebih lambat dari uP (sebagai contoh uP Pentium IV telah mencapai kecepatan 2 GHz sedangkan DDRAM maksimum hanya memiliki kecepatan 0.8 GHz), maka kecepatan kerja uP akan sangat dipengaruhi oleh kecepatan memori. Untuk mempercepat pemrosesan data di dalam mikroprosesor, selain CU dan ALU, mikroprosesor juga akan membutuhkan memori yg memiliki kecepatan sama dengan uP. Untuk melakukannya, memori tersebut harus
diimplementasikan didalam mikroprosesor. Memori ini disebut dengan register.
Jenis register berdasarkan informasi yg disimpannya dapat dibagi menjadi 4. 1. Register Data
digunakan untuk menyimpan data yg diperlukan untuk suatu operasi. Terdiri dari: AX (Accumulator), BX (Base), CX (Counter), DX (Data)
2. Register Alamat
karena jumlah register data sangat terbatas, maka sebagian besar data tetap diletakkan di memori. Untuk dapat mengaksesnya, uP membutuhkan alamat dari data tersebut yg disimpan oleh register alamat.
Terdiri dari: SP (Stack Pointer), BP (Base Pointer), SI (Source Index), DI (Destination Index), DS (Data Segment), ES (Extra Segment), SS (Stack Segment), CS (Code Segment), IP
(Instruction Pointer) dan BX (Base)
3. Register Status (Flags)
digunakan untuk menyimpan status dari hasil operasi yg menggunakan ALU. Terdiri dari: OF (Overflow Flag), DF, IF, TF, SF (Sign Flag), ZF (Zero Flag), AF, PF, CF (Carry Flag)
4. Register Instruksi
digunakan untuk menyimpan instruksi yang sedang dikerjakan Catatan:
Register BX selain dapat digunakan sebagai register data dapat juga digunakan sebagai register alamat Lebar semua register uP8088 adalah 16 bit = 2 byte. Sehingga setiap register dapat berharga 0000H s.d. FFFFHatau 216 = 65536 kombinasi harga. Setiap register akan diakses (dibaca/ditulis) dalam format 16 bit tersebut, kecuali register data dapat diakses dalam format 8 bit = 1 byte (AH, AL, BH, BL, CH, CL, DH, DL).
AH AL
BH BL
CH CL
DH DL
Elemen didalam mikroprosesor adalah :
CU (Control Unit) adalah manajer dari semua unit. CU mengatur keselarasan kerja setiap unit. Apa yang harus dilakukan oleh suatu unit, semuanya diketahui oleh CU dengan bantuan
microprogram yang ditanamkan padanya. Pengontrolan oleh CU dilakukan melalui Bus Kontrol (panah dari/ke Control Unit).
Instruction Decoder bertugas untuk menerjemahkan suatu instruksi dengan cara
membandingkannya dengan tabel instruksi yang dimilikinya. Hasil dekoding diberikan ke CU, dan CU akan membangkitkan sinyal-sinyal kontrol yang diperlukan untuk melaksanakan instruksi tersebut.
Register adalah memori khusus di dalam uP. Untuk mengidentifikasikannya, register memiliki nama khusus yang juga sekaligus mencerminkan fungsi register tersebut. Berdasarkan isinya, register dapat dibedakan menjadi :
Register Data memiliki lebar 16 bit namun dapat diakses dalam format 2x8 bit: Accumulator : AX = AH+AL
Base Register : BX = BH+BL Counter Register : CX = CH+CL Data Register : DX = DH+DL
Register Alamat memiliki lebar 16 bit :
Code Segment : CS, menyimpan alamat segment dari program Instruction Pointer : IP, menyimpan alamat offset dari program Data Segment : DS, menyimpan alamat segment dari data
Index Register : BI (Base Index), SI (Source Index), DI (Destination Index), Pointer Register : BP (Base pointer),
Stack Segment : SS, menyimpan alamat segment dari stack Stack Pointer : SP, menyimpan alamat offset dari stack Base Register : BX
Register status (Flag) berfungsi untuk menyimpan status dari suatu operasi
Register instruksi menyimpan instruksi yang akan dikerjakan oleh CPU (InstructionRegister) ALU (Arithmetic and Logic Unit) adalah mesin penghitung (kalkulator) dari CPU. CU akan menggunakan ALU jika instruksi yang dikerjakan membutuhkan perhitungan aritmetika (contoh: ADD, SUB) atau logika (contoh: AND, OR, XOR). Jika suatu instruksi aritmetika dan logika dieksekusi, maka hasil operasinya dapat mengubah salah satu bit di register status.
Diagram waktu yang menunjukkan siklus baca/ tulis ketika terjadi operasi I/O dan Memori oleh mikroprosesor. Seluruh penjelasan tentang pena-pena pada mikroprosesor 8088 ini akan selalu mengacu pada diagram pewaktuan seperti pada gambar berikut.
Gambar 2-2. Diagram pewaktuan mikroprosesor 8088
Pena pada µP 8088 ada yang tidak dipengaruhi oleh perubahan mode baik mode maksimum ataupun mode minimum dan ada pula pena yang berfungsi hanya pada saat mode maksimum saja.
Pena yang tidak dipengaruhi oleh perubahan mode baik mode maksimum ataupun mode minimum, diantaranya adalah :
a. Bus alamat ( AD0-AD7, A8-A15, dan A16/S3-A19/S6).
Mikroprosesor 8088 mempunyai 20 pin jalur alamat sehingga dapat menjangkau 220 ( 1 MB) lokasi memori. Pena-pena ini hanya berfungsi pada saat T1 (lihat diagram pewaktuan). Pada saat T2 sampai T4 ada sebagian pin yang berfungsi sebagai data dan juga sebagai status. Sedangkan A15-A8 tetap memberikan bit alamat upper-half memory yang ada melalui siklus bus.
b. Bus data ( AD0-AD7).
Mikroprosesor 8088 mempunyai jalur data sebanyak 8 pin dan bisa digunakansecara bi
derectional (dua arah). Pin-pin ini berfungsi sebagai jalur data hanya pada saat
T2-T4. Pada saat T1 berfungsi sebagai jalur alamat. berisi 8 bit terkanan dari alamat memori atau nomor port I/O pada saat itu ALE aktif
c. A19/S6-A16/S3
Bit bus status/alamat dimultipleks untuk memberikan sinyal alamat A19-A16 dan
juga status S6-S3. Bit status S6 selalu berada dalam logika 0, bit S5 mengindikasikan kondisi bit flag IF, dari S4 serta S3 memperlihatkan segmen mana yang diakses selama siklus bus saat ini. Lihat Tabel 2.1 untuk tabel kebenaran dari S4 dan S3, Kedua bit status dapat digunakan untuk mengalamati 4 bank memori 1M byte terpisah dengan melakukan dekode terhadapnya sebagai All dan A20.
d. Kontrol baca (RD).
Sinyal ini aktif rendah. Jika pena ini berlogic 0 berarti mikroprosesor sedang
melaksanakan pembacaan data dari memori atau I/O. Sinyal ini aktif dipertengahan T2 dan kembali tidak aktif ( logika 1) pada saat pertengahan T4.
e. Clock (CLK).
Yaitu masukan sinyal clock yang diberikan dari luar untuk mensinkronkan segala kegiatan pada Miroprosesor. Miroprosesor 8088 dapat bekerja pada frekuensi clock
4,77 MHz atau 8 MHz untuk versi turbo. Sinyal pewaktuan harus memunyai siklus tugas 33% (tinggi untuk sepertiga periode clocking, dan rendah untuk sisanya) supaya
memberikan pewaktuan internal yang sesuai untuk 8086/8088.
f. Kontrol waktu tunggu (READY).
Sinyal READY ini disampel pada sisi naik T2. Jika sinyal READY ini berlogic 0 berarti akan disisipkan TW/Twait antara T3 dan T4. Hal ini terus diulangi sampai sinyal READY diberi logika 1. Sinyal ini biasanya digunakan jika ada hardware lain yang memiliki kecepatan yang lebih lambat dari kecepatan mikroprosesor ketika sedang bekerja dalam keadaan normal.
g. Reset sistem (RESET).
Sinyal ini aktif tinggi. Bila logika 1 diberikan pada pena ini, mikroprosesor akan menghentikan segala kegiatan yang sedang terjadi saat itu. Semua register akan dibuat 0 kecuali register code segment dibuat FFFF0H
h. Interupsi (INTR dan NMI).
INTR dan NMI (Non Maskable Interrupt) adalah permintaan interupsi yang dapat dipanggil secara hardware. Sinyal INTR merupakan sinyal aktif tinggi, sedangkan NMI dapat aktif menggunakan trigger sisi naik dari sinyal clock. INTR tidak akan berfungsi jika interupsi flag dikosongkan (menggunakan instruksi CLI), sedangkan NMI tidak dapat dihalangi dengan instruksi CLI.
i. Kontrol tunggu test (TEST).
Untuk mengaktifkan sinyal TEST, digunakan instruksi WAIT. Jika pin ini berlogic 1 ketika mikroprosesor sedang menjalankan instruksi WAIT dari programnya, CPU akan berada pada keadaan idle mode, artinya mikroprosesor tidak melakukan kegiatan apa-apa sebelum pin ini berlogic 0. Jika pin ini berlogic 0 kembali, maka pelaksanaan instruksi akan dilanjutkan.
j. Status (A16/S3-A19/S6).
Sinyal status digunakan untuk mendeteksi suatu keadaan-keadaan atau operasi-operasi
yang sedang berlangsung, diantaranya pengambilan instruksi, membacamemori, menulis
memori, dan operasi-operasi yang lain. Sinyal ini dikeluarkan pada saat keadaan T2-T4. Definisi dari status S4 dan S3 seperti tabel 2.1 adalah :
Tabel 2.1 Kebenaran S3 dan S4
S4...S4 Yang dijangkau saat terjadi siklus bus 0...0 Extra Segment (ES)
0...1 Stack Segment (SS)
1...0 Code Segment (CS) atau tidak sama sekali 1...1 Data Segment (DS)
k. Catu daya ( VCC dan GND).
Mikroprosesor 8088 membutuhkan Vcc = +5 V yang masih bisa bertoleransi sebesar ± 10% dari +5
V.Sinyal yang berfungsi hanya pada mode minimum ( mode maksimum tidak digunakan
) adalah :
Sinyal ini aktif rendah. Jika sinyal ini berlogika 0, berarti mikroprosesor sedang melaksanakan operasi penulisan data ke unit memori atau I/O. Sinyal ini aktif pada saat T2-T4.
b. Sinyal kontrol memori dan I/O ( IO/M ).
Jika pena ini berlogic 0, berarti saat ini pada siklus bus sedang berlangsung operasi input/output. Jika pena ini berlogic 1, berarti saat ini pada siklus bus sedang berlangsung operasi memori.
c. Address Latch Enable (ALE).
Sinyal ini digunakan sebagai penahan alamat yang baru masuk dalam suatu proses siklus mesin. Sinyal ini dapat digunakan untuk dimultipleks dengan alamat, data, dan status. Sinyal ini mengeluarkan logic 1 pada saat clock T1.
d. Pengiriman dan penerimaan data ( DT/R ).
Jika sinyal ini berlogic 1 maka arah data adalah dari mikroprosesor menuju keluar (memori/ input-output). Jika sinyal ini berlogic 0 maka arah data dari luar menuju
mikroprosesor
e. Data Enable ( DEN ).
Sinyal ini biasanya digunakan untuk meng"on"kan buffer (latch) yang dihubungkan kebus data.
f. Interrupt Acknowledge ( INTA ).
Sinyal ini secara khusus digunakan sebagai tanggapan terhadap suatu instruksi INTR.
g. Hold Request ( HOLD)
Bila logika 1 diberikan pada pena HOLD, µP akan menghentikan kegiatan dan melepas bus yang berhubungan dengan unit memori dan I/O, sehingga hal ini memberikan kesempatan bagi proses lain untuk mengambil alih sistem.
Sinyal ini digunakan sebagai pengakuan dari µP bahwa sinyal HOLD telah diterima dan sistem dapat diambil alih oleh prosesor lain.
Tabel 2.2 Status siklus bus (8088) menggunakan
IO/ DT/ Fungsi 0 0 0 Acknowledge intrupsi 0 0 1 Membaca memori 0 1 0 Menulis memori 0 1 1 Halt 1 0 0 Mengambil opcode 1 0 1 Membaca I/O 1 1 0 Menulis I/O 1 1 1 Pasif
Sinyal yang berfungsi hanya pada saat mode maksimum adalah : a. Status siklus bus ( S0, S1, S2 ).
Sinyal ini merupakan keluaran yang akan diberikan oleh IC lain yang berfungsi sebagai bus kontroller .
b. Kunci ( LOCK ).
Sinyal ini akan mengeluarkan logika 0 selama pelaksanaan instruksi LOCK sehingga akan mencegah prosedur lain menjangkau sistem.
c. Status antrian ( QS0, QS1).
Sinyal ini akan memberitahu informasi apa yang telah dipindahkan dan informasi apa yang ada dalam antrian sewaktu terjadi siklus clock sebelumnya.
d. Local Bus Control ( RQ/ GT1 dan RQ/ GT0 ).
Sinyal ini menggantikan fungsi HOLD dan HLDA pada mode minimum.
Pin modus minimum/maksimum memilih operasi modus minimum atau maksimum untuk mikroprosesor. Jika modus minimum yang dipilih, pin MN/MX harus dikoneksikan langsung ke +5,0 V.
Tabel 2.3 Fungsi bus kontrol yang dihasilkan oleh kontroler bus 8288 menggunakan , dan .
Fungsi 0 0 0 Acknowledge intrupsi 0 0 1 Membaca I/O 0 1 0 Menulis I/O 0 1 1 Halt 1 0 0 Mengambil opcode 1 0 1 Membaca memori 1 1 0 Menulis memori 1 1 1 Pasif
Tabel 2.4 Bit- bit status antrian
QS1 QS0 Fungsi
0 0 Antrian kosong
0 1 Byte pertama opcode
1 0 Antrian kosong
1 1 Byte berikutnya opcode
2.3 Arsitektur Internal Mikroprosesor Intel 8088
Diagram blok arsitektur 8088 dapat dilihat pada Gambar 2.3. Mikroprosesor 8088 terbagi atas 2 unit, yaitu unit antarmuka bus (bus interface unit, BIU) dan unit pengeksekusi (execution unit, EU).
Unit Antarmuka Bus (BIU)
Unit ini merupakan bagian yang berhubungan langsung
dengan “pihak luar”.BIU berfungsi untuk mengirim alamat ke bus alamat, mengambil instruksi (fetch ) dari memori, membaca data dari port dan memori, serta menulis data ke port dan memori (menangani transfer data antara bus dan unit eksekusi). BIU tersusun atas:
Instruction Stream Byte Queue (ISBQ)
BIU mem fetch instruksi dari memori
sebanyak-banyaknya 4 buah instruksi ke depan. Instruksi yang sudah diambil ini ditaruh di
ISBQ yang berupa 4 buah register first-in-first-out. BIU dapat melakukan fetching selagi EU menerjemahkan dan mengeksekusi instruksi yang tidak membutuhkan penggunaan bus (misalnya operasi matematis menggunakan register internal). Ketika EU selesai
melaksanakan suatu instruksi, maka dia tinggal mengambil perintah berikutnya di ISBQ, tanpa harus mengirim alamat ke memori untuk mengambil instruksi berikutnya, Pada mikroprosesor yang lebih baru, ukuran ISBQ tidak hanya 4 byte tetapi mencapai 512 byte. BIU berisi 4 buah register segmen 16 bit, yaitu: code segment (CS), data segment (DS), extra segment (ES), dan stack segment (SS). . Dari BIU ini, dihasilkan bus data sebanyak 8 bit. Untuk menjalankan fungsinya, BIU memiliki register segment, register komunikasi internal, pointer instruksi, antrian kode objek instruksi, bus alamat, dan bus kontrol logika. EU berfungsi untuk menterjemahkan dan menjalankan instruksi.
Gambar 2.3 Arsitektur internal mikroprosesor 8088
Instruction Pointer (IP) , adalah register berisi informasi offset yang
bersama-samaCS menunjuk posisi dalam memori di mana instruksi berikutnya berada.
Unit Eksekusi (EU)
Unit ini memberitahu BIU di mana mengambil instruksi dan data, menerjemahkan kode instruksi, dan menjalankannya. EU tersusun atas:
Dekoder instruksi yang mengambil
urut-urutan instruksi dari ISBQ kemudianmenerjemahkannya ke urutan aksi yang harus dikerjakan
oleh EU.
Sistem kontrol , merupakan rangkaian yang mengendalikan kerja mikroprosesorberdasarkan
Arithmetic Logic Unit (ALU) , yaitu bagian dari mikroprosesor yang dapatmelakukan op erasi matematis (misalnya operasi penjumlahan, pengurangan, perkalian, dan pembagian) dan logika (misalnya operasi AND, OR, XOR, geser, dan rotasi) 16 bit.
Mikroprosesor 8088 mempunyai 4 kelompok register internal yaitu register penunjuk instruksi (indeks pointer register), register data (general purpose register), register segment (segment register), serta flag register.
Register Penunjuk Instruksi (Indeks Pointer Register).
Register Penunjuk instruksi merupakan register 16 bit yang berfungsi untuk
menunjukkan lokasi instruksi berikutnya yang akan dijalankan. Register IP ini berpasangan dengan CS (code segment) dimana penulisannya adalah sebagai berikut [CS : IP]. Jadi lokasi alamat yang ditunjukkan tergantung pada code segment yang terdapat pada segment register.
Register Data (General Purpose Register).
Register data pada µP 8088 dibagi menjadi 4 kelompok register yang semuanya berfungsi untuk penyimpanan data secara sementara. Keempat kelompok register ini
adalah register AX, BX, CX. dan DX. Register AX, BX, CX, dan DX merupakan register data 16 bit. Register-register 16 bit dari kelompok ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing-masing bagian terdiri dari 8 bit, yaitu register data AH; AL (untuk AX), BH; BL (untuk BX),
CH; CL (untuk CX), dan DH; DL (untuk
DX). Akhiran H menunjukkan High dan akhiran L menunjukkan Low. Selain berfungsi sebagai penyimpan data serba guna yang dapat digunakan secara bebas oleh pemogram, register-register tersebut memiliki juga fungsi-fungsi lainnya secara khusus, yaitu : Register AX biasanya digunakan pada operasi aritmatika (perkalian dan pembagian), dan operasi I/O 16 bit. Register BX biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segment. Register CX biasanya digunakan untuk menunjukkan banyaknya looping yang akan terjadi. Register DX biasanya digunakan untuk menampung sisa hasil pembagian 16 bit serta pada operasi I/O secara tidak langsung.
Register Penunjuk dan Register Indeks (Indeks and Pointer Register).
Mikroprosesor 8088 mempunyai dua buah register penunjuk (register SP dan BP) serta dua buah register indeks ( register SI dan DI). Data yang terdapat pada SP ( Stack
Pointer) memungkinkan pemogram untuk menjangkau lokasi memori dari stack segment. Stack pointer yang berpasangan dengan stack segment (SS : SP) digunakan untuk
menunjukkan alamat dari stack RAM (Random Access Memory). Stack RAM ini biasanya digunakan untuk menyimpan informasi yang berhubungan dengan operasi stack, seperti isi PC, alamat kembali (return address) pada instruksi CALL, dan akumulator. Penyimpanan informasi pada stack RAM menggunakan sistem LIFO (Last In First Out), artinya data yan g terakhir dimasukkan (PUSH) merupakan data pertama yang akan diambil (POP). BP (Base Pointer) yang berpasangan dengan register stack segment (SS) digunakan untuk mencatat suatu alamat dimemori tempat data. Source Indeks (SI) dan Destination Indeks (DI) biasanya digunakan pada operasi string dengan
mengakses secara langsung pada alamatdimemori yang ditunjukkan oleh kedua register ini .
Register Segment (Segment Register).
Mikroprosesor 8088 menghasilkan 20 bit alamat sehingga dapat menjangkau 1 MB lokasi memori
( 220 = 1048576 Byte atau disingkat 1 MB). Namun pada µP 8088 registeryang tersedia
hanya 16 bit ( 216 = 64 KB), sehingga untuk menjangkau alamat 1 MB,memori pada µP
8088 dibagi menjadi ruas-ruas 64 KB, sehingga setiap saat hanya ada 4
segment (ruas) yang dapat aktif. Segment-segment register ini adalah: Code Segment(CS),
Data Segment (DS), Stack Segment (SS), dan Extra Segment (ES). Code segment
digunakan untuk menyimpan program. Data segment digunakan untuk menyimpan dataprog
ram. Extra segment digunakan untuk menyimpan segment data tambahan. Stack segment digunakan nuntuk menyimpan alamat kembalinya interupsi dan subrutin. Keempat
register diatas menunjuk kelokasi masing-masing segment. Karena register segment hanya terdiri dari 16 bit, sedangkan memori yang dapat dijangkau sebanyak 20 bit, maka unit BIU ( Bus Interface Unit) akan menambah 4 bit lagi pada LSB. Sebagai contoh, jika register ES=2721H, maka register akan menunjuk kelokasi 27210H. Setiap segment hanya dapat menampung 64 KB lokasi memori, sehingga jika CS=A000H, maka lokasi memori untuk Code Segment dimulai dari A0000H sampai AFFFFH (64 KB).
Setiap kali catu daya dihidupkan, mikroprosesor berada dalam keadaan sembarang dimana semua register berisi data yang tidak dapat diramalkan. Hal ini memungkinkan terjadinya pembacaan maupun penulisan lokasi memori yang acak pula. Karena itu semua register µP harus dibuat nol kecuali Code Segment register dibuat FFFF0H, sehingga µP
akan menjemput instruksi yang berada pada alamat fisik FFFF0H. Jadi dengan
memberikan sinyal RESET ketika pertama kali dihidupkan, µP akan selalu menjemput instruksi pada lokasi FFFF0H. Setelah menempatkan suatu
instruksi pada lokasi tersebut,maka instruksi itu merupakan instruksi yang pertama kali dija
lankan ketika µP dinyalakan atau ketika diberi sinyal RESET
Register flag (bendera)
Register flag Merupakan register flip-flop 16 bit yang menunjukkan kondisi yang dihasilkan setelah eksekusi suatu operasi oleh EU. Selain itu flag mengatur beberapa operasi tertentu. Terdapat 9 flag masing-masing 1 bit dalam register flag 8088, seperti terlihat pada gambar 2-4.
Sebanyak 6 buah flag merupakan flag kondisi yang menunjukkan keadaan setelah eksekusi suatu instruksi, yaitu: Carry Flag (CF), Parity Flag (PF),
Auxiliary Carry Flag (AF),
Zero Flag (ZF), Sign Flag (SF), dan Overflow Flag (OF). Sedangkan, 3 buah flag sisanya berupa flag kontrol yang mengendalikan
operasi tertentu, yaitu: Single Step Trap Flag (TF),Interrupt Flag (IF), dan String Direction
Flag (DF).
Fungsi masing-masing register tersebut adalah:
CF (Carry Flag)
jika berlogic 1 berarti terdapat carry atau borrow pada MSB (Most Significant Bit) yang terjadi selama operasi
aritmatika. Jika berlogic 0 berarti tidak terdapat carry atau borrow. PF (Parity
Flag)
jika berlogic 1 berarti 8 bit terendah menghasilkan
paritas genap dan jika menghasilkan paritas ganjil PF akan berlogic 0
AF (Auxillary Carry Flag)
jika berlogic 1 berarti terdapat carry pada bit ke 4 pada register AL dan bila tidak akan berlogic 0. Register ini biasanya digunakan pada operasi BCD, seperti perintah AAA.
ZF(Zero Flag) ZF (Zero Flag), jika berlogic 1 maka operasi aritmatika
menghasikan sisa 0, jika berlogic 1 maka tidak menghasilkan 0
SF (Sign Flag) Jika digunakan bilangan bertanda bit ini akan bernilai 1.
Sedangkan bila SF berlogic 0 berarti bilangan diperlakukan sebagai bilangan tidak bertanda.
Bilangan bertanda dibagi menjadi bilangan positif (+)dan bilangan negatif (-). Pada bilangan bertanda, bit terakhir (bit ke-16) diperlakukan
sebagai tanda (+) atau tanda(-). Jika bit terakhir tersebut bernilai 1 berarti bilangan tersebut negatif dan jika bit terakhir bernilai 0 berarti bilangan tersebut positif
) Keadaan ini digunakan pada program Debug. IF (Interrupt
Flag)
jika berlogic 1 berarti Maskable Interrupt Request dapat
dilakukan.Jika berlogic 0 maka permintaan interupsi tidak dapat dipenuhi oleh CPU
OF (Over Flow Flag)
jika terjadi Over Flow pada operasi aritmatika, bit ini
akan bernilai 1. Dan jika tidak terjadi Over Flow pada operasi aritmatika, bit ini bernilai 0.
DF (Direction Flag)
jika berlogic 1 berarti pada instruksi string nilai register
akan diturunkan secara otomatis dan jika berlogic 0 maka akan dinaikkan secara otomatis
X Tidak digunakan
Pengalamatan Memori Dengan Segment:Offset
Mikroprosesor 8088 secara fisik memiliki 16 bit saluran alamat atau 64 KByte, mampu mengakses 8 bit data pada satu kali akses time. Tetapi dapat dimungkinkan pengalamatan menggunakan sistem 20 bit. sehingga dapat dialamatkan byte
(=1 MB) memori, dengan kata lain metode pengalamatan 20 bit yang dimasukkan ke dalam format
16 bit. Pada metode pengalamatan mode riil membagi ruang memori ke dalam segmen-segmen di mana besar 1 segmen-segmen adalah 64 KB (= 216 byte). Jadi pada segmen-segmen
0000h terdapat 64 KB data, demikian pula dengan segmen 0001h dan seterusnya. Caranya adalah dengan membagi-bagi setiap segmen menjadi bagian-bagian yang disebut offset. Dalam satu segmen terdapat 216 offset yang diberi nomor dari 0000h sampai FFFFh. Nomor offset selalu diukur relatif dari awal suatu segmen. Segmen 0000h berawal dari lokasi memori 0 hingga 65535 ( 64 KB ). Segmen 0001h berawal dari lokasi memori 16 (0010h) hingga 65551 (65535 +16). Segmen 0002h berawal dari lokasi 32 hingga 65567. Demikian seterusnya.
Alamat yang menggunakan sistem segmen:offset ini disebut sebagai alamat relatif karena sifat offset yang relatif terhadap segmen. Sedangkan alamat memori yang
sebenarnya disebut alamat absolut. cara pengkonversian alamat relatif ke absolut dapat dilakukan dengan menggeser nilai segmen 4 bit ke kiri dan kemudian dijumlahkan dengan nilai offset. Atau yang lebih sederhana adalah dengan mengalikan nilai segmen dengan 24
(=10h) dan kemudian dijumlahkan dengan nilai offset. selisih segmen yang satu denganyan g berikutnya sebesar 16 (=10h). Alamat relatif : 1357h:2468h 13570 2468 + Alamat absolut : 159D8h
Alamat Relatif Segment Offeset Alamat Absolut
1357:2468 1000:0250 1357 1000 2468 0250 159D8 10250
Setiap register segment mempunyai ketentuan pasangan untuk alamat offset, seperti
Segment Offset Kegunaan
CS DS SS ES IP BX, DI, SI, 8/16 Bit SP, BP DI
Alamat intruksi yang Dieksekusi
Alamat data Alamat Stack Alamat String