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
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]
Referensi
Tidak ada komentar:
Posting Komentar