ELEKTRONIKA DIGITAL
TEORI ANTARMUKA
Sistem Komputer • Komputer terdiri dari CPU, Memory dan I/O (Arsitektur
Von-Neumann) • Komponen komputer dihubungkan oleh bus.
• Ada tiga bus dalam sistem komputer • Alamat (address bus) • Data (data bus) • Kontrol (control bus)
Sistem Komputer
uC Intel • Misalkan µP 8088, Intruksi kontrol untuk memory dan I/O
berbeda, yaitu Read dan Write untuk Memory, serta In dan Out untuk I/O. • I/O sendiri dipergunakan untuk mentransmisikan data dari luar ke
CPU (input) atau sebaliknya, dari CPU ke luar (output).
Register uC 8088 • Register : • Memory internal uC • uC 8088 memiliki 4 Kelompok register 16 bit • Data Register • Pointer dan Index Register • Flag Register dan Instruction Pointer • Segment Register
Data Register uC 8088 • Terdiri dari 4 register 16 bit,
• Tiap register dapat dipisah menjadi dua register 8 bit. • Register-register tersebut adalah : • AX (accumulator) • BX (base) • CX (count) • DX (data)
• Huruf-huruf ‘H’ dan ‘L’ menyatakan status sebagai high
byte atau low byte dan dapat digunakan secara terpisah
• Register AX • berfungsi sebagai accumulator • berhubungan dengan operasi-operasi khusus seperti IN, OUT, perkalian, pembagian dan lain-lain.
• Register BX • dipergunakan sebagai register basis untuk mereferensikan lokasi memory. Dalam hal ini BX menyimpan alamat basis bagi suatu tabel atau array yang lokasi spesifiknya direferensikan dengan menambahkan nilai offset.
• Register CX • berfungsi sebagai register pencacah 16-bit untuk mencacah banyaknya byte atau kata dalam string data tertentu selama pelaksanaan operasi-operasi string dan dalam operasi-operasi loop. • Sedangkan register CL yang merupakan bagian dari register CX dipergunakan dalam operasi geser (shift) dan rotasi.
• Register DX • dipergunakan dalam operasi perkalian untuk menyimpan sebagian dari hasil kali 32-bit, atau dalam operasi pembagian untuk menyimpan suatu nilai sisa. Dapat juga dipergunakan dalam operasi IN dan OUT untuk menspesifikasikan alamat port I/O yang dipakai.
Pointer & Index Register • Register sendiri terbagi dalam 4 register 16-bit yang tak
dapat dipisah seperti Data Register. • Register yang termasuk dalam kelompok ini adalah : • SP (stack pointer) • BP (Base Pointer)
• SI (Source Index) • DI (Destination Index).
• Register index dan pointer dipakai untuk menyimpan nilai
offset guna mengakses lokasi-lokasi memory tertentu yang lazim digunakan, seperti lokasi puncak stack atau blok-blok data dalam suatu segment seperti array serta record-record individual.
• SP dan BP dipakai untuk menyimpan nilai-nilai offset
segment stack memori • SI dan DI, digunakan untuk menyimpan nilai-nilai offset
dalam segment data memori. • Register SP merupakan stack pointer yang menunjukkan
lokasi puncak stack. • Penunjuk stack merupakan register yang secara implisit dipakai
oleh instruksi PUSH dan POP yang menyimpan dan mendapatkan kembali data dari stack.
• Register SI • dipergunakan sebagai register indeks dalam modus pengalamatan tak-langsung tertentu. • Juga digunakan untuk menyimpan offset untuk mengalamati lokasi suatu operand sumber selama berlangsungnya operasi string. • Register DI • mempunyai fungsi yang hampir sama dengan register SI di atas, bedanya register ini menunjukkan lokasi suatu operand tujuan selama berlangsungnya operasi string.
Flag Register dan Instruction Pointer • Register Flag adalah sebuah register 2-byte yang berisi
sembilan bit flag yang digunakan untuk menyatakan berbagai kondisi selama pelaksanaan suatu program. • Bit 0, 2, 4, 6, 7, dan 11 berisi flag-flag status yang menyatakan
hasil operasi-operasi program. • Bit 8 sampai 10 berisi flag-flag pengendali • Bit 1, 3, 5, dan 12 sampai 15 tidak dipergunakan.
Flag Register dan Instruction Pointer
• Instruction Pointer dipergunakan untuk melokasikan
posisi dalam Code Segment pada saat yang bersangkutan, maka suatu alamat 20-bit tertentu dalam segment tersebut dilokasikan dengan menggunakan IP sebagai offset dari CS.
Segment Register • Daerah-daerah memory yang disediakan bagi program,
data dan stack dialamatkan secara terpisah, walaupun daerah-daerah ini mungkin saja saling bertumpang tindih. Pada setiap saat tersedia empat blok memori yang dapat dialamatkan, yang dinamakan segment dan masingmasing panjangnya 64K
Segment Register
• Register-register segment yang disediakan yaitu CS, DS,
SS dan ES yang masing-masing dipakai untuk menunjukkan keempat segment memory yang dapat dialamati : Code Segment, Data Segment, stack Segment dan Extra Segment
• Lokasi memory tertentu dalam suatu segment
dialamatkan dengan menambahkan suatu nilai offset kepada register segment yang bersangkutan. Sebagai contoh, alamat instruksi program berikutnya yang harus dilaksanakan dihitung dengan menambahkan nilai Instruction Pointer kepada nilai Code Segment (CS). Akan tetapi, suatu lokasi memory harus dialamatkan dengan suatu nilai alamat 20-bit, sedangkan CS maupun IP hanya berisi nilai-nilai 16-bit. Oleh karena itu alamat sepenuhnya dihitung dengan menggeser isi register CS empat bit ke kiri dan mereset bit 0 sampai 3 ( sama saja dengan mengalikan CS dengan 16), kemudian menambahkan nilai 16-bit yang terkandung dalam IP.
• Lokasi-lokasi dalam ketiga segmenet yang lain dapat dihitung
•
• • •
dengan cara yang sama, sedangkan kombinasi register segment dan offset bergantung pada jenis operasi yang sedang dilaksanakan. Secara umum, jika tidak ditentukan oleh pemakai, maka akan berlaku aturan-aturan ; Jika dipakai offset BX, SI atau DI maka alamat operand diasumsikan berada dalam Data Segment (DS). Jika offset yang dipakai adalah SP atau BP, maka operand akan dianggap tersimpan dalam Stack Segment (SS). Sedang untuk instruksi string, untuk source (sumber) digunakan offset SI dengan Data Segment (DS), dan untuk destination (tujuan) dipakai offset DI dengan Extra Segment (ES).
Cara untuk menentukan address 20-bit dari segment dan offset yang masingmasing 16-bit.
Slot PC • ISA • International Standard Architecture • PCI • Peripheral Component Interconnect
Fungsi pin-pin pada slot ISA IMB PC • D0 – D7 (Data 0 – Data 7) • Data bus 8088, 8 bit, bidirectional. • ~MEMR dan ~MEMW • Menandakan µP sedang melakukan pembacaan / penulisan memori. • ~IOR dan ~IOW • Menandakan µP sedang melakukan pembacaan / penulisan rangkaian I/O • ALE ( Address Latch Enable ) • Menandakan AD0 – AD7 dan A8 – A19 µP 8088 berisi A0 – A19. • AEN ( Address Enable ) • Saat aktif menandakan komputer sedang mengadakan memory refresh
Rangkaian Interface output
Rangkaian Interface input