Anda di halaman 1dari 42

Arsitektur Microprocessor 8088

Di awali dari definisi Mikroprosesor itu sendiri, ialah sebuah chip (IC) yang bekerja dengan
program. Fungsinya adalah sebagai pengontrol atau pengolah utama dalam suatu rangkaian elektronik.
Mikroprosesor biasa disebut juga dengan CPU (Central Processing Unit). Sekilas tentang sejarahnya yaitu
pada tahun 1978 Intel mengeluarkan mikroprosesor 16-bit yaitu 8086, setahun kemudian
mengeluarkan 8088 dengan kecepatan eksekusi dan memori lebih besar dari 8085, serta mulai
digunakannya cache memori (sistem antrian yang mengatur pemberian instruksi sebelum
menjalankannya.

Mikroprosesor Intel 8088 termasuk keluarga mikroprosesor 8 bit dan 16 bit. Mikroprosesor 8088
mempunyai 8 bit jalur data dan 20 bit jalur alamat. Jalur data memiliki pin yang sama dengan jalur
alamat, artinya pada saat tertentu digunakan sebagai jalur data dan pada saat yang lain digunakan
sebagai jalur alamat.

Setiap satu pin memiliki dua fungsi, yaitu sebagai jalur data dan jalur alamat maka digunakanlah
sistem time multiplexing, yaitu penggunaan jalur yang sama untuk fungsi dan waktu yang berbeda,
sehingga tidak bisa data dan alamat dikirim pada saat yang bersamaan.

Mikroprosesor 8088 mampu mengalamati memori sampai 1 MB. Memori ini digunakan untuk
menyimpan kode biner dari instruksi yang akan dijalankan oleh μP, selain itu memori juga digunakan
untuk menyimpan data secara sementara.

Set Instruksi Pada Microprocessor 8088

1. Transfer Data

Set instruksi 8088 mencakup 14 transfer data yang menggerakkan byte atau kata data antara
memori dan register selain juga antara akumulator dan port I/O.

a. General Purpose (Umum) : MOV, PUSH, POP, XCHG, SXLAT

b. Input/Output : In, Out

c. Address Transfer (Pemindahan Alamat) : LEA, KDS, KES

d. Flag Transfer (Pemindahan Flag) : LAHF, SAHF, PUSHF, POPF

2. Arithmetic Instructions (Instruksi Perhitungan)

8088 mampu melakukan penambahan, pengurangan, pengurangan dan pembagian data selain
juga bytes dan kata. Sistem ini menambah dan mengurangi dengan menggunakan bytes atau kata yang
bertanda atau tak bertanda dan data BCD atau ASCII.

a. Addition (Penjumlahan) : ADD, ADC, AAA, DAA, INC

b. Substraction (Pengurangan) : SUB, SBB, AAS, DAS, DES, NEG, CMP


c. Multiplication (Perkalian) : MUL, IMUL, AAM

d. Division (Pembagian) : DIV, IDIV, AAD

e. Sign Extension : CBW, CWD

3. Manipulasi Bit

Instruksi ini mencakup operasi logika, shift dan rotasi.

a. Logical (Logika) : AND, OR, XOR, NOT, TEST

b. Shift (Geser) : SAL/SHL, SAR, SHR

c. Rotate (Gulung) : ROL, ROR, RCL, RCR

4. Instruksi String

Instruksi string digunakan untuk memanipulasi string data dalam memori. Setiap string
tersusun baik dari bytes maupun kata dan hingga mencapai 64 K bytes panjang.nya

a. Direction : CLD, STD

b. Repeat Prefixes : REP, REPE/REPZ, REPNE/REPNZ,

c. Move : MOVSB, MOVSW

d. Compare : CMPS, CMPSB, CMPSW

e. Scan : CSAS, SCASB, SCASW

d. Load and Store : LODS, LODSB, LODSW, STOS, STOSB, STOSW

5. Transfer Program

Instruksi transfer program mencakup jump, call, dan return, instruksi yang sudah kita kenal
dalam 8085.

a. Unconditional transfer (Pemindahan) : CAL, RET, JMP

b. Conditional transfer (Pemindahan Bersyarat) : JA/JNBE, JAE/JNB, JB/JNAE/JC, JBE/JNA, JCXZ,


JE/JZ, JG/JNLE, JGF/JNL, JL/JNGE, JLE/JNG, JNC, JNE/JNZ, JNO, JNP/JPO, JNS, JO, JP/JPE, JS

c. Loop/Jump : LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ

6. Kontrol Prosesor

Instruksi kontrol prosesor memungkinkan dan tidak memungkinkan interupsi, memodifikasi bit
flag dan mensinkronisasi kejadian eksternal.

a. Flag Operations : CLC, STC, CMC, CLD, STD, CLI, STI,

b. External Synchronization

7. Interrupt : INT, INTO, IRET


SEKILAS INTEL 8088

Intel 8088 adalah prosesor mikro buatan Intel berbasis pada 8086, dengan 16-bit register dan
menggunakan 8-bit external data bus. intel 8088 merupakan prosesor yang digunakan pada IBM PC.

8088 ditargetkan pada sistem yang ekonomis, diikuti oleh pengunaan desain 8-bit. Jalur bus yang lebar
dalam circuit boards masih sangatlah mahal ketika ini di luncurkan. Queue yang ungul dari 8088 adalah 4
bytes, sebagai penggunaan dalam 8086 6 bytes. 8088 termasuk keturunan dari 80188, 80288, 80186,
80286, 80386, 80486, dan 80388, microcontroller seperti yang masih digunakan sekarang. Clone yang
populer dengan menggunakan 8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock
4.77 MHZ atau 7.16 MHZ.

Spesifikasi 8088

Mikroprosesor Intel 8088 hampir serupa dengan prosesor Intel 8086, kecuali pada data eksternal bus.
Lebar data eksternal bus 8088 dikurangi menjadi 8 bit, dan instruksi ukuran queue dan prefetching
algoritmanya diubah. Intel 8088 menggunakan dua urutan bus siklus untuk menulis atau membaca 16
data bit sebagai ganti satu siklus untuk 8086. Ini menjadikan prosesor bergerak lebih lambat, tetapi ada
nilai plus pada perangkat keras yang menjadikan CPU 8088 kompatibel dengan peripheral 8080/8085.

Pin SSO pada 8088 menggantikan BHE/S7 pada 8086, dan pin IO/M pada 8088, bukan M/IO
seperti pada 8086. 8088 membutuhkan catu daya +5,0 V dengan toleransi + 10%. Mikroprosesor 8088
akan kompatibel TTL (Transistor-Transistor Logic) jika kekebalan terhadap noise disesuaikan menjadi 350
mV dari nilai 400 mV yang biasa. Mikroprosesor 8088 dapat menjalankan satu 74XX, lima 74LSXX, satu
74SXX, sepuluh 74ALSXX, dan sepuluh 74HCXX beban satuan. Jika mikroprosesor 8088 direset,
mikroprosesor ini mulai mengeksekusi perangkat lunak pada lokasi meori FFFF0H (FFF:0000) dengan pin
interrupt request di-disable. Karena bus-bus 8088 dimultipleks dan kebanyakan memori dan peralatan
I/O tidak, system harus didemultipleks sebelum pengantarmukaan dengan memori atau I/O.
Demultipleks dilakukan oleh latch delapan bit yang pulsa clocknya didapat dari sinyal ALE. Operasi
minimum 8088 sama dengan mikroprosesor Intel 8085A, sementara mode maksimum adalah baru dan
khusus dirancang untuk operasi koprosesor aritmatika 8087.

REGISTER
Sebuah register adalah sebuah tempat penampungan sementara untuk data-data yng akan diolah oleh
prosesor, dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosesor itu sendiri. Dengan adanya
tempat-tempat penampungan data sementara ini, proses pengolahan akan bisa dilakukan

secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-
lokasi memori. Register-register tersebut sebagai register internal dan terdiri dari empat belas register
dan keseluruhannya dapat dibagi dalam beberapa jenis, yaitu : Register Segment, Register Data, Register
pointer, Register index, Register index, dan General Purpose Register.

Semua general register mikroprosesor 8088 dapat digunakan untuk perhitungan dan operasi logika.

Pada 8088, register data diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register),
sehubungan dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk
membantu proses-proses pengolahan data didalam internal mikroprosesor.

Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode 'langkah tunggal' (single-step),
yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan

dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi seorang programmer, mode ini
akan sangat berguna dalam pekerjaan 'debugging'.

Organisasi Ruang Memori Dan Register

Unsur terkecil memori adalah 'sel memori' (memory-cell), yaitu suatu elemen penyimpanan data yang
berkapasitas sebesar 1 bit. Dengan menggabungkan sejumlah sel memori, akan bisa membentuk suatu
ruang penyimpanan data dengan berbagai ukuran, misalnya 1 byte, 1 word, 1 Kilobyte, 1 Megabyte, 1
Gigabyte, 1 Terabyte, dsb.

Organisasi memori dapat dibandingkan dengan sistem 'locker' (susunan laci yang mempunyai kode
nomor setiap lacinya sehingga memudahkan orang mengenal lacinya masing-masing sebelum
mengambil atau memasukkan barang titipannya).

Susunan chip prosesor Intel 8088.

• Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)

• Bus Data (AD0 - AD7)

• Bus Alamat (AD0 - AD7 dan A8 - A19)

• Bus Kendali (NMI, INTR, CLK, Reset).


Dalam mikroprosesor 8088 secara fisik, bus alamat terdiri dari 20 bit (A0-A19), sementara register-
register internal terbentuk dari 16 bit data. Oleh sebab itu, untuk menyesuaikan perbedaan jumlah bit
antara bus alamat 8088 dengan register internal, sistem pengalamatan memori dilaksanakan

dengan format segment:offset. Format yang membutuhkan 32 bit ini dibentuk dengan jalan
menggabungkan data dari 2 buah register sekaligus. Register pertama adalah satu satu dari 4 register
segment, sedangkan register lainnya diambil dari salah sebuah register pointer atau register indeks.

Kenyataannya, segment-segment yang didefinisikan pada ruang memori itu boleh dibuat saling
berdampingan, terpisah atau tumpang tindih sekalipun. Prosesor memiliki bus alamat sebanyak 20 bit,
yang berarti ia mampu mengalamati hingga 1.048.575 lokasi memori. Secara heksadesimal, jumlah ini
dinyatakan sebagai angka 00000 sampai dengan FFFFF. Ini adalah alamat-alamat fisik (physical
addresses) dari mikroprosesor. Untuk 8088 dan 8086 yang bus alamatnya terdiri dari 20 bit, otomatis
penulisan alamat fisiknya terdiri dari 5 digit heksadesimal. Sistem segmentasi pada IBM PC dilaksanakan
agak unik. 1 segment adalah bagian dari ruang memori yang besarnya 65536 byte atau 64 Kb. Namun,
segment-segment itu tidaklah diletakkan secara berdampingan sambung menyambung satu sama lain,
akan tetapi saling tumpang tindih sehingga jarak antara titik awal suatu segment hanya terpaut 16 byte
terhadap segment lainnya.

Peta Memori (Memory Map)

Kapasitas memori untuk IBM PC/XT yang berbasis prosesor Intel 8088/8086 adalah 1.048.576 byte atau
lebih mudah disebut 1 (satu) Megabyte. Nilai sebesar 1 MB inilah yang menjadi dasar sistem pemetaan
memori dalam keluarga IBM PC Kompatibel, sehingga dalam produk-produk yang lebih mutakhir pun,
peta memori tersebut tetap dipertahankan. Hal ini berhubungan dengan konsistensi yang harus dijaga
pada Disk Operating System, yang dalam keadaan bagaimanapun, harus tetap bisa dijalankan mulai dari
produk yang paling awal seperti PC/XT, sampai kepada yang terbaru seperti AT 486 kompatibel.

ARSITEKTUR

Arsitektur dari 8088 tetap sama degan 8086 yakni: 16-bit registers, 16-bit internal data bus dan 20-bit
address bus, yang bisa menjadikan prosesor mencapai memori 1 MB. 8088 memiliki pembagian memori
yang sama dengan 8086: prosesor bisa mencapai 64 KB dari memori secara langsung, dan untuk
mencapai lebih dari 64 KB, salah satu dari bagian khusus register harus di update.

Program, data dan stack memori menduduki ruang memori yang sama. Total kapasitas memory yang
bisa dicapai adalah 1MB KB. Sebagaimana kebanyakan instruksi prosesor yang menggunakan 16-bit
pointers, prosesor dapat mengolah secara efektif jika hanya memorinya 64 KB. Untuk mengakses
memori diluar 64 KB, CPU menggunakan bagian register khusus untuk menspesifikasi di mana kode,
stack dan 64 KB segmen data diposisikan di dalam memori 1 MB.
16-bit pointers dan data disimpan sebagai:

address: low-order byte

address+1: high-order byte

32-bit addresses disimpan di "segment:offset" dengan format:

address: low-order byte of segment

address+1: high-order byte of segment

address+2: low-order byte of offset

address+3: high-order byte of offset

Physical memory address ditunjukkan oleh pasangan segment:offset dihitung dengan:

address = (<segment> * 16) + <offset>

Program Memori- program dapat ditempatkan di manapun di dalam memori. perintah jump and call
dapat digunakan untuk menyingkat lompatan di dalam segmen kode 64 KB, seperti halnya untuk
lompatan jauh di manapun di dalam memori 1 MB. Seluruh perintah lompatan yang bersyarat dapat
digunakan untuk melompat sekitar + 127 - - 127 bytes dari instruksi yang ada.

Memori data - prosesor dapat mengakses data di tiap orang lebih dari 4 segmen yang tersedia, yang
membatasi ukuran dari memori yang dapat diakses sampai 256 KB ( jika seluruh empat segmen
menunjuk pada 64 KB blok berbeda). Mengakses data dari Data, Code, segmen Extra atau Stack biasanya
dapat dilaksanakan dengan awalan perintah DS:, CS:, SS: atau ES: ( beberapa register dan instruksi
dengan tak hadir boleh gunakan segmen SS atau ES sebagai ganti segmen DS).

Set Instruksi

Set instruksi 8088 terdiri dari perintah-perintah berikut:

* Instruksi perpindahan data.

* Aritmatika - penjumlahan, pengurangan, penaikan, penurunan, mengkonversi byte/word dan


pembandingan.

* Logika - DAN, OR, eksklusif OR, shift/rotate dan test.


* Manipulasi string - load, store, move, compare dan scan untuk byte/word.

* Kontrol transfer - conditional, unconditional, panggilan subroutine dan kembali dari subroutine.

* Perintah Input/Output.

* Lain-lain - setting/clearing flag bits, stack operations, software interrupts, dan lain-lain.

KESIMPULAN

8088 adalah desain hybrid 8/16-bit: 16-bit internal, dengan 8-bit I/O. ini berarti bahwa Sistem designer
dapapt menggunakan chip pendukung 8-bit yang murah dan tersedia. Sehingga menurunkan harga
sebuah sistem komputer. Kemampuannya tidak begitu hebat, mesin-mesin Z-80 dan 8085 kadang-
kadang lebih unggul, tetapi 8088 terjual cukup banyak. Apalagi setelah divisi IBM memilihnya sebagai
prosesor utama IBM PC. 8088 menjadi sejarah dan terjual jutaan unit, rekor kedua setelah Z-80.

Sayangnya Intel membuat beberapa keputusan yang buruk dalam desain. Pertama, 8088 menggunakan
arsitektur bersegmen. Kedua untuk alasan yang tidak efisien, Intel memutuskan untuk membatasi akses
base-memory dalam suatu cara menjadi hanya 640K. Meskipun pada masa itu keputusan ini adalah
untuk jangka pendek semua user prosesor x86 hingga saat ini merasa kesulitan dengan pembatasan
640K tersebut. Ini dapat ditemukan jika user menerima pesan kesalahan 'out of memory'. DOS,
Windows, dan bahkan Windows 95 memiliki permasalahan base-memory yang disebabkan oleh batas
640K. Hanya sistem operasi murni 32-bit seperti OS/2 dan Windows NT yang tidak memiliki masalah ini.
Saat itu user harus menunggu 7 tahun sebelum kemunculan 386.

instruksi set dari mikroprosesor mendefinisikan operasi dasar yang dapat membuat programer
menjalan kan perangkat. Instruksi set dari 8088/8086 mikroprosesor memiliki 117 petunjuk
dasar. Beragam operan dan mode pengalamatan diizinkan untuk digunakan dengan pada instruksi
ini dan dieksekusi pada tingkat kode mesin.

Instruksi set dapat dibagi menjadi beberapa kelompok fungsional terkait instruksi:
1. Instruksi data transfer
2. Instruksi Input / output
3. Instruksi Aritmatika.
4. Instruksi Logika.
5. Instruksi perbandingan
6. Instruksi Shift.
7. Instruksi Rotate.
8. Instruksi Flag kontrol.
9. Instruksi Jump.
10. Instruksi penanganan Subroutine.
11. Stack operasi Petunjuk.
12. Simpul penanganan Petunjuk.
13. Instruksi penanganan String.
Intruksi set berupa jenis instruksi teknik pengalamatan,system,bust,CPU dan I/O set instruksi dan
format pengalamatan.

DATA TRANSFER

Digunakan untuk pergerakan data dari satu lokasi ke lokasi lain seperti memori untuk microprosesor,
mikroprosesor ke port atau memori sebaliknya. Data transfer berfungsi menyediakan kemampuan
untuk memindahkan data baik antara register internal atau antara register eksternal dan lokasi
penyimpanan di memori fungsi transfer data.

Macam -macam type dari Data Transfer :

MOV Instruction ( Memindahkan byte atau kata )

XCGH Instruction ( Exchange byte or word )

XLAT Instruction ( Translate byte )

LEA Instruction ( Load Effective Address )

LDS Instruction ( Load Data Segment )

LES Instruction ( Load Extra Segment )

MOV Instruction

Mov adalah instrusksi yang digunakan untuk mentransfer byte atau kata dari sumber operan ke
operan tujuan.

Catatan : MOV Instruction tidak bisa mentransfer data langsung antara memori eksternal

Contoh Penulisan : MOV D, S

Operasi : (S) à (D)

STORE : Memindahkan word dari prosesor ke memori.

LOAD : Memindahkan word dari memori ke prosesor.

EXCHANGE : Menukar isi sumber ke tujuan.

CLEAR /RESET : Memindahkan word 0 ke tujuan.

SET : Memindahkan word 1 ke tujuan.


PUSH : Memindahkan word dari sumber ke bagian paling atas stack.

POP : Memanggil word dari bagian palinng atas sumber.

XCHG Instruction

XCHG adalah instuksi yang digunakan untuk menukar data antara dua register tujuan umum atau
antara tujuan umum register dan tempat penyimpanan memori.

Contoh Penulisan : XCHG OPERAND1, OPERAND2

Operasi : OPERAND1à OPERAND2

XLAT Instruction

XLAT ( Penerjemah ) adalah instruksi yang digunakan untuk menyederhanakan pelaksanaan dari
operasi pencarian tabel. Eksekusi dari XLAT menggantikan isi dari register AL dengan isi yang
diakses oleh tempat pencarian tabel.

Contoh Penulisan : XLAT

Operasi : ((DS) * 10H + (BX) + (AL)) à (AL)

LEA, LDS, LES Instruction

Intruksi yang menyediakan kemampuan uuntuk manipulasi alamat memori dengan memuat
setidaknya 16-bit yang mengimbangi alamat dalam tujuan umum register atau sebuah register.

Contoh Penulisan : LEA reg16 , mem

Mikroprosesor 8088

Mikroprosesor 8088 memiliki karakteristik sebagai berikut:

8-bit Data Bus Interface (D0 sampai D7), 8 jalur Data Bus eksternal.

16-Bit Internal Architecture, internal Data Bus 16 jalur.

Direct Addressing memory sampai 1 Mbyte, Address Bus A0 sampai A9.

Memiliki Register masing-masing 16 bit.


Register merupakan tempat penyimpanan data sementara. Berdasarkan fungsinya register dibedakan
menjadi:

Register Data

Register Data, terdiri dari 16 bit data yang dapat diakses dalam format 2X8 bit. Berikut ini sejumlah
register data:

AX (Accumulator), terdiri dari AH dan AL.

BX (Base), terdiri dari BH dan BL.

CX (Counter), terdiri dari CH dan CL.

DX (Data), terdiri dari DH dan DL.

Register Alamat

Register Alamat memiliki lebar 16 bit, diantaranya:

CS (Code Segment), menyimpan alamat segment dari program.

DS (Data Segment), menyimpan alamat segment dari data.

SS (Stack Segment), menyimpan alamat segment dari stack.

IP (Instruction Pointer), menyimpan alamat offset program.

Index Register, terdiri dari Base Index (BI), Source Index (SI), dan Destination Index (DI).

Pointer Register yakni Base Pointer (BP).

SP( Stack Pointer), menyimpan alamat offset dari stack.

BX (Base), terdiri dari BH dan BL.

Register Status

Register Status (Flag), berfungsi menyimpan status dari suatu operasi.

Register Instruksi

Register Instruksi berfungsi menyimpan instruksi yang akan dikerjakan oleh CPU.

Mikroprosesor 8088 memiliki dua mode kerja yakni:


Mode Maksimum.

Mode Minimum.

ARSITEKTUR MIKROPROSESOR 8088

Arsitektur pada uP 8086,8088, dan beberapa versi diatasnya hingga pentium pro sangat mirip.
Pemahaman tentang arsitektur ini penting untuk mengetahui cara programming processor. Dalam
pemprograman uP tidak terpisahkan dari register, yakni sebuah memori sementara milik uP. Terdapat
register yang memang visible, yakni dapat dialamati oleh uP. Namun terdapat juga yang unvisible,
terutama pada versi 80286 dan setelahnya, untuk melakukan operasi pada protected mode. Adapun
susunan dari register yang dapat dialamati adalah:

Seperti terlihat pada gambar, model pemprograman yang ada adala 8, 16, 32 bit. Pada model 8 bit,
terdapat register AH, AL, BH, BL, CH, CL, DH, DL. Kemudian pada model 16 bit terdapat AX, BX, CX, DX,
SP, BP, DI, SI, IP, FLAGS, CS, DS, ES, SS, FS, dan GS. Untuk 32 bit, EAX, EBX, ECX, EDX, hingga EFLAGS.
Model tersebut dibagi menjadi dua type, general purpose register dan special purpose register.

General Purpose Register

EAX, jika dalam model 32 bit adalah EAX, dalam mode 16 bit adalah AX, dan 8 bit untuk AL atau AH.
Digunakan untuk menyimpan hasil aritmatika, dan lokasi alamat offset dan memory.

EBX, menyimpan lokasi alamat offset memory sistem dan memory data.

ECX, digunakan untuk melakukan penghitungan.mengalamati memory data.

EDX, menyimpan bagian dari hasil pembagian atau perkalian, mengalamati memory data.

EBP, base pointer, menunjuk lokasi memory pada saat transfer data memory.

EDI, mengalamati data string tujuan untuk instruksi yang berhubungan dengan string.

ESI, mengalamati data string sumber untuk instruksi yang berhubungan dengan string.

Special Purpose Register

EIP, menunjuk pada instruksi selanjutnya pada memory yang telah dialokasikan menjadi code segment.

ESP, mengalamati bagian memory yang digunakan sebagai stack.


EFLAGS, mengindikasikan kondisi uP dan hasil berbagai operasi.

Struktur dari FLAGS register sama untuk versi 8086 hingga pentium Pro. Adapun masing-masing fungsi
dari FLAG adalah:

CF, carry flag, untuk menyimpan hasil simpanan atau pinjaman pada operasi tambah dan kurang.

Parity, mengindikasikan 0 atau 1. Pengecekan parity sekarang lebih banyak digunakan pada komunikasi
data.

ACF, mengindikasikan parity namun hanya pada bit 3 dan 4.

ZF, mengindikasikan hasil aritmatika apakah 0 atau tidak. jika nilainuya 0, maka ZF=1 dan sebaliknya.

SF, sebagai tanda apakah sebuah integer bertanda atau tidak. jika signed, SF=1; dan sebaliknya.

TrapF, enable/disable fitur debugging.

IF, enable/disable pin input INTR.

DF, setting direction dari register. dapat increment atau decrement. disetting dengan bantuan instruksi
STD, dan CLD.

Overflow, mengindikasikan telah terjadi overflow pada operasi tambah atau kurang. para operasi
unsigned number, biasanya overfloaw tidak diperhatikan.

I/OPL, set level I/O privilege. paling tinggi adalah 00 dan terenda 11.privilege paling tinggi tidak akan
halangan dalam eksekusi dan sebaliknya.

NT, diset ketika software melakukan perintah nested, yakni mengerjakan perintah lain dalam suatu
perintah.

RS,control resume dari perintah setelah perintah berikutnya dikerjakan.

VM, set virtual mode yang memungkian bekerjanya beberapa DOS.

Alignment Check, tersetting apabila word atau double word tidak teralamati dengan benar.

SEGMENT REGISTER

Jika segment ini dihubungkan pada memory, maka dapat menghasilkan alamat memory tertentu. Fungsi
yang sebenarnya dari sebuah segment register, berbeda pada real atau protected mode. Adapun secara
general fungsi dari segment register adalah sebagai berikut:

Code Segment, code segment menyimpan program yang digunakan uP. dalam real mode alokasinya
64Kb namun pada protected mode lebih luas lagi, dan merujuk pada descriptor awal dan akhir alamat
yang dalam register yang dapat digunakan.

Data Segment, letak sebagian besar data. pada 8086-80286 adalah 64K sedangkan pada 80386
sebesar4Gbytes.
Extra Segment, segment data tambahan untuk menyimpan tujuan pada instruksi string.

Stack Segment, mendefinisikan area pada memory yang dapat digunakan pada stack.

FS dan GS, adalah segment register yang hanya ada mulai 80386, 80486, pentium dan pentium pro.
dapat diakses oleh program sebagai register tambahan.

REAL MODE ADDRESSING

Real mode hanya menggunakan 1Mbyte memory internal. Ini ada pada sistem 8086 dan 88. PCDOS dan
MSDOS selalu bekerja pada real mode.

SEGMENT dan OFFSET

Segment + Offet digunakan untuk mengalamati memory pada RAM. Segment, mendefinisikan alamat
awal dari memory. Offset address, alamat offset yang memilih antara range 64Kbytes memory segment.
segment address otomatis akan ditambahkan 0h pada belakannya, kmudian ditambahkan offset
address. Alamat ini menunjuk data pada RAM.

Sistem pengalamatan memory didapat dari gambar diatas. Pada 80286 alamat offset menjadi lebih
panjang dengan tambahan 64K minus 16K. Biasanya digunakan sebagai pengalamatan memory
tambahan.

SEGMENT DEFAULT dan OFFSET REGISTER

segment dapat dikombinasikan dengan berbagai register lain untuk melakukan suatu fungsi. Misal code
segment + instruction pointer digunakan untuk merujuk pada instruksi yang selanjutnyadikerjakan.
beberapa kombinasi dari segment:

Contoh kombinasi CS:IP, misal CS dimulai dengan alamat 4000H, dengan IP: 0001H. Maka kombinasinya
adalah 40001H. kombinasi lain, adlah SS dan SP/BP. Alamat yang ditentukan dari kombinasi ini akan
merujuk pada bagian memory yang digunakan sebagai stack.

8086-80286 memiliki 4 segment. sementara pada 80386 memiliki 6 segment. sebuah program dapat
memiliki 4 segment atau lebih.
Sementara itu, stack segment disimpan dalam dalam TPA,tepatnya diatas semua driver dan program.

Set Instruksi dalam 8088/8086

*Set Instruksi dalam 8088/8086*

Set instruksi dari mikroprosesor mendefinisikan operasi dasar yang programmer dapat membuat
perangkat melakukan. Set instruksi dari 8088/8086 mikroprosesor memiliki 117 petunjuk dasar.Beragam
operan dan mode pengalamatan diizinkan untuk digunakan dengan ini instruksi dieksekusi pada tingkat
kode mesin.

Set instruksi dapat dibagi menjadi beberapa kelompok fungsional terkait instruksi.

1. Transfer Data Instruksi.

2. Terisolasi I / O Instruksi.

3. Instruksi Aritmatika.

4. Instruksi Logika.

5. Petunjuk Bandingkan.

6. Instruksi Shift.

7. Instruksi Rotate.

8. Instruksi Flag kontrol.

9. Instruksi Jump.

10. Instruksi penanganan Subroutine.

11. Stack operasi Petunjuk.

12. Simpul penanganan Petunjuk.

13. Instruksi penanganan String.


Set intruksi berupa jenis instruksi teknik pengalamatan,system,bust,CPU dan I/O set instruksi dan format
pengalamatan

Transfer Data

Transfer data adalah suatu pergerakan data dari satu lokasi ke lokasi lain seperti memori untuk
mikroprosesor, mikroprosesor ke part atau memori atau sebaliknya. Data transfer berfungsi
menyediakan kemampuan untuk memindahkan data baik antara register internal atau antara register
internal dan lokasi penyimpanan di memori.

Transfer Data :

Menetapkan lokasi operand sumber dan operand tujuan

Lokasi – lokasi tersebut dapat berupa memori , register / bagian paling atas daripada stack

Menetapkan panjang data yang dipindahkan

Menetapkan mode pengalamatan

Tindakan CPU untuk melakukan transfer data adalah:

Memindahkan data dari satu lokasi ke lokasi lain

Apabila memori dilibatkan :

Menetapkan alamat memori

Menjalankan transformasi alamat memori virtual ke alamat memori

Mengawali pembacaann/penulisan memori

Operasi set instruksi untuk transfer data :

Move : memindahkan word/blok dari sumber ke tujuan

STORE : memindahkan word dari prosesor ke memori

LOAD : memindahkan word ari memori ke prosesor

EXCHANGE : menukar isi sumber ke tujuan

CLEAR/RESET : memindahkan word O ke tujuan


SET : memindahkan word I ke tujuan

PUSH : memindahkan word dari sumber ke bagian paling atas stack

POP : memindahkan word dari bagian paling atas sumber

Fungsi transfer data antara lain :

MOV => (Move byte atau kata)

XCHG =>(byte excahnge atau kata)

XLAT =>(penerjemah byte)

LEA =>(load efektif alamat)

LDS =>(load segmen data)

LES =>(load tambahan data)

INTEL PROCESSOR 8088 DENGAN MACAM-MACAM REGISTER YANG


TERDAPAT DIDALAMNYA SERTA INSTRUKSI SET 8088
BAB I
PENDAHULUAN

A. Latar belakang
Di awali dari definisi Mikroprosesor itu sendiri, ialah sebuah chip (IC) yang bekerja dengan program.
Fungsinya adalah sebagai pengontrol atau pengolah utama dalam suatu rangkaian elektronik.
Mikroprosesor biasa disebut juga dengan CPU (Central Processing Unit). Sekilas tentang sejarahnya yaitu
pada tahun 1978 Intel mengeluarkan mikroprosesor 16-bit yaitu 8086, setahun kemudian mengeluarkan
8088 dengan kecepatan eksekusi dan memori lebih besar dari 8085, serta mulai digunakannya cache
memori (sistem antrian yang mengatur pemberian instruksi sebelum menjalankannya. intel 8088
merupakan prosesor yang digunakan pada IBM PC.

Setiap satu pin memiliki dua fungsi, yaitu sebagai jalur data dan jalur alamat maka digunakanlah sistem
time multiplexing, yaitu penggunaan jalur yang sama untuk fungsi dan waktu yang berbeda, sehingga tidak
bisa data dan alamat dikirim pada saat yang bersamaan. Mikroprosesor 8088 mampu mengalamati memori
sampai 1 MB. Memori ini digunakan untuk menyimpan kode biner dari instruksi yang akan dijalankan oleh
μP, selain itu memori juga digunakan untuk menyimpan data secara sementara.
B. Elemen didalam mikroprosesor
 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/keControl 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 Register Data memiliki lebar 16 bit
namun dapat diakses dalam format 2×8 bit.

8088 ditargetkan pada sistem yang ekonomis, diikuti oleh pengunaan desain 8-bit. Queue yang ungul dari
8088 adalah 4 bytes, sebagai penggunaan dalam 8086 6 bytes. Clone yang populer dengan menggunakan
8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock 4.77 MHZ atau 7.16 MHZ.

BAB II
PEMBAHASAN
A. Mikroprocessor Intel 8088
Mikroprosesor Intel 8088 hampir serupa dengan prosesor Intel 8086, kecuali pada data eksternal bus. Lebar
data eksternal bus 8088 dikurangi menjadi 8 bit, dan instruksi ukuran queue dan prefetching algoritmanya
diubah. Intel 8088 menggun akan dua urutan bus siklus untuk menulis atau membaca 16 data bit sebagai
ganti satu siklus untuk 8086. Ini menjadikan prosesor bergerak lebih lambat, tetapi ada nilai plus pada
perangkat keras yang menjadikan CPU 8088 kompatibel dengan peripheral 8080/8085. Mikroprosesor Intel
8088 termasuk keluarga mikroprosesor 8 bit dan 16 bit. Mikroprosesor 8088 mempunyai 8 bit jalur data
dan 20 bit jalur alamat. Jalur data memiliki pin yang sama dengan jalur alamat, artinya pada saat tertentu
digunakan sebagai jalur data dan pada saat yang lain digunakan sebagai jalur alamat.

8088 membutuhkan catu daya +5,0 V dengan toleransi + 10%. Mikroprosesor 8088 akan kompatibel TTL
(Transistor-Transistor Logic) jika kekebalan terhadap noise disesuaikan menjadi 350 mV dari nilai 400 mV
yang biasa. Mikroprosesor 8088 dapat menjalankan satu 74XX, lima 74LSXX, satu 74SXX, sepuluh
74ALSXX, dan sepuluh 74HCXX beban satuan. Jika mikroprosesor 8088 direset, mikroprosesor ini mulai
mengeksekusi perangkat lunak pada lokasi memori FFFF0H (FFF:0000) dengan pin interrupt request di-
disable. Karena bus-bus 8088 dimultipleks dan kebanyakan memori dan peralatan I/O tidak, system harus
didemultipleks sebelum pengantarmukaan dengan memori atau I/O. Demultipleks dilakukan oleh latch
delapan bit yang pulsa clocknya didapat dari sinyal ALE. Operasi minimum 8088 sama dengan
mikroprosesor Intel 8085A, sementara mode maksimum adalah baru dan khusus dirancang untuk operasi
koprosesor aritmatika 8087. Intel 8086/8088 disebut juga CISC (Complex Instruction Set Computer) karena
jumlah dan kompleksitas instruksinya.
B. Register
Register adalah sebuah tempat penampungan sementara untuk data-data yang akan diolah oleh prosesor,
dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosesor itu sendiri. Dengan adanya tempat-tempat
penampungan data sementara ini, proses pengolahan akan bisa dilakukan
secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-lokasi
memori.

Register-register tersebut sebagai register internal dan terdiri dari empat belas register dan keseluruhannya
dapat dibagi dalam beberapa jenis, yaitu :

 Register Segment,
 Register Data,
 Register pointer,
 Register index,
 Register index, dan
 General Purpose Register.

Semua general register mikroprosesor 8088 dapat digunakan untuk perhitungan dan operasi logika. Pada
8088, register data diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register), sehubungan
dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk membantu
proses-proses pengolahan data didalam internal mikroprosesor.
Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode ‘langkah tunggal’ (single-step),
yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan dengan jalan
membuat TF (Trap Flag) masuk ke logika ’1′ atau ‘set’. Bagi seorang programmer, mode ini akan sangat
berguna dalam pekerjaan ‘debugging’.

a. Susunan chip prosesor Intel 8088.


 Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)
 Bus Data (AD0 – AD7)
 Bus Alamat (AD0 – AD7 dan A8 – A19)
 Bus Kendali (NMI, INTR, CLK, Reset).

C. Arsitektur
Arsitektur dari 8088 tetap sama degan 8086 yakni: 16-bit registers, 16-bit internal data bus dan 20-bit
address bus, yang bisa menjadikan prosesor mencapai memori 1 MB. 8088 memiliki pembagian memori
yang sama dengan 8086: prosesor bisa mencapai 64 KB dari memori secara langsung, dan untuk mencapai
lebih dari 64 KB, salah satu dari bagian khusus register harus di update. Program, data dan stack memori
menduduki ruang memori yang sama. Total kapasitas memory yang bisa dicapai adalah 1MB-KB.
Sebagaimana kebanyakan instruksi prosesor yang menggunakan 16-bit pointers, prosesor dapat mengolah
secara efektif jika hanya memorinya 64 KB. Untuk mengakses memori diluar 64 KB, CPU menggunakan
bagian register khusus untuk menspesifikasi di mana kode, stack dan 64 KB segmen data diposisikan di
dalam memori 1 MB.
a. 16-bit pointers dan data disimpan sebagai:
 address: low-order byte
 address+1: high-order byte
b. 32-bit addresses disimpan di “segment:offset” dengan format:
 address: low-order byte of segment
 address+1: high-order byte of segment
 address+2: low-order byte of offset
 address+3: high-order byte of offset
c. Physical memory address ditunjukkan oleh pasangan segment:offset dihitung dengan:
 address = (<segment> * 16) + <offset>

Program Memori- program dapat ditempatkan di manapun di dalam memori. perintah jump and call dapat
digunakan untuk menyingkat lompatan di dalam segmen kode 64 KB, seperti halnya untuk lompatan jauh
di manapun di dalam memori 1 MB. Seluruh perintah lompatan yang bersyarat dapat digunakan untuk
melompat sekitar + 127 – - 127 bytes dari instruksi yang ada.
Memori data – prosesor dapat mengakses data di tiap orang lebih dari 4 segmen yang tersedia, yang
membatasi ukuran dari memori yang dapat diakses sampai 256 KB ( jika seluruh empat segmen menunjuk
pada 64 KB blok berbeda). Mengakses data dari Data, Code, segmen Extra atau Stack biasanya dapat
dilaksanakan dengan awalan perintah DS:, CS:, SS: atau ES: ( beberapa register dan instruksi dengan tak
hadir boleh gunakan segmen SS atau ES sebagai ganti segmen DS).

D. Set Instruksi Pada Microprocessor 8088


1. Transfer Data
Set instruksi 8088 mencakup 14 transfer data yang menggerakkan byte atau kata data antara memori dan
register selain juga antara akumulator dan port I/O.
a.GeneralPurpose(Umum) :MOV,PUSH,POP,XCHG,SXLAT
b. Input/Output : In, Out
c. Address Transfer (Pemindahan Alamat) : LEA, KDS, KES
d. Flag Transfer (Pemindahan Flag) : LAHF, SAHF, PUSHF, POPF

2. Arithmetic Instructions (Instruksi Perhitungan)


8088 mampu melakukan penambahan, pengurangan, pengurangan dan pembagian data selain juga bytes
dan kata. Sistem ini menambah dan mengurangi dengan menggunakan bytes atau kata yang bertanda atau
tak bertanda dan data BCD atau ASCII.
a. Addition (Penjumlahan) : ADD, ADC, AAA, DAA, INC
b. Substraction (Pengurangan) : SUB, SBB, AAS, DAS, DES, NEG, CMP
c. Multiplication (Perkalian) : MUL, IMUL, AAM
d. Division (Pembagian) : DIV, IDIV, AAD
e. Sign Extension : CBW, CWD

3. Manipulasi Bit
Instruksi ini mencakup operasi logika, shift dan rotasi.
a. Logical (Logika) : AND, OR, XOR, NOT, TEST
b. Shift (Geser) : SAL/SHL, SAR, SHR
c. Rotate (Gulung) : ROL, ROR, RCL, RCR

4. Instruksi String
Instruksi string digunakan untuk memanipulasi string data dalam memori. Setiap string tersusun baik dari
bytes maupun kata dan hingga mencapai 64 K bytes panjang.nya
a. Direction : CLD, STD
b. Repeat Prefixes : REP, REPE/REPZ, REPNE/REPNZ,
c. Move : MOVSB, MOVSW
d. Compare : CMPS, CMPSB, CMPSW
e. Scan : CSAS, SCASB, SCASW
f. Load and Store : LODS, LODSB, LODSW, STOS, STOSB, STOSW

5. Transfer Program
Instruksi transfer program mencakup jump, call, dan return, instruksi yang sudah kita kenal dalam 8085.
a. Unconditional transfer (Pemindahan) : CAL, RET, JMP
b. Conditional transfer (Pemindahan Bersyarat) : JA/JNBE, JAE/JNB, JB/JNAE/JC,
JBE/JNA, JCXZ, JE/JZ, JG/JNLE, JGF/JNL, JL/JNGE, JLE/JNG, JNC, JNE/JNZ, JNO, JNP/JPO, JNS,
JO, JP/JPE, JS
c. Loop/Jump : LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ

6. Kontrol Prosesor
Instruksi kontrol prosesor memungkinkan dan tidak memungkinkan interupsi, memodifikasi bit flag dan
mensinkronisasi kejadian eksternal.
a. Flag Operations : CLC, STC, CMC, CLD, STD, CLI, STI,
b. External Synchronization Interrupt : INT, INTO, IRET
 Berikut ini penjelasan tentang instruksi yang digunakan pada bahasa rakitan 8086 dan 8088 atau sejenisnya
:
1. AAA (ASCII adjust for edition) Pengaturan ASCII bagi penambahan
2. AAD (ASCII adjust for division) Pengaturan ASCII bagi pembagian
3. AAM (ASCII adjust for multipy) Pengaturan ASCII bagi perkalian
4. AAS (ASCII adjust for substraction) Pengaturan ASCII bagi pengurangan
5. ADC (add with carry) T ambahkan dengan carry
6. ADD (addition) Penambahan
7. AND (logic AND) Logik AND
8. CALL (CALL subroutine) Subrutin panggil
9. CBW (Convert byte to word) Konversikan byte ke kata
10. CLC (Clear Carry) Kosongkan corry flag
11. CLD (Clear directon flag) Kosongkan flag arah
12. CLI (Clear interrupt enable) Kosongkan flag penggerak interupsi
13. DAS (decimal adjust for substraction) Pengaturan decimal bagi pengurangan
14. DEC (decrement) Penurunan operand tujuan dengan 1
15. DIV (divide) Pembagian tak bertanda
16. ESC (escape) Escape digunakan sehubungan dengan suatu co-procesor external
17. HLT (halt) HLT menghentikan prosesor sampai saluran reset diaktifkan
18. IDIV (Integer division) Pembagian kilat
19. IMUL (Integer multiply) Perkalian kilat
20. IN (Input) IN (masukan) mentransfer data dari port yang disperifikasikan ke dalam register AC atau AX
21. NC (Increment) INC menaikkan operand tujuan dalam 1
22. INT (Interupt) INT (Interupsi) mengawali suatu prosedur interupsi dengan jenis yang dispesifikasikan oleh instruksi yang
bersangkutan
23. INTO (Interupt on overflow) Instrupsi bila ada overflow INTO digunakan untuk membangkitkan suatu interupsi perangkat
lunak yang bergantumg pada status flag OF
24. IRET (Interupt return) IRET digunakan untuk kembali dari suatu interupsi dan mendapatkan kembali IP,CS dan flag-flag dari
stack
25. JA (Jump on above) Digunakan jika operand pertama lebih besar daripada operand kedua
26. JNBE (Jump) Digunakan jika pada saat pembandingan operand 1, tidak lebih kecil atausama dengan operand 2
27. JAE (Jump on above or equal) Digunakan pada saat pembandingan operand 1 lebih besar atau sama dengan operand 2
28. JNB (Jump not below) Digunakan pada saat pembandingan operand 1 tidak lebih kecil dari operand 2
29. JB (Jump on below) Digunakan pada saat operand 1 lebih kecil dari operand 2
30. JNAE (Jump on not above or equal) Digunakan pada saat operand 1 tidak lebih besar atau sama dengan operand 2
31. JBE (Jump on below or equal) Digunakan pada saat operand 1 lebih kecil atau sama dengan operand 2
32. JNA (Jump on not above) Digunakan pada saat operand 1 tidak lebih besar dari operand 2
33. JC (Jump on carry) Digunakan pada saat akan diprogram CF=1
34. JCXZ (Jump if CX=0) Digunakan bila isi register CX=0
35. JE (Jump on equal) Digunakan pada saat pembandingan kedua operand sama
36. JZ (Jump on zero) Digunakan pada saat akan diproses ZF=1
37. JG (Jump on greather than) Digunakan pada saat pembandingan operand 1 menunjukkan lebih besar dari operand 2
38. JNLE (Jump on greather or equal) Digunakan pada saat operand 1tidak lebih kecil atau sama dengan operand 2
39. JGE (Jump on greather or equal) Digunakan pada saat operand 1 lebih besar atau sama dengan operand 2
40. JNL (Jump on less) Digunakan pada saat operand 1 tidak lebih kecil dari operand 2
41. JL (Jump on less) Digunakan pada saat operand 1 lebih kecil dari operand 2
42. JNGE (Jump on not greather or equal) Digunakan pada saat operand 1 tidak lebih besar atau sama dengan operand 2
43. JLE (Jump on less or equal) Digunakan pada saat operand 1 lebih kecil atau sama dengan operand 2
44. JNG (Jump on not greather than) Digunakan pada saat operand 1 tidak lebih besar daripada operand 2
45. JMP (Unconditional jump) Lompatan tidak bersyarat
46. JNC (Jump on not carry) Digunakan pada saat diproses CF=O
47. JNE (Jump on not equal) Digunakan pada saat operand 1 tidak sama dari operand 2
48. JNO (Jump on not zero) Digunakan pada saat diproses ZF=0
49. JNO (Jump on not overflow) Digunakan bila tidak ada overflow (OF=O)
50. JNS (Jump on not sign) Digunakan pada saat diproses SF=O
51. ZNP (Jump on not pority) Digunakan bila tidak ada pointer
52. JPO (Jump on poity odd) Digunakan bila pointer ganjil
53. O (Jump on overflow) Digunakan pada saat ada overflow
54. JP (Jump on Pority equal) Digunakan bila pointer genap
55. JS (Jump on sign) Digunakan pada saat diproses ZF=1
56. LAHF (Load AH from flag) LAHF me-load bit 7,6,4,2 & 0 pada register AH masing-masing dengan isi flag SF.ZF,AF & CF
57. LDS (Load pointer using DS) Muatkan peminjak dengan menggunakan DS
58. LEA (Load effective address) LEA mentransfer opsan sumber 16 bit dalam memori ke tujuan 16 bit
59. LES (Load pointer using ES) Muatkan pointer dengan menggunakan ES
60. LOCK (Lock bas) Digunakan dalam penerapan pemakaian sumber bersama, untuk memastikan bahwa memori tidak diakses
secara serentak oleh lebih dari satu proses
61. LODS (Load string) Muatkan string byte atau kata
62. LOOP Loop jika EX bukan 0
63. LOOPE dan LOOPZ -Loop bila sama
64. -Loop bila 0
65. LOOPNE/LOOPNZ -Loop bila tidak sama (ZF=0)
66. -Loop bila tidak nol (ZF=O)
67. MOVE Pindahkan byte atau kata memindahkan data 8 bit atau 16 bit
68. MOUS (Move string) Pindahkan data string 8 bit atau 16 bit
69. MUL (Multifly) Digunakan untuk mengalihkan isi bertandapada akumulator dengan suatu operand sumber yang
dispesifikasikan
70. NEG (Negate) Mengurangkan suatu operand tujuan dari 0 & menyimpan hasil komplemen keduanya dalam tujuan
71. NOP (Logic NOT) NOP tidak membe rikan dampak tertentu (tidak ada operasi)
72. NOT (Logic OR) Operasi logic OR
73. OR (Logic OR) Operasi logic OR
74. OUT (Output) Digunakan untuk mentransfer data dari AL atau AX ke point (pangkalan)
75. POP (POP from stack) Keluaran data dari stack dari AL atau AX ke point (pangkalan)
76. POPF (POP flag) Keluarkan ke flag dan stack
77. POSH (Push to stack) Dorong sumber ke stack
78. PUSHF (Push flag) Dorong flag ke stack
79. RCL (Rotate lift with carry) Putar ke kirin dengan carry 1
80. RCR (Rotate right with carry) Putar ke kanan dengan carry 1
81. REP Ulangi
82. REE Ulangi jika sama
83. REPZ Ulangi jika nol
84. REPNE Ulangi jika tidak sama
85. REPNZ Ulangi jika tidak nol
86. RET (Return from subroutine) Digunakan untuk kembali ke subrutin
87. ROL (Rotate left) Rotasi (putar) ke kiri 1
88. ROR (Rotate right) Rotasi (putar) ke kanan 1
89. SAHF (store AH in flags register) Simpan AH dalam reegister flag
90. SAL/SHL (Shift left arithmetic/logical) Geser aritmatik/logika ke kiri 1
91. SAR/SHR (Shift right arithmetic/logical) Geser aritmatik/logika ke kanan 1
92. SBB (Substract with borrow) Kurangkan dengan borrow
93. SCAS (Scan string) Digunakan untuk mengurangkan string tujuan yang dialamatkan a/n regiser DI,dari AX atau AL
94. STC (Set carry flag) Menset carry flag (CF)
95. STD (Set direction flag) Menset flag arah (DF)
96. STI (Set interrupt enable flag) Menset flag penggerak interupsi (IF)
97. STOS (Substract) Memindahkan operand sumber yang terkandung dalam AX atau AL ke suatu tujuan yang dialamatkan oleh DI
98. SUB (Substract) Mengurangkan sumber dari operand tujuan dan hasilnya ditepatkan dalam tujuan
99. TEST (Logical comporison) Menguji operand-operand atau logic perbandingan
100. WAIT Menunggu sampai saluran test aktif
101. XCHG (Exchange) Pertukaran dan sumber
102. XLAT (Translate) Digunakan untuk menerjemahkan se-byte dalam register AL ke dalam suatu byte yang diambil dari tabel
terjemahan
103. XOR (Logic exclusive OR) Operasi exclusive OR
BAB III
PENUTUP

KESIMPULAN

8088 adalah desain hybrid 8/16-bit: 16-bit internal, dengan 8-bit I/O. ini berarti bahwa Sistem designer
dapapt menggunakan chip pendukung 8-bit yang murah dan tersedia. Sehingga menurunkan harga sebuah
sistem komputer. Kemampuannya tidak begitu hebat, mesin-mesin Z-80 dan 8085 kadang-kadang lebih
unggul, tetapi 8088 terjual cukup banyak. Apalagi setelah divisi IBM memilihnya sebagai prosesor utama
IBM PC. 8088 menjadi sejarah dan terjual jutaan unit, rekor kedua setelah Z-80.

Sayangnya Intel membuat beberapa keputusan yang buruk dalam desain. Pertama, 8088 menggunakan
arsitektur bersegmen. Kedua untuk alasan yang tidak efisien, Intel memutuskan untuk membatasi akses
base-memory dalam suatu cara menjadi hanya 640K. Meskipun pada masa itu keputusan ini adalah untuk
jangka pendek semua user prosesor x86 hingga saat ini merasa kesulitan dengan pembatasan 640K tersebut.
Ini dapat ditemukan jika user menerima pesan kesalahan ‘out of memory’. DOS, Windows, dan bahkan
Windows 95 memiliki permasalahan base-memory yang disebabkan oleh batas 640K. Hanya sistem operasi
murni 32-bit seperti OS/2 dan Windows NT yang tidak memiliki masalah ini. Saat itu user harus menunggu
7 tahun sebelum kemunculan 386.
[Mukhlish muchad Fuadi: 2nd Semester 2006]

MIKROPROSESOR INTEL 8088

Intel 8088 adalah prosesor mikro buatan Intel berbasis pada 8086, dengan 16-bit register dan
menggunakan 8-bit external data bus. intel 8088 merupakan prosesor yang digunakan pada IBM PC.

8088 ditargetkan pada sistem yang ekonomis, diikuti oleh pengunaan desain 8-bit. Jalur bus yang lebar
dalam circuit boards masih sangatlah mahal ketika ini di luncurkan. Queue yang ungul dari 8088 adalah 4
bytes, sebagai penggunaan dalam 8086 6 bytes. 8088 termasuk keturunan dari 80188, 80288, 80186,
80286, 80386, 80486, dan 80388, microcontroller seperti yang masih digunakan sekarang. Clone yang
populer dengan menggunakan 8088 adalah Model D, dimana tombol pilihan dapat berjalan pada clock
4.77 MHZ atau 7.16MHZ.

Spesifikasi 8088
Mikroprosesor Intel 8088 hampir serupa dengan prosesor Intel 8086, kecuali pada data eksternal bus.
Lebar data eksternal bus 8088 dikurangi menjadi 8 bit, dan instruksi ukuran queue dan prefetching
algoritmanya diubah. Intel 8088 menggunakan dua urutan bus siklus untuk menulis atau membaca 16
data bit sebagai ganti satu siklus untuk 8086. Ini menjadikan prosesor bergerak lebih lambat, tetapi ada
nilai plus pada perangkat keras yang menjadikan CPU 8088 kompatibel dengan peripheral 8080/8085.

Pin SSO pada 8088 menggantikan BHE/S7 pada 8086, dan pin IO/M pada 8088, bukan M/IO seperti pada
8086. 8088 membutuhkan catu daya +5,0 V dengan toleransi + 10%. Mikroprosesor 8088 akan
kompatibel TTL (Transistor-Transistor Logic) jika kekebalan terhadap noise disesuaikan menjadi 350 mV
dari nilai 400 mV yang biasa. Mikroprosesor 8088 dapat menjalankan satu 74XX, lima 74LSXX, satu
74SXX, sepuluh 74ALSXX, dan sepuluh 74HCXX beban satuan. Jika mikroprosesor 8088 direset,
mikroprosesor ini mulai mengeksekusi perangkat lunak pada lokasi meori FFFF0H (FFF:0000) dengan pin
interrupt request di-disable. Karena bus-bus 8088 dimultipleks dan kebanyakan memori dan peralatan
I/O tidak, system harus didemultipleks sebelum pengantarmukaan dengan memori atau I/O.
Demultipleks dilakukan oleh latch delapan bit yang pulsa clocknya didapat dari sinyal ALE. Operasi
minimum 8088 sama dengan mikroprosesor Intel 8085A, sementara mode maksimum adalah baru dan
khusus dirancang untuk operasi koprosesor aritmatika 8087.

REGISTER

Sebuah register adalah sebuah tempat penampungan sementara untuk data-data yng akan diolah oleh
prosesor, dan dibentuk oleh 16 titik elektronis di dalam chip mikroprosesor itu sendiri. Dengan adanya
tempat-tempat penampungan data sementara ini, proses pengolahan akan bisa dilakukan

secara jauh lebih cepat dibandingkan apabila data-data tersebut harus diambil langsung dari lokasi-
lokasi memori. Register-register tersebut sebagai register internal dan terdiri dari empat belas register
dan keseluruhannya dapat dibagi dalam beberapa jenis, yaitu : Register Segment, Register Data, Register
pointer, Register index, Register index, dan General Purpose Register.

Semua general register mikroprosesor 8088 dapat digunakan untuk perhitungan dan operasi logika.

Pada 8088, register data diwujudkan oleh AX, BX, CX dan BX (sebagai general purpose register),
sehubungan dengan fungsinya yang selain menangani tugas-tugas khusus, juga bisa dimanfaatkan untuk
membantu proses-proses pengolahan data didalam internal mikroprosesor.

Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode ‘langkah tunggal’ (single-step),
yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan

dengan jalan membuat TF (Trap Flag) masuk ke logika ‘1’ atau ‘set’. Bagi seorang programmer, mode ini
akan sangat berguna dalam pekerjaan ‘debugging’.

Organisasi Ruang Memori Dan Register


Unsur terkecil memori adalah ‘sel memori’ (memory-cell), yaitu suatu elemen penyimpanan data yang
berkapasitas sebesar 1 bit. Dengan menggabungkan sejumlah sel memori, akan bisa membentuk suatu
ruang penyimpanan data dengan berbagai ukuran, misalnya 1 byte, 1 word, 1 Kilobyte, 1 Megabyte, 1
Gigabyte, 1 Terabyte, dsb.

Organisasi memori dapat dibandingkan dengan sistem ‘locker’ (susunan laci yang mempunyai kode
nomor setiap lacinya sehingga memudahkan orang mengenal lacinya masing-masing sebelum
mengambil atau memasukkan barang titipannya).

Susunan chip prosesor Intel 8088.

• Catu Daya/VCC (pin 40) dan GND (pin 1 dan 20)

• Bus Data (AD0 – AD7)

• Bus Alamat (AD0 – AD7 dan A8 – A19)

• Bus Kendali (NMI, INTR, CLK, Reset).

Dalam mikroprosesor 8088 secara fisik, bus alamat terdiri dari 20 bit (A0-A19), sementara register-
register internal terbentuk dari 16 bit data. Oleh sebab itu, untuk menyesuaikan perbedaan jumlah bit
antara bus alamat 8088 dengan register internal, sistem pengalamatan memori dilaksanakan dengan
format segment:offset. Format yang membutuhkan 32 bit ini dibentuk dengan jalan menggabungkan
data dari 2 buah register sekaligus. Register pertama adalah satu satu dari 4 register segment,
sedangkan register lainnya diambil dari salah sebuah register pointer atau register indeks.

Kenyataannya, segment-segment yang didefinisikan pada ruang memori itu boleh dibuat saling
berdampingan, terpisah atau tumpang tindih sekalipun. Prosesor memiliki bus alamat sebanyak 20 bit,
yang berarti ia mampu mengalamati hingga 1.048.575 lokasi memori. Secara heksadesimal, jumlah ini
dinyatakan sebagai angka 00000 sampai dengan FFFFF. Ini adalah alamat-alamat fisik (physical
addresses) dari mikroprosesor. Untuk 8088 dan 8086 yang bus alamatnya terdiri dari 20 bit, otomatis
penulisan alamat fisiknya terdiri dari 5 digit heksadesimal. Sistem segmentasi pada IBM PC dilaksanakan
agak unik. 1 segment adalah bagian dari ruang memori yang besarnya 65536 byte atau 64 Kb. Namun,
segment-segment itu tidaklah diletakkan secara berdampingan sambung menyambung satu sama lain,
akan tetapi saling tumpang tindih sehingga jarak antara titik awal suatu segment hanya terpaut 16 byte
terhadap segment lainnya.

Peta Memori (Memory Map)


Kapasitas memori untuk IBM PC/XT yang berbasis prosesor Intel 8088/8086 adalah 1.048.576 byte atau
lebih mudah disebut 1 (satu) Megabyte. Nilai sebesar 1 MB inilah yang menjadi dasar sistem pemetaan
memori dalam keluarga IBM PC Kompatibel, sehingga dalam produk-produk yang lebih mutakhir pun,
peta memori tersebut tetap dipertahankan. Hal ini berhubungan dengan konsistensi yang harus dijaga
pada Disk Operating System, yang dalam keadaan bagaimanapun, harus tetap bisa dijalankan mulai dari
produk yang paling awal seperti PC/XT, sampai kepada yang terbaru seperti AT 486 kompatibel.

ARSITEKTUR

Arsitektur dari 8088 tetap sama degan 8086 yakni: 16-bit registers, 16-bit internal data bus dan 20-bit
address bus, yang bisa menjadikan prosesor mencapai memori 1 MB. 8088 memiliki pembagian memori
yang sama dengan 8086: prosesor bisa mencapai 64 KB dari memori secara langsung, dan untuk
mencapai lebih dari 64 KB, salah satu dari bagian khusus register harus di update.

Program, data dan stack memori menduduki ruang memori yang sama. Total kapasitas memory yang
bisa dicapai adalah 1MB KB. Sebagaimana kebanyakan instruksi prosesor yang menggunakan 16-bit
pointers, prosesor dapat mengolah secara efektif jika hanya memorinya 64 KB. Untuk mengakses
memori diluar 64 KB, CPU menggunakan bagian register khusus untuk menspesifikasi di mana kode,
stack dan 64 KB segmen data diposisikan di dalam memori 1 MB.

16-bit pointers dan data disimpan sebagai:

address: low-order byte

address+1: high-order byte

32-bit addresses disimpan di “segment:offset” dengan format:

address: low-order byte of segment

address+1: high-order byte of segment

address+2: low-order byte of offset

address+3: high-order byte of offset

Physical memory address ditunjukkan oleh pasangan segment:offset dihitung dengan:

address = (<segment> * 16) + <offset>

Program Memori- program dapat ditempatkan di manapun di dalam memori. perintah jump and call
dapat digunakan untuk menyingkat lompatan di dalam segmen kode 64 KB, seperti halnya untuk
lompatan jauh di manapun di dalam memori 1 MB. Seluruh perintah lompatan yang bersyarat dapat
digunakan untuk melompat sekitar + 127 – – 127 bytes dari instruksi yang ada.

Memori data – prosesor dapat mengakses data di tiap orang lebih dari 4 segmen yang tersedia, yang
membatasi ukuran dari memori yang dapat diakses sampai 256 KB ( jika seluruh empat segmen
menunjuk pada 64 KB blok berbeda). Mengakses data dari Data, Code, segmen Extra atau Stack biasanya
dapat dilaksanakan dengan awalan perintah DS:, CS:, SS: atau ES: ( beberapa register dan instruksi
dengan tak hadir boleh gunakan segmen SS atau ES sebagai ganti segmen DS).

Set Instruksi

Set instruksi 8088 terdiri dari perintah-perintah berikut:

* Instruksi perpindahan data.

* Aritmatika – penjumlahan, pengurangan, penaikan, penurunan, mengkonversi byte/word dan


pembandingan.

* Logika – DAN, OR, eksklusif OR, shift/rotate dan test.

* Manipulasi string – load, store, move, compare dan scan untuk byte/word.

* Kontrol transfer – conditional, unconditional, panggilan subroutine dan kembali dari subroutine.

* Perintah Input/Output.

* Lain-lain – setting/clearing flag bits, stack operations, software interrupts, dan lain-lain.

KESIMPULAN

8088 adalah desain hybrid 8/16-bit: 16-bit internal, dengan 8-bit I/O. ini berarti bahwa Sistem designer
dapapt menggunakan chip pendukung 8-bit yang murah dan tersedia. Sehingga menurunkan harga
sebuah sistem komputer. Kemampuannya tidak begitu hebat, mesin-mesin Z-80 dan 8085 kadang-
kadang lebih unggul, tetapi 8088 terjual cukup banyak. Apalagi setelah divisi IBM memilihnya sebagai
prosesor utama IBM PC. 8088 menjadi sejarah dan terjual jutaan unit, rekor kedua setelah Z-80.

Sayangnya Intel membuat beberapa keputusan yang buruk dalam desain. Pertama, 8088 menggunakan
arsitektur bersegmen. Kedua untuk alasan yang tidak efisien, Intel memutuskan untuk membatasi akses
base-memory dalam suatu cara menjadi hanya 640K. Meskipun pada masa itu keputusan ini adalah
untuk jangka pendek semua user prosesor x86 hingga saat ini merasa kesulitan dengan pembatasan
640K tersebut. Ini dapat ditemukan jika user menerima pesan kesalahan ‘out of memory’. DOS,
Windows, dan bahkan Windows 95 memiliki permasalahan base-memory yang disebabkan oleh batas
640K. Hanya sistem operasi murni 32-bit seperti OS/2 dan Windows NT yang tidak memiliki masalah ini.
Saat itu user harus menunggu 7 tahun sebelum kemunculan 386.

[Mukhlish muchad Fuadi: 2nd Semester 2006]

MIKROPROSESOR 8086

1. Sejarah

Pada tahun 1968 Gordon Moore, Robert Noyce, dan Andy Grove menemukan Intel Corp. untuk
menjalankan bisnis “Integrated Elektronics”. Di tahun 1969 Intel mengumumkan produk pertamanya,
RAM statis 1101, Metal Oxide Semikonduktor (MOS) pertama didunia. Hal ini memberikan sinyal pada
berakhirnya era memori magnetis. Kemudian pada tahun 1971, Intel memperkenalkan mikroprosesor
pertama didunia yaitu Intel 4004 yang didesain oleh Federico Faggin, merupakan mikroprosesor 4-bit,
yaitu controller yang dapat diprogram pada satu chip. Mikroprosesor ini hanya mengalamatkan 4096
lokasi memori 4-bit. (bit adalah digit biner yang bernilai “satu” atau “nol”. Memori yang lebarnya 4-bit
disebut nibble). Kumpulan intruksi Intel 4004 hanya mengandung 45 instruksi. Mikroprosesor ini dibuat
dengan teknologi P-channel MOSFET (yang termasuk canggih pada waktu itu) yang membuatnya hanya
dapat mengeksekusi instruksi-instruksi tersebut pada kecepatan rendah dalam 50 KIPs.

Pada tahun 1972, Intel meluncurkan 8008 , mikroprosesor 8-bit pertama. Ini mengimplementasikan set
instruksi yang dirancang oleh Datapoint korporasi dengan Programmable CRT terminal dalam pikiran,
yang juga terbukti cukup tujuan umum. Perangkat diperlukan beberapa tambahan IC untuk
menghasilkan sebuah komputer fungsional, sebagian karena itu yang dikemas dalam 18-pin kecil “paket
memori-“, yang mengesampingkan penggunaan bus alamat yang terpisah (Intel adalah terutama DRAM
produsen di waktu).

Dua tahun kemudian, Intel meluncurkan 8080 , mempekerjakan 40-pin baru paket DIL awalnya
dikembangkan untuk kalkulator IC untuk mengaktifkan bus alamat yang terpisah. Itu satu set instruksi
yang diperpanjang sumber – (tidak biner -) kompatibel dengan 8008 dan juga termasuk beberapa 16-bit
instruksi untuk membuat program lebih mudah. Perangkat 8080, sering digambarkan sebagai
microprocessor pertama benar-benar berguna, akhirnya digantikan oleh beban deplesi- berbasis 8085
(1977) yang bisa mengatasi dengan catu daya 5V tunggal bukannya tiga tegangan operasi yang berbeda
dari chip sebelumnya. Lainnya terkenal 8-bit mikroprosesor yang muncul selama bertahun-tahun adalah
Motorola 6800 (1974), General Instrument PIC16X (1975), MOS Technology 6502 (1975), Zilog Z80
(1976), dan Motorola 6809 (1978).

Pada tahun 1972, Intel mengumumkan prosesor 8-bit 8008. Bill Gades Muda dan Paul Allen mencoba
untuk mengembangkan bahasa pemrograman tersebut, namun saat itu masih kurang kuat.

Pada tahun 1974, Intel memperkenalkan prosesor 8-bit 8080 dengan 4500 transistor yang memiliki
kinerja 10 kali dari pendahulunya. Kemudian di tahun 1975, chip 8080 ini menemukan aplikasi PC
pertamanya pada Altair 8800 sekaligus merevolusi PC. Ditahun ini juga Bill Gades Muda dan Paul Allen
sukses mengembangkan bahasa dasar altair, yang kemudian menjadi Microsoft Basic untuk 8080.

Pada tahun 1978, Intel memperkenalkan mikroprosesor 16 bit bernama 8086 yang merupakan
pengembangan dari mikroprosesor sebelumnya, yaitu 8080/8085. Lahir dan suksesnya mikroprosesor
8086 pada IBM PC menjadi batu loncatan.

Karena masih ada perangkat keras yang hanya berukuran 8 bit serta harga PCB dengan lebar 16 bit data
yang sangat mahal, mikroprosesor ini mengalami masalah dengan lebar datanya. Oleh karena itu pada
tahun 1979, Intel meluncurkan mikroprosesor 8088 yang mampu menangani data 16 bit dan juga 8 bit.
Akibatnya tahun 1981 Intel mengubah computer IBM sehingga menggunakan mikroprosesor 8088 yang
ternyata sangat sukses dipasaran karena kompatibilitasnya.

Pada tahun 1982, IBM menandatangani Advanced Micro Devices sebagai sumber kedua Intel untuk
mikroprosesor 8086 dan 8088. Ditahun yang sama Intel memperkenalkan prosesor 16-bit 80286 dengan
134.000 transistor.

Pada tahun 1984, IBM mengembangkan PC generasi kedua, 80286-Based PC-AT. PC-AT yang
menjalankan MS-DOS, kelak menjadi standard PC selama hampir 10 tahun.

Pada tahun 1985, Intel keluar dari bisnis RAM dinamis untuk focus pada mikroprosesor, dan akhirnya ia
mengeluarkan prosesor 80386, sebuah chip 32-bit dengan 275.000 transistor dan kemampuan
menjalankan berbagai macam program sekaligus. Pada tahun 1989, 80486 diluncurkan dengan 1,2 juta
buah transistor dan built-in math co-prosesor. Pada tahun 1993, Transistor 3.1 juta, prosesor 66-MHz
Pentium dengan teknologi superscalar diperkenalkan.

Pada tahun 1997, Intel meluncurkan teknologi prosesor 64-bit Epic. Ia juga memperkenalkan MMX
Pentium untuk aplikasi prosesor sinyal digital, yang juga mencakup grafik, audio, dan pemrosesan suara.
Pada tahun 1998, Intel memperkenalkan prosesor Celeron dibulan April. Kemudian ditahun 2000 debut
Pentium 4 dengan 42 juta transistor.

Pada tahun 2003, AMD memperkenalkan versi 64-bit dari x86 instruction set dan ditahun 2004 AMD
mendemonstrasikan x86 dual-core prosesor chip. Kemudian pada tahun 2005 Intel menjual prosesor
dual-core pertamanya. Pada tahun 2006, Intel memperkenalkan prosesor core 2 duo dibulan Juli dan
tahun 2007 Intel memperkenalkan prosesor core 2 quad dibulan Januari.

2. Definisi

Mikroprosesor adalah suatu chip (keping) yang dapat melaksanakan operasi-operasi hitungan, operasi
nalar, dan operasi kendali secara elektronis (digital) dan merupakan otak atau pengolah utama dalam
sebuah system komputer. Chip mikroprosesor difabrikasi dengan teknologi LSI (Large Scale Integration)
maupun VLSI (Very Large Scale Integration). Biasanya mikroprosesor dikemas dengan plastik atau
keramik. Kemasannya dilengkapi dengan pin-pin yang merupakan terminal masukan dan keluaran dari
chip. Mikroprosesor berfungsi sebagai pemroses data digital dari input computer. Semakin tinggi
kecepatan prosesor maka semakin cepat hasil komputasi diperoleh. Mikroprosesor disebut juga CPU
(Central Processing Unit).

Mikroprosesor 8086 ialah mikroprosesor dengan lebar bus data sebesar 16 bit secara internal dan
eksternal, maksudnya seluruh register lebarnya 16 bit dan terdapat bus data selebar 16 bit untuk
mentrasfer data kedalam dan keluar CPU.

3. Desain x86 pertama

Proyek 8086 dimulai pada Mei 1976 dan pada awalnya dimaksudkan sebagai pengganti sementara untuk
ambisius dan tertunda 432 iAPX proyek. Ini merupakan upaya untuk menarik perhatian dari kurang
tertunda 16 dan 32-bit prosesor dari produsen lain (sepertiMotorola , Zilog , dan National
Semiconductor ) dan pada saat yang sama untuk melawan ancaman dari Zilog Z80 (dirancang oleh
mantan Intel karyawan), yang menjadi sangat sukses. Kedua arsitektur dan fisik chip karena itu
dikembangkan agak cepat oleh sekelompok kecil orang, dan menggunakan dasar yang sama
mikroarsitektur elemen dan teknik pelaksanaan fisik seperti yang digunakan untuk sedikit lebih tua 8085
(dan 8086 yang juga akan berfungsi sebagai kelanjutan) .

Dipasarkan sebagai sumber kompatibel , 8086 dirancang untuk memungkinkan bahasa assembly untuk
8008,, 8080 atau 8085 secara otomatis dikonversi menjadi setara (sub-optimal) kode sumber 8086,
dengan sedikit atau tanpa tangan-editing. Model pemrograman dan set instruksi adalah (longgar)
berdasarkan pada 8080 dalam rangka untuk membuat ini mungkin. Namun, desain 8086 ini diperluas
untuk mendukung penuh 16-bit pemrosesan, bukan 16-bit cukup kemampuan dasar dari 8080/8085.

Jenis baru instruksi yang ditambahkan juga, dukungan penuh untuk bilangan bulat ditandatangani, dasar
+ offset menangani, dan self-operasi yang berulang mirip dengan Z80 desain [6] tetapi semua dibuat
sedikit lebih umum di 8086. Instruksi langsung mendukungnested ALGOL -keluarga bahasa seperti Pascal
dan PL / M juga ditambahkan. Menurut arsitek utama Stephen P. Morse , ini adalah hasil dari
pendekatan sentris software lebih dari dalam desain prosesor Intel sebelumnya (para desainer telah
pengalaman bekerja dengan implementasi compiler). Perangkat tambahan lain termasuk microcoded
multiply dan instruksi membagi dan bus-struktur yang lebih baik disesuaikan dengan masa depan co-
prosesor (seperti 8087 dan 8089 ) dan sistem multiprosesor.

Revisi pertama dari set instruksi dan arsitektur tingkat tinggi siap setelah sekitar tiga bulan, [7] dan
karena hampir tidak ada CAD-alat yang digunakan, empat insinyur dan 12 orang tata letak secara
bersamaan bekerja pada chip. [8] The 8086 mengambil sedikit lebih dari dua tahun dari ide untuk
produk bekerja, yang dianggap lebih cepat untuk desain yang kompleks pada 1.976-1.978.

8086 disekuensing [9] menggunakan campuran acak logika [10] dan microcode dan dilaksanakan dengan
menggunakan deplesi-beban sirkuit nMOS dengan sekitar 20.000 aktif transistor (29.000 menghitung
semua ROM dan PLA situs). Ia segera dipindahkan ke proses manufaktur nMOS baru halus yang disebut
HMOS (untuk MOS kinerja tinggi) bahwa Intel awalnya dikembangkan untuk pembuatan cepat RAM
statis produk. [11] Hal ini diikuti oleh HMOS-II, III HMOS-versi, dan, akhirnya , sepenuhnya statis CMOS
versi untuk perangkat bertenaga baterai, diproduksi menggunakan Intel CHMOS proses. [12] Chip asli
diukur 33 mm ² dan ukuran fitur minimum adalah 3,2 m.

Arsitektur didefinisikan oleh Stephen P. Morse dengan beberapa bantuan dan bantuan oleh Bruce
Ravenel (arsitek dari 8087) dalam menyempurnakan revisi akhir. Logika desainer Jim McKevitt dan John
Bayliss adalah insinyur utama dari tim pengembangan hardware-tingkat dan William Pohlman manajer
untuk proyek tersebut. Warisan dari 8086 yang bertahan di set instruksi dasar komputer pribadi saat ini
dan server, sedangkan 8086 juga meminjamkan terakhir dua digit untuk kemudian versi diperpanjang
dari desain, sepertiIntel 286 dan Intel 386 , yang semuanya akhirnya menjadi dikenal sebagai x86
keluarga. (Referensi lain adalah bahwa Penjual PCI IDuntuk perangkat Intel adalah 8086.

4. Arsitektur

CPU 8086 terdiri dari dua prosesor terpisah, yaitu Bus Interface Unit (BIU) dan Execution Unit (EU). Dua
prosesor terpisah tersebut akan dijelaskan sebagai berikut :

a. Bus Interface Unit (BIU)

BIU menyediakan fungsi-fungsi perangkat keras, termasuk pembangkitan memori dan alamat I/O untuk
transfer data. BIU berfungsi mengirim kode-kode alamat keluar, mengambil instruksi dari memori serta
membaca data dari port dan memori.

Bus Interface Unit (BIU) : Register Antrian

Pada saat EU mendekode atau melaksanakan suatu instruksi, ia tidak perlu menggunakan bus sehingga
dapat digunakan oleh BIU untuk mengambil 6 byte instruksi sebagai instruksi berikutnya yang akan
dilaksanakan.Instruksi-instruksi tersebut dinamakan prefetched instruction dan oleh BIU disimpan dalam
register FIFO (First-In First-Out) yang juga disebut register antrian.Ketika EU siap melaksanakan instruksi
berikutnya, ia dengan mudah membaca instruksi-instruksi dari register antrian dalam BIU. Jadi, ketika EU
sedang melaksanakan suatu instruksi, bus dapat digunakan oleh BIU untuk menulis dan membaca
memori serta mengambil instruksi berikutnya. Teknologi yang memungkinkan pengambilan instruksi
berikutnya sambil melaksanakan instruksi yang ada dinamakan pipelining.

- Bus Interface Unit (BIU) : Register Segmen

8086 mampu mengalamati 220 lokasi memori, sedangkan panjang register IP yang dimilikinya hanya 16-
bit. Untuk memperoleh 20-bit sinyal alamat, 8086 menggunakan bantuan register segmen. Gabungan
antara register segmen 16-bit dan IP 16-bit akan menghasilkan 20-bit sinyal alamat. 8086 memiliki 4
buah register segmen yakni CS (Code Segment), SS (Stack Segment), ES (Extra Segment) dan DS (Data
Segment).

Jika suatu register segmen berisi kode misalnya CS berisi 348A, maka CS dianggap memiliki alamat awal
348A0. BIU secara otomatis akan menambahkan angka 0 di belakang isi segmen. Setiap segmen
menempati 64 Kbyte memori dan dapat ditempatkan di mana saja di dalam ruang alamat 1 Mbyte.

b. Execution Unit (EU)

EU menerima kode-kode instruksi program dan data dari BIU mengeksekusi instruksi tersebut, dan
menyimpan hasil pada register umum. Dengan melewatkan data kembali ke BIU, data dapat disimpan di
sebuah lokasi memori atau ditulis ke peralatan output. Sebagai catatan, EU tidak mempunyai koneksi
dengan bus-bus system, namun menerima dan mengeluarkan seluruh data melalui BIU. EU mengandung
rangkaian-rangkaian kontrol yang berfungsi mengarahkan operasi-operasi internal. Dekoder pada EU
menerjemahkan instruksi-instruksi yang telah diambil dari memori ke dalam urutan aksi. EU memiliki
ALU 16-bit dan dapat melakukan penjumlahan, pengurangan, AND, OR, XOR, increment, decrement,
complement atau shift bilangan biner.

- Execution Unit (EU) : Flag Register

8086 memiliki register bendera dengan panjang 16-bit. Dari 16-bit itu terdapat 9 bendera yang aktif.
Dari 9 bendera yang aktif, 6 bendera di antaranya (bendera kondisi) digunakan untuk menunjukkan
kondisi-kondisi yang dihasilkan oleh pelaksanaan instruksi yakni bendera CF (Carry Flag), PF (Parity Flag),
AF (Auxilary Carry Flag), ZF(Zero Flag), SF (Sign Flag), OF (Overflow Flag).Sedangkan 3 bendera lainnya
(bendera kontrol) digunakan untuk mengendalikan beberapa operasi prosesor. Bendera-bendera
kontrol ini berbeda dengan 6 bendera kondisi dalam hal cara set dan reset-nya. Keenam bendera kondisi
diset dan direset oleh EU, berdasarkan hasil operasi-operasi aritmatika atau logika, sedangkan 3 bendera
kontrol diset dan direset oleh instruksi-instruksi khusus yang ada pada program. Bendera itu adalah TF
(Trap Flag), IF (Interrupt Flag) dan DF (Direction Flag).

Bendera paritas (Parity Flag) akan diset (PF=1), jika pelaksanaan perintah oleh ALU menghasilkan jumlah
bit 1 genap dan reset (PF=0) jika jumlah bit 1 ganjil. Bendera Zero akan diset (ZF=1), jika operasi ALU
memberikan hasil 0. Bendera Sign akan diset (SF=1), jika pelaksanaan perintah oleh ALU menghasilkan
bilangan negatif. Bendera OF (Overflow Flag) akan diset (OF=1), jika terjadi overflow yakni jumlah bit
hasil operasi lebih besar dari lebar akumulator. Bendera TF (Trap Flag) digunakan pada mode operasi
langkah tunggal (single step atau trace). Jika bendera ini diset, maka pelaksanaan instruksi akan
dilakukan langkah demi langkah. Bendera IF digunakan untuk mengijinkan interupsi dari program.
Bendera DF digunakan pada operasi string.
- Execution Unit (EU): Register Serbaguna (General Purpose Registers)

8086 memiliki 8 buah register serbaguna yakni: AH, AL, BH, BL, CH, CL, DH, DL. Khusus untuk AL
dinamakan pula AKUMULATOR. Jika register-register tersebut akan digunakan sebagai register 16-bit,
maka pasangan AH dan AL membentuk AX, BH dan BL membentuk BX, CH dan CL membentuk CX serta
DH dan DL membentuk DX.AX merupakan akumulator, sering digunakan untuk menyimpan hasil
sementara setelah operasi aritmatika dan logika. BX sering digunakan sebagai register base untuk
menyimpan address base data yang terletak di dalam memori dan juga address base tabel data. CXdapat
digunakan sebagai register count. DX dapat digunakan sebagai register data.

5. Karakteristik

a. Karakteristik Input

Karakteristik input mikroprosesor-mikroprosesor ini kompatibel dengan semua komponen logika


standar yang tersedia saat ini. Berikut ini merupakan table level tegangan input dan persyaratan arus
input untuk semua pin input pada kedua mikroprosesor. Level arus input sangat kecil karena input
merupakan koneksi gerbang MOSFET dan hanya mempresentasikan arus bocor.

Level Logika

Tegangan

Arus

0.8V maksimum

±10 μA maksimum

2.0V maksimum

±10 μA maksimum

Tabel 1. Karakteristik Input Mikroprosesor 8086 dan 8088

b. Karakterisrik output

Level tegangan logika 1 pada 8086/8088 kompatibel dengan sebagian besar keluarga logika standar
tetapi logika 0 tidak. Rangkaian standar logika memiliki tegangan maksimum logika 0 sebesar 0.4V dan
8086/8088 memiliki maksimum 0.45V. dengan demikian ada perbedaan 0.05V.

Perbedaan ini memperkecil kekebalan terhadap noise dari level standar sebesar 400mV (0.V-0.45V)
menjadi 350 mV. Kekebalan terhadap noise adalah perbedaaan antara level tegangan output logika 0
dan level tegangan output logika 1.
Level Logika

Tegangan

Arus

0.45V maksimum

2.0 μA maksimum

2.4V mksimum

-400 μA maksimum
Tabel 2. Karakteristik Output Mikroprosesor 8086 dan 8088

6. Register dan instruksi

The 8086 memiliki delapan (lebih atau kurang umum) 16-bit register termasuk stack pointer , tetapi
tidak termasuk pointer instruksi, mendaftar bendera dan register segmen. Empat dari mereka, AX, BX,
CX, DX, juga dapat diakses sebagai dua kali lebih banyak 8-bit register (lihat gambar) sementara empat
lainnya, BP, SI, DI, SP, adalah 16-bit saja.

Karena pengkodean kompak terinspirasi oleh 8-bit prosesor, instruksi sebagian besar satu-alamat atau
dua-address operasi yang berarti bahwa hasil itu disimpan di salah satu operan. Paling banyak satu dari
operan bisa berada di memori, tetapi ini operan memori juga bisa menjadi tujuan, sedangkan operan
lain, sumber, bisa berupa register atau langsung. Sebuah lokasi memori tunggal juga bisa sering
digunakan baik sebagai sumberdan tujuan yang, antara faktor-faktor lainnya, lanjut berkontribusi pada
kepadatan kode sebanding dengan (dan sering lebih baik daripada) mesin bit yang paling delapan.

Meskipun tingkat umum dari register sebagian besar jauh lebih besar daripada di 8080 atau 8085, itu
masih cukup rendah dibandingkan dengan kontemporer khas komputer mini , dan register juga kadang-
kadang digunakan secara implisit oleh petunjuk. Sementara sempurna masuk akal bagi programmer
assembly, ini alokasi yang rumit untuk compiler dibandingkan dengan lebih teratur 16 – dan 32-bit
prosesor seperti PDP-11 , VAX , 68000 , dll, di sisi lain, dibandingkan dengan semi-kontemporer
sederhana (tapi populer dan di mana-mana) 8-bit mikroprosesor seperti6502 , 6809 , atau 8085 , itu
secara signifikan lebih mudah untuk menghasilkan kode untuk desain 8086.

The 8086 juga menampilkan 64 KB dari 8-bit (atau alternatif 32 K-kata 16-bit) I / O space. A 64 KB (satu
segmen) tumpukanberkembang menuju alamat yang lebih rendah didukung dalam hardware , 2-byte
kata didorong ke stack dan bagian atas stack ditunjuk oleh SS: SP. Ada 256 potong , yang dapat dipanggil
oleh kedua hardware dan software. Menyela dapat kaskade, menggunakan stack untuk menyimpan
alamat kembali .

Prosesor memiliki beberapa instruksi baru (tidak hadir di 8080 dan 8085) ke tumpukan dukungan yang
lebih baik berdasarkan bahasa pemrograman tingkat tinggi seperti Pascal dan PL / M , beberapa yang
lebih berguna yang mendorong mem-op, dan ukuran ret,mendukung “pascal konvensi pemanggilan
“secara langsung. (Beberapa orang lain, seperti mendorong immed dan masukkan, akan ditambahkan
dalam 80.186 berikutnya, 80286, dan 80386 desain.) Ini juga memiliki mekanisme tumpukan-penanda.
Ada tiga bendera kontrol IF (Interrupt Flag) TF (Trap Flag) DF (flag Arah).

7. Fungsi Pin Out IC Mikroprosesor 8086


AD15-AD8 Jalur bus alamat/data 8086 terdiri dari bus alamat/data bagian atas 8086. Jalur-jalur ini berisi
bit-bit alamat A15-A8 jika ALE pada logika 1, dan hubungan bus data D15-D8. Pin-pin ini memasuki
impedansi tinggi jika terjadi hold acknowledge.

A19/S6-A16/S3 Bit-bit bus alamat/status dimultipleks untuk memberikan sinyal alamat A19-A16 dan
juga bit status S6-S3. Pin-pin ini juga mempertahankan status impedansi tinggi selama hold
acknowledge. Bit status S6 selalu merupakan logika 0, bit S5 menunjukkan kondisi bit-bit flag 1F. S4 dan
S3 menunjukkan segmen mana yang diakses selama siklus bus pada saat itu. Berikut ini fungsi status bit
S3 dan S4 :

S4

S3

Fungsi

Segmen ekstra

Segmen stack

0
Kode atau tanpa segmen

Segmen data

Tabel 3.Fungsi Status Bit S3 dan S4

RD Jika sinyal baca berupa logika 0. Bus data bisa menerima data dari memori atau alat I/O yang
dihubungkan ke system. Pin ini naik ke status impedansi tinggi selama acknowledge hold.

READY Input ini dikendalikan untuk menyisipkan status tunggu ke timing mikroprosesor. Jika pin ready
diletakkan pada level logika 0 mikroprosesor memasuki status tunggu dan tidak bekerja. Jika pin ready
diletakkan pada level logika 1 tidak memiliki efek pada operasi mikroprosesor.

INTR Intrrupt request digunakan untuk meminta interrupt perangkat keras. Jika INTR dijaga tetap high
ketika IF=1. Mikroprosesor memasuki siklus interrupt acknowledge setelah instruksi pada saat itu
dijalankan sepenuhnya.

TEST Pin test merupakan input yang dites oleh instruksi wait. Jika berlogika 0 maka instruksi wait
berfungsi sebagai NOP. Jika berlogika 1 maka instruksi wait menunggu sampai TEST berlogika 0.

NMI Input non-maskable interrupt sama dengan INTR kecuali interrupt NMI tidak memeriksa apakah bit
flah 1F merupakan logika 1. Jika NMI diaktifkan, input interrupt ini menggunakan vector interrupt 2.

RESET Input reset menyebabkan mikroprosesor mereset dirinya sendiri jika pin ini tetap high selama
minimum empat periode clock.

CLK Pin clock menyediakan sinyal waktu/timming dasar ke mikroprosesor. Sinyal clock harus memiliki
siklus kerja 33% untuk memberikan timing internal yang sesuai.
Vcc Input catu daya.

GND Hubungan ground merupakan jalur kembali catu daya.

MN/MX Pin mode minimum/maksimum memilih operasi mode minimum atau maksimum untuk
mikroprosesor. Jika dipilih mode minimum pin ini harus dihubungkan langsung ke +5.0V.

BHE/S7 Pin bus high enable digunakan untuk enable bus data yang paling signifikan (D15-D8) selama
operasi baca atau tulis. Status S7 selalu merupakan logika 1.S2, S1, dan S0 Bit-bit status ini menunjukkan
fungsi siklus bus saat itu. Sinyal-sinyal ini biasanya didekode oleh bus controller 8288.RO/GT1 dan Pin-
pin request/grant ini meminta direct memory access (DMA). RO/GT0 selama operasi mode maksimum.
Jalur-jalur ini bidireksional, digunakan untuk meminta dan member hak operasi DMA. LOCK Output lock
digunakan untuk mengunci peripheral dari system. Pin ini diaktifkan dengan menggunakan awalan LOCK
untuk semua instruksi.. QS1 dan QS0 Bit queue status menunjukkan status antrian instruksi internal. Pin-
pin ini disediakan untuk akses oleh koprosesor numeric (8087). Berikut ini able status bit antrian :

QS1

QS0

Fungsi

Antrian tidak aktif

Byte pertama opcode

Antrian kosong

Byte opcode berurutan


Tabel 4. Status Bit Antrian

8. Persamaan dan Perbedaan Mikroprosesor 8086 dengan Mikroprosesor 8088

a. Persamaan

Mikroprosesor 8086 dan 8088 sama-sama terkemas dalam dual in-line package (DIP) 40-
pin.Mikroprosesor 8086 dan 8088 sama-sama membutuhkan tegangan catu sebesar +5.0V dengan
toleransi tegangan catu ± 10%. Mikroprosesor 8086 dan 8088 beroperasi pada temperature lingkungan
antara 32o F dan sekitar 180o F.

Mikroprosesor 8086 dan 8088 mempunyai karakteristik input dan karakteristik output yang sama.

b. Perbedaan

8086

8088

Lebar bus data 16-bit

Lebar bus data 8-bit

Panjang antrian instruksi 6-byte

Panjang antrian instruksi 4-byte

Mempunyai pin M/IŌ

Mempunyai pin IO/M

Pin 34 BHE/S7
Pin 34 SSO

Arus catu maksimum 360 mA

Arus catu maksimum 340 mA

Tabel 5. Perbedaan Antara Mikroprosesor 8086 dan 8088

8086 merupakan mikroprosesor 16-bit, artinya bagian ALU, register internalnya, dan sebagian besar
instruksi-instruksinya dirancang untuk bekerja pada data 16-bit.

8086 memiliki bus data 16-bit, jadi ia dapat membaca data dari atau menyimpan data ke memori dan
port-port yang ada dalam format 16-bit atau 8-bit .

8086 memiliki bus alamat 20-bit, sehingga ia dapat mengalamati 220 atau 1.048.576 lokasi memori atau
1 MB memori, sedangkan register PC atau IP (instruction pointer) yang dimilikinya panjangnya 16-bit.
Hal inilahyang merupakan keunggulan dari 8086.

Prosesor lain yang sejenis dengan 8086 adalah 8088. 8088 memiliki ALU, register, dan set instruksi yang
sama dengan 8086. 8088 juga memiliki bus alamat 20-bit, jadi ia juga bisa mengalamati memori 1 MB.

Perbedaan 8088 dan 8086, 8088 memiliki bus data 8-bit, sedangkan 8086 lebar bus datanya 16-bit. 8088
hanya dapat membaca dari atau menulisi data ke memori dan port-port dengan panjang 8-bit. Untuk
membaca word 16-bit dari dua lokasi memori, 8088 selalu mengerjakan dengan dua operasi baca. 8088
pada awalnya digunakan sebagai CPU pada The Original IBM Personal Computer.

Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen, yakni BIU (bus interface unit) dan
EU (execution unit).

BIU bertugas mengirim kode-kode alamat keluar, mengambil instruksi dari memori, dan membaca data
dari port dan memori. BIU menangani semua trnasfer data dan alamat pada bus untuk membantu EU.

EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan
instruksi

9. Microcomputers menggunakan 8086

Seattle Computer Products dikirim S-100 bus berbasis sistem 8086 (SCP200B) pada awal November
1979. The Norwegian Mycron 2000, diperkenalkan pada tahun 1980. Salah satu mikrokomputer paling
berpengaruh dari semua, PC IBM , menggunakan Intel 8088 , sebuah versi dari 8086 dengan delapan-bit
data bus (seperti yang disebutkan di atas).
Yang pertama Compaq Deskpro menggunakan sebuah berjalan pada 8086 MHz 7,14, (?) tapi mampu
menjalankan add-in kartu yang dirancang untuk 4,77 MHz IBM PC XT . Sebuah 8 MHz 8086 digunakan
dalam PC AT & T 6300 (dibangun oleh Olivetti ), sebuah desktop yang mikro IBM PC yang kompatibel.
The M24 / PC 6300 memiliki IBM PC / XT kompatibel 8-bit slot ekspansi, namun beberapa dari mereka
memiliki ekstensi proprietary menyediakan bus 16-bit data penuh dari CPU 8086 (mirip dalam konsep ke
16-bit slot dari IBM PC AT , tetapi berbeda dalam rincian desain, dan secara fisik tidak kompatibel).

The IBM PS / 2 model 25 dan 30 dibangun dengan 8 MHz 8086. The Amstrad PC1512 , PC1640, PC2086,
PC3086 dan PC5086 semua digunakan CPU 8086 pada 8 MHz.

The NEC PC-9801 .

The Tandy 1000 SL-series dan RL mesin yang digunakan CPU 8086.

The Displaywriter IBM kata mesin pengolah dan Komputer Wang profesional, diproduksi oleh Wang
Laboratories , juga menggunakan 8086.

NASA menggunakan original 8086 CPU pada peralatan untuk tanah berbasis pemeliharaan Space Shuttle
Discovery sampai akhir program pesawat ulang-alik pada tahun 2011. Keputusan ini dibuat untuk
mencegah regresi software yang mungkin timbul dari upgrade atau dari beralih ke klon sempurna.

Anda mungkin juga menyukai