Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehRika Zain Telah diubah "10 tahun yang lalu
2
Register di dalam 8088/8086 Nama Register Bit Katagori AX,BX,CX,DX 16
general AH,AL,BH,BL,CH,CL,DH,DL 8 SP,BP pointer SI,DI index CS,DS,SS,ES segment IP instruction FR flag Catatan : register general 16 bit tidakbisadigunakanbersamaandengan register general 8 bit, contoh : movax,bltidakdilayani
3
External Memory Address Space
Peta memori dan I/O 8088/8086 00000 External Memory Address Space Code segment 64 k byte Data Segment 64 K Byte Stack segment 64 k Byte Extra Segment 0000 IP Input / output Address space CS DS SS ES AH AL BH BL CH CL DH DL Limit PC 9FFFF SP BP SI DI FFFF FFFFF
4
Peta Memori ? FFFFF Data Program Aplikasi Program 00200
Operating System BIOS 00000 8 bit
5
Segmentasi Membagi memori menjadi blok-blok 64 kB secara dinamis
Dipisahkan blok memori menjadi blok fungsi 64 kB untuk program Code Segment 64 kB untuk data Data Segment 64 kB untuk stack Stack Segment 64 kB untuk tambahan data (option) Extra Segment
6
StatisvsDinamis 64 KB SS 64 KB 64 KB ES 64 KB ES 64 KB DS 64 KB 64 KB
CS 64 KB 64 KB DS 64 KB 64 KB 64 KB 64 KB CS 64 KB OS OS 64 KB 64 KB BIOS BIOS 64 KB StatisvsDinamis
7
Segment Karena tersedia lebih dari 4 segment, maka bisa dibuat lebih dari 1 kelompok segment multi tasking Pindah program (task) hanya mengubah segment Setiap program bisa dimulai dari alamat 0000 Program1 Program2 Program3 0000 0000 0000
8
X Contoh : DS FFFFF 0064 2070F DS : XXXX DS 0700 20700 DS : 2000 DS
0100 10100 DS : 1000 00000
9
Perhitungan alamat fisik (Physical Address)
Segmen untuk Program : Format : CS : IP IP=95F3 Adder physical address A0-A19=2E5F3 CS=2500 Geser kiri CS satu digit Segmen untuk Data : Format : DS : EA (Effective Address) EA=95F3 Adder physical address A0-A19=2E5F3 DS=2500 Geser kiri DS satu digit
10
physical address A0-A19=2E5F3 Geser kiri SS satu digit
Perhitungan alamat fisik (Physical Address) Cont’d Segmen untuk Stack : Format : SS : SP SP=95F3 Adder physical address A0-A19=2E5F3 SS=2500 Geser kiri SS satu digit Note : Physical Address Logical Adress
11
Ciri alamat segment Tidakbisadiletakkandialamatawalselain xxxx0
Alamatsegmenterakhirpasti F000 Contoh: CS= F100 tidakboleh Min CS:IP F100:0000 alamatfisik F1000 Maks CS:IP F100:FFFF alamatfisik 100FFF diluarbatasmaksimum FFFFF
12
Contoh lain CS:1000, offset : FFFF fisik : 1FFFF
Fisik:2FFFF, ES:2100 offset:EFFF
13
H/W Segment Data Stack Program IP offset CS segment
BIU C - BUS Program IP offset CS segment Data Offset sesuai mode pengalamatannya DS segment Stack SP offset SS segment 4 ES INSTRUCTION STREAM 3 CS BYTE 2 QUEUE SS 1 DS IP CONTROL SYSTEM A - BUS EU AH AL BH BL CH CL ALU DH DL SP BP OPERAND SI FLAGS DI
14
H/W alamat Alamat program IP offset CS segment
BIU C - BUS Alamat program IP offset CS segment Fisik:IP + CS(digeser) Contoh IP:2345 4 ES INSTRUCTION STREAM 3 CS BYTE 2 QUEUE SS 1 DS IP CONTROL SYSTEM A - BUS EU AH AL BH BL CH CL ALU DH DL SP BP OPERAND SI FLAGS DI
15
Asumsi : SP=1236,AX=24B6,DI=85C2,DX=5F93
Perintah PUSH Asumsi : SP=1236,AX=24B6,DI=85C2,DX=5F93 Perhatikan isi stack setiap dijalankan perintah sbb: PUSH AX PUSH DI PUSH DX PUSH DX PUSH DI PUSH AX start SS:1236 24 SS:1235 B6 SS:1234 85 SS:1233 C2 SS:1232 5F SS:1231 93 SS:1230
16
Perintah POP Asumsi : SP=1230, 24 B6 85 C2 5F 93
Perhatikan isi stack setiap dijalankan perintah berikut : POP AX POP DX POP BX POP BX POP DX POP AX START SS:1236 24 SS:1235 B6 SS:1234 85 SS:1233 C2 SS:1232 5F SS:1231 93 SS:1230
17
INSTRUKSI KENDALI Adalah instruksi untuk mengatur dan mengarahkan alur program dan terkadang arah suatu program perlu di belokan atau dicabangkan. Beberapa contoh instruksi kendali yg digunakan adalah : JMP(lompat) ,LOOP(kalang), CALL(memanggil prosedur), RET(kembali ke program utama) dan INT (interupsi)
18
1. Lompatan (JMP) Instruksi akan menyebabkan program tersebut melompati bagian tertentu pd program dan mengeksekusi instruksi yg di kehendaki, ada 2 jenis lompatan yaitu: a. lompat tak bersyarat (unconditional jump) b. Lompat bersyarat (conditional jump)
19
A. Lompatan tak bersyarat adalah jenis lompatan ke lokasi memori tertentu tanpa ada pengecekan kondisi tertentu. Ada 3 jenis lompatan tak bersyarat yaitu : 1. Lompatan pendek (short jump) adalah instruksi yg mengizinkan program melakukan lompatan sejauh-jauhnya kurang lebih 127 byte ke depan atau ke belakang , dan lompatan pendek terdiri dari 2 byte(1 byte opcode dan 1 byte operand) Contoh : JMP SHORT 04h
20
2.Lompatan dekat (near jump)
Pada dasarnya sama dengan lompatan pendek tetapi jangkauannya hanya 32 byte. Instruksi lompatan ini memp 3 byte yaitu 1 byte untuk opcode dan 2 byte untuk opperand. Contohnya : JMP 0200h
21
3. Lompatan jauh (far jump)
Instruksi yg mengizinkan program melakukan lompatan ke seluruh daerah memory. Instruksi ini terdiri dari 5 byte,1 byte opcode,2 byte pertama operand untuk menunjukan alamat offset yg baru dan 2 byte terakhir operand untuk menunjukan alamat segmen yg baru. Syntaksnya adalah : JMP IP low Ip high CS low Cs high
22
B. Lompatan Bersyarat Seringkali lompatan bersyarat ini merupkn lompatan pendek atau dekat. Biasanya didahului dengan instruksi pengujian (CMP atau TEST). Lompatan bersyarat akan mengecek kondisi bit-bit flag register : S (sign), Z (zero),C (carry),P (parity) dan O (over flow) jika yg dicek benar maka lompatan bersyarat ke alamat yg dituju akan dilakukan, sedangkan apabila salah maka yg di eksekusi adalah baris instruksi yg berikutnya.
23
Contoh-contohnya : JA kondisi yg di cek : C=0,Z=0 JAE kondisi yg dicek : C=0 JB kondisi yg dicek : C=1 JBE kondisi yg dicek : C=1, Z=1 JG kondisi yg di cek : Z=0, S=0 JGE kondisi yg di cek : S=0
24
KALANG ( LOOP) Operasi kalang digunakan untuk mengulangi proses tertentu sebanyak cacah tertentu. Jumlah cacah perulangan diletakan di register counter (CX atau ECX) operasi loop akan mengurangi isi register counter dengan 1(decrement) dan bila isi register counter bernilai 0 maka perulangan akan dihentikan.
25
MEMANGGIL PROSEDUR(CALL) DAN KEMBALI KE PROGRAM UTAMA (RET)
1. Near CALL dan Near RET. Pada dasarnya near call mirip dengan Near jmp yaitu jangkauannya 32 Kbyte. Instruksi ini mempunyai 3 byte opcode dan 2 byte operand untuk menunjukan displacement. Suatu instruksi call merupakan near call apabila prosedur yg di panggil tersebut adalah near prosedur, dan secara otomatis instruksi RET nya adalah Near RET.
26
2. Far Call dan Far RET Far call mirip dengan far jmp (jangkauannya seluruh daerah memory) instruksi far call terdiri dari 5 byte : 1 byte opcode,2 bytepertama operand untuk menunjukan alamat ofset yg baru dan 2 byte terakhir operand untuk menunjukan alalmat segmen yg baru. Suatu instruksi CALL merupakan far call bila prosedur yg dipanggil tersebut adalah Far prosedur dan secara otomatis instruksi RET nya ADALAH Far RET.
27
INTERUPSI(INTERRUPT)
Interupsi adalah permintaan khusus kepada mikroprosessor untuk melakukan sesuatu. Bila terjadi interupsi maka akan dihentikan dahulu apa yg sedang dikerjakan dan melayani permintaan khusus tersebut.
28
1. Vektor interupsi Adalah sebuah interupsi 4 byte yg disimpan pada 1024 byte pertama memory(000000h-0003FFFh) jika MP dijalankan pada real mode(dalam protected mode,tabel vektor ini digantikan oleh deskriptor-deskriptor)
29
2. Interupsi pada PC (personal computer)
Berbeda dengan intrupsi pada interupsi di atas sebab PC pada awal di kembangkan berbasis dengan tabel tersendiri.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.