PENGANTAR ARSITEKTUR
MCS-51 (AT89C51/AT89S51)
Memori
Internal 89S51
Memori internal 89S51
terdiri dari 3 bagian yaitu ROM, RAM dan SFR
1. ROM
/ Read Only Memory adalah memori tempat menyimpan program / source code.
Sifat ROM adalah non-volatile, data atau
program tidak akan hilang walaupun tegangan supply tidak ada.
Kapasitas ROM tergantung dari tipe
mikrokontroler. Untuk AT89S51 kapasitas ROM adalah 4Kbyte.
ROM pada AT89S51 menempati addres 0000
sampai dengan 0FFF.
2. RAM
/ Random Access Memory adalah memori tempat penyimpanan data sementara.
Sifat RAM adalah volatile, data akan
hilang jika tegangan supply tidak ada.
Kapasitas RAM
tergantung pada tipe mikrokontroler. Pada AT89S51 RAM di bagi menjadi dua yaitu
:
·
LOWER 128byte yang menempati address 00
sampai dengan 7F.
RAM ini dapat di akses dengan
pengalamatan langsung (direct) maupun tak langsung (indirect)
Contoh :


Mov @R0,
#120 ; Pindahkan data 120 ke RAM pada
address sesuai isi RO.
·
UPPER 128 byte yang menempati address 80
sampai dengan FF. Address ini sama dengan address SFT meski secara fisik
benar-benar berbeda.
RAM ini hanya dapat di akses dengan
pengalamatan tak langsung saja.
3.
SFR / Special Function Register adalah
register dengan fungsi tertentu. Misalnya, register TMOD dan TCON adalah timer
control register yang berfungsi mengatur timer mikrokontroler.
SFT
pada AT89S51 menempati address 80 sampai dengan FF.
Keterangan :
Gambar di atas adalah peta memori internal 89S51 yang
terdiri dari RAM, SFR dan ROM
Tampak bahwa ada kesamaan address antara RAM, SFR dan ROM
yaitu address 00 sampai dengan FF
Atas pertimbangan inilah maka biasanya source code ditulis
setelah address 00FF yaitu 0100 pada ROM
Hal ini di maksudkan agar data RAM dan SFR tidak terisi oleh
byte source code.
mikroprosessor
Mikroprosesor yang dipelajari di lab
adalah mikroprosesor 8085. mikroprosesor ditanamkan kedalam trainer kit midicom
intel 8085. trainer kit mikroprosesor ini memiliki : PIO(Paralel Input Output)
0 dengan address 50 dan PIO 1 dengan address 40EPROM dengan alamat
0000- 3FFFRAM 5buah dengan alamat
6000-FFFF
TIMER
MEMORYDECODER
Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya. Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya.
MEMORYDECODER
Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya. Sebuah konektor serial RS232 digunakan untuk keyboard, dan output video dihubungkan menggunakan monitor. Terdapat tombol merah [RESET], digunakan jika trainer kit mengalami error. Kit ini memiliki super cap, yang akan digunakan untuk menjaga agar RAM dapat menyimpan data walaupun supply dimatikan. super cap ini cukup untuk menjaga data pada RAM setidaknya dalam kurun waktu 2 minggu sejak trainer kit tidak diberi catu daya.
pada bagian kanan dari trainer kit terdapat 8 buah led yang digunakan sebagai indikator output 8 bit atau 1 byte.
ketika akan melakukan coding, lalu menyimpan di memory, maka data harus disimpan di address 7000-FFFF. karena address 6000-7000 digunakan untuk sistem.
Register-register pada trainer kit diantaranya adalah :
A 8 bit
B
C
D
H
L
M
F
S
P
PC 16bit
register PC (Program Counter) menunjukan alamat berikutnya yang akan dieksekusi.
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 penggunaan 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, 80186, 80286, 80386 dan 80486, mikrocontrolller seperti yang masih digunakan sekarang. lihat daftar lengkap di bawah
komputer mikro Yang paling berpengaruh untuk penggunaan 8088, atau lebih dikenal IBM PC. pengolah PC yang mampu berjalan di clock frequency
4.77 MHz.Suatu clone populer dengan menggunakan 8088 adalah Model D,
dimana tombol pilihan dapat berjalan pada clock 4.77 MHZ atau 7.16 MHZ.
sepertinya insinyur IBM ingin menggunakan Motorola 68000, dan akan
digunakan kemudian dalam IBM yang menggunakan Instrumen 9000 pada
Laboratorium Komputer, namun IBM telah mempunyai hak-hak untuk membuat
keluarga 8086, sebagai pertukarannya dengan memberi Intel hak-hak untuk
membuat disain bubble memory.
Suatu faktor yang menggunakan 8-Bit Intel 8088 versi adalah dapat
digunakan di luar tipe komponen Intel 8085, dan mengijinkan pembuatan
komputer yang didasarkan pada suatu dimodifikasi dari desain 8085. 68000
komponen tidak tersedia secara luas pada waktu itu, dengan pemikiran
menggunakan komponen Motorola 6800 sebagai pertukarannya. Intel bubble
memory untuk semetara tersedia dipasaran, namun Intel memindahkan
pasarnya untuk Japanese corporations yang bisa memotong anggaran, dan
meninggalkan pasar memory dan berfocus pada prosesor.
Suatu compatible pengganti chip, V20, merupakan produksi dari NEC dimana dapat melebihi kemampuan 20 persen dalam computing power.
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. <b>[muchad
2008]</b>
Sumber : http://id.wikipedia.org/wiki/Intel_8088 ,
http://muklis87.blogspot.com/2013/06/set-instruksi-mikroprosesor-8088.html