ittelkom - · pdf filefungsi pin 24 s/d 31 dari 8088 dan 8086 berubah sesuai mode yang...
TRANSCRIPT
1
LOGO
Oleh. Junartho Halomoan ([email protected])
Mikroprosesor dan AntarmukaDasar Mikroprosesor Intel 8088
Dasar Sistem Komputer [1]
JUN - I
TTELKOM
2
Mikroprosesor
Memory I/O
Data Bus
Address Bus
Control Bus
Dasar Sistem Komputer [2]
Dasar Sistem Komputer [3]
JUN - I
TTELKOM
3
Dasar Sistem Komputer [4]
Arsitektur Bus ada 3 buah:
Address:
If I/O, a value between 0000H and FFFFH is issued. If memory, it depends on the architecture: 20-bits (8086/8088) 24-bits (80286/80386SX) 25-bits (80386SL/SLC/EX) 32-bits (80386DX/80486/Pentium) 36-bits (Pentium Pro/II/III)
Dasar Sistem Komputer [5]
Data:
8-bits (8088) 16-bits (8086/80286/80386SX/SL/SLC/EX) 32-bits (80386DX/80486/Pentium) 64-bits (Pentium/Pro/II/III)
Control:
Most systems have at least 4 control bus connections (active low). MRDC (Memory ReaD Control), MWRC, IORC
(I/O Read Control), IOWC (I/O Write Control), .
JUN - I
TTELKOM
4
Dasar Sistem Komputer [5]
Dasar Sistem Komputer [6]
JUN - I
TTELKOM
5
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
Data
Bus
GND
A14
A13
A12
A11
A10
A9
A8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
A15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
SS0
MN/MX
RD
WR
IO/M
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328088
Konfigurasi Pin 8088 [1]
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
INTR: Interrupt Request
-Aktif pada saat level high
-Masukan
-Di monitor pada cycle clock
terakhir setiap instruksi
NMI: Nonmaskable interrupt
-Positif Edge triggered signal
-Masukan
-Tidak dapat di-masked
(enable/disable) secara s/w
Konfigurasi Pin 8088 [2]
JUN - I
TTELKOM
6
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
Clock
- Mikroprosesor membutuhkan clock
untuk sinkronisasi semua aktifitasnya
- Maksimum 10 MHz
- Clok generator : i8284
Konfigurasi Pin 8088 [3]
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
Reset
•Menghentikan aktifitas mp saat itu
•masukan
•Aktif ‘high’
•Kondisi register di dalam
mikroprosesor setelah reset:
Contentsregister
FFFFHCS
0000HDS
0000HSS
0000HES
0000HIP
0000HFLAG
KosongQUEUE
Konfigurasi Pin 8088 [4]
JUN - I
TTELKOM
7
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
READY:
•Masukan
•Aktif ‘high’
•Digunakan untuk memasukkan
waktu tunggu (wait state), untuk
akses memori atau I/O yang
lambat.
Konfigurasi Pin 8088 [5]
GND
AD14
AD13
AD12
AD11
AD10
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
A16/S3
A17/S4
A18/S5
A19/S6
HOLD
HLDA
ALE
READY
RESET
BHE/S7
MN/MX
RD
WR
M/IO
DT/R
DEN
INTA
TEST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
31
30
29
28
27
26
25
24
23
22
21
40
39
38
37
36
35
34
33
328086
Mode Min
Logic 1
Mode Max
Logic 0
0GT/ RQ
1GT/ RQLOCK
S2S1
0S
QS0QS1
* Pin-pin diatas digunakan untuk sinyal kontrol memori dan I/O
Konfigurasi Pin 8088 [6]
Fungsi pin 24 s/d 31 dari 8088 dan 8086 berubah sesuai mode yang
digunakan, max atau min
JUN - I
TTELKOM
8
Bus Timing [1]
Writing:
Dump address on address bus. Dump data on data bus. Issue a write (WR) and set M/IO to 1.
Bus Timing [2]
Reading:
Dump address on address bus. Issue a read (RD) and set M/IO to 1. Wait for memory access cycle.JU
N - ITTELK
OM
9
Bus Timing [3]
Bus Timing [4]
During T1:
The address is placed on the Address/Data bus. Control signals M/IO, ALE and DT/R specify memory or I/O, latch the
address onto the address bus and set the direction of data transfer on data bus.
During T2:
8086 issues the RD or WR signal, DEN, and, for a write, the data. DEN enables the memory or I/O device to receive the data for writes and the 8086 to receive the data for reads.
During T3:
This cycle is provided to allow memory to access data. READY is sampled at the end of T2. If low, T3 becomes a wait state. Otherwise, the data bus is sampled at
the end of T3. During T4:
All bus signals are deactivated, in preparation for next bus cycle. Data is sampled for reads, writes occur for writes.
JUN - I
TTELKOM
10
ESCSSSDS
4321
CONTROLSYSTEM
AH ALBH BLCH CLDH DL
SPBPSIDI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTIONSTREAM
BYTEQUEUE
A- BUS
BIU
EU
Diagram Internal intel 8088
Fungsi BIU (BUS Interface Unit)
Sebagai antarmuka (pengalamatan) dengan peripheral di luar mikroprosesor.
Bertanggung jawab terhadap semuaoperasi bus eksternal, seperti : Instruction fetch Operasi baca-tulis memori atau I/O Antrian instruksi dan perhitungan alamat (PA)
JUN - I
TTELKOM
11
Fungsi EU (Execution Unit)
Bertanggung jawab terhadap decoding danexecuting instruksi
Mengambil instruksi dari Queue Transfer data dari dan ke general purpose
RegistersCheck & update flag .Perhitungan alamat operand (EA)Memberi perintah ke BIU untuk operasi memori
atau I/O
Register 8088/8086 [1]
JUN - I
TTELKOM
12
Nama RegisterBitKategori
AX,BX,CX,DX16general
AH,AL,BH,BL,CH,CL,DH,DL8
SP,BP16pointer
SI,DI16index
CS,DS,SS,ES16segment
IP16instruction
FR16flag
Catatan : register general 16 bit tidak bisa digunakan bersamaan dengan
register general 8 bit, contoh : mov ax,bl tidak dilayani
Register 8088/8086 [2]
Register General Purpose [1]
EAX: Accumulator: Referenced as EAX, AX, AL or AH.
Used for mult, div, etc. Used to hold an offset.
EBX: Base Index:
Used to hold the offset of a data pointer. ECX: Count:
Used to hold the count for some instructions, REP and LOOP.
Used to hold the offset of a data pointer.
JUN - I
TTELKOM
13
Register General Purpose [2]
EDX: Data:
Used to hold a portion of the result for mult, of the operand for div.
Used to hold the offset of a data pointer. EBP: Base Pointer:
Holds the base pointer for memory data transfers. EDI: Destination Index:
Holds the base destination pointer for string instructions.
ESI: Source Index:
Holds the base source pointer for string instructions.
Register Special Purpose
EIP: Instruction Pointer:
Points to the next instruction in a code segment. 16-bits (IP) in real mode and 32-bits in protected
mode. ESP: Stack Pointer:
Used by the stack, call and return instructions. EFLAGS:
Store the state of various conditions in the microprocessor
JUN - I
TTELKOM
14
Register Flag [1]
5 flag bit yang paling kanan berubahsesudah instruksi operasi aritmatikadan operasi logika sedangkan instruksioperasi transfer data dan kontrol tidakmerubah register flag
Register Flag [2]
C (Carry):
Holds the carry out after addition or the borrow after subtraction.
Also indicates error conditions. P (Parity):
0 for odd number of bits and 1 for even. Obsolete feature of the 80x86.
A (Auxiliary Carry):
Highly specialized flag used by DAA and DAS instructions after BCD addition
or subtraction.
JUN - I
TTELKOM
15
Register Flag [3]
Z (Zero):
1 if the result of an arithmetic or logic instruction is 0. S (Sign):
1 if the sign of the result of an arith. or logic instruction is negative.
T (Trap):
Trap enable. The microprocessor interrupts the flow of instructions on conditions
indicated by the debug and control registers.
Register Flag [4]
I (Interrupt):
Controls the operation of the INTR (Interrupt request) pin. If 1, interrupts
are enabled. Set by STI and CLI instructions.
D (Direction):
Selects with increment or decrement mode for the DI and/or SI registers during
string instructions. If 1, registers are automatically decremented. Set by
STD and CLD instructions.
O (Overflow):
Set for addition and subtraction instructions.
JUN - I
TTELKOM
16
Register Segment [1]
CS (Code Segment):
In real mode, this specifies the start of a 64KB memory segment. In protected mode, it selects a descriptor. The code segment is limited to 64KB in the
8086-80286 and 4 GB in the 386 and above.
Register Segment [2]
DS (Data Segment):
Similar to the CS except this segment holds data. ES (Extra Segment):
Data segment used by some string instructions to hold destination data.
SS (Stack Segment):
Similar to the CS except this segment holds the stack. ESP and EBP hold offsets into this segment.
FS and GS: 80386 and up.
Allows two additional memory segments to be deÞned.
JUN - I
TTELKOM
17
Akses Memori
Sebelum 8088, uP mepunyai memorisekitar 64 kB
Digunakan untuk penyimpan : os, program aplikasi dan data
Peta Alamat Memori & I/O i8088
External Memory Address Space
Code segment
64 k byte
Data Segment
64 K Byte
Stack segment
64 k Byte
Extra Segment
64 k Byte
IP
SPBPSIDI
CSDSSSES
AH ALBHCHDH
BLCLDL
Input / output
Address space
00000
FFFFF
0000
FFFFLimit PC
9FFFF
JUN - I
TTELKOM
18
Peta Alamat I/O i8088/86
BIOS
Peta Memori [1]
8 bit
00000
FFFFF
Operating System
Program
AplikasiProgram
Data
00200
?
JUN - I
TTELKOM
19
Peta Memori [2] - App. 48 kB
Aplikasi : 48 kB
Dimisalkan pembagian besar memori aplikasiuntuk data dan program adalah sebagaiberikut:
• 10 kB <= data• 38 kB <= program
Besar memori untuk bagian data biasanyalebih kecil dibandingkan bagian program Tentukan alamat memori program dan data
dengan tanpa segmentasi atau menggunakansegmentasi
Peta Memori [3]- App. 48 kB
Tanpa segment:
Alamat Program Alamat awal program 200h Alamat akhir program 99FFhAlamat Data Alamat awal data 9A00h Alamat akhir data C1FFh
Contoh: Ambil data ke-100 acc
mov acc,[9A64]
Dengan segmen
Alamat Program Alamat awal program 0000h
di Code Segment Alamat akhir 97FFh di Code
SegmentAlamat Data Alamat awal data 0000h di
Data Segment Alamat akhir data 27FFh
Contoh : Ambil data ke-100 acc
mov acc,[0064]
JUN - I
TTELKOM
20
Peta Memori [4] - Segmentasi
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
Statis vs Dinamis
BIOS
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB
64 KB64 KB
64 KB64 KB
64 KB
64 KB
64 KB
64 KB
OS
BIOS
DS
SS
CS
ES
OS
CS
DS
SS
ES
Peta Memori [5]-statis/dinamis
JUN - I
TTELKOM
21
Peta Memori [6]-MultiSegment
Karena tersedia lebih dari 4 segment, maka bisa dibuat lebih dari 1 kelompok segment
multi tasking Pindah program (task) hanya mengubah
segmentSetiap program bisa dimulai dari alamat 0000
Program1
0000
Program2
0000
Program3
0000
Peta Memori [7]-Contoh Dinamis
00000
FFFFF
DS
10100 DS =10000100
DS
0700 20700 DS = 2000
DS
0064 2070F DS = XXXX
CS
CS
CSJUN - I
TTELKOM
22
Segmen untuk Program
Format : CS : IP
physical address A19-A0=2E5F3IP=95F3
CS=2500 0Adder
Geser kiri CS satu digit
Segmen untuk Data
Format : DS : EA (Effective Address)
physical address A19-A0=2E5F3EA=95F3
DS=2500 0Adder
Geser kiri DS satu digit
Perhitungan alamat fisik [1]
Segmen untuk Stack
Format : SS : SP
physical address A19-A0=2E5F3SP=95F3
SS=2500 0Adder
Geser kiri SS satu digit
Perhitungan alamat fisik [2]
JUN - I
TTELKOM
23
H/W Segment
Program
IP offset
CS segment
Data Offset sesuai mode
pengalamatannya
DS segment
Stack SP offset
SS segment
ES
CSSS
DS
432
1
CONTROL SYSTEM
AH ALBH BL
CH CL
DH DL
SP
BPSI
DI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTION
STREAM
BYTE
QUEUE
A- BUS
BIU
EU
Perhitungan alamat fisik [3]
H/W Alamat
Alamat program
IP offset CS segment Alamat Fisik:
IP + CS(digeser)
ES
CSSS
DS
4
32
1
CONTROL SYSTEM
AH ALBH BL
CH CL
DH DL
SP
BPSI
DI
OPERANDFLAGS
C-BUS
IP
ALU
INSTRUCTION
STREAM
BYTE
QUEUE
A- BUS
BIU
EU
Perhitungan alamat fisik [4]
JUN - I
TTELKOM
24
Perhitungan alamat fisik [5]
Contoh:
Jika CS=24F6H dan IP=634AH, Tentukan:
a) The logical address, b) The offset address c) The physical address, d) The lower range of the code segment e) The upper range of the code segment
Solusi
a) The logical address/ Alamat Logika ; 24F6:634A b) The offset address/ Alamat Offtset ; 634A c) The Physical address/ Alamat fisik ; 24F60+634A= 2B2AA d) The lower range of the code segment: 24F6:0000 =>
24F60+0000 =24F60 e) The upper range of the code segment: 24F6:FFFF =>
24F60+FFFF=34F5F
Perhitungan alamat fisik [6]
Ciri Alamat Segment:
Tidak bisa diletakkan di alamat awal selain xxxx0 Alamat segmen terakhir pasti F000 Contoh : CS= F100 tidak boleh
» Min CS:IP F100:0000 alamat fisikF1000
» Maks CS:IP F100:FFFF alamat fisik100FFF diluar batas maksimum FFFFF
JUN - I
TTELKOM
25
PUSH DXPUSH DIPUSH AXSTART
SS:1236
242424SS:1235
B6B6B6SS:1234
8585SS:1233
C2C2SS:1232
5FSS:1231
93SS:1230
Instruksi PUSH
Asumsi : SS=5FFF SP=1236, AX=24B6,DI=85C2,DX=5F93Perhatikan isi stack setiap dijalankan perintah sbb:
PUSH AX PUSH DI PUSH DX (gunakan prinsip little endian )
SP=1234 SP=1232 SP=1230
POP BXPOP DXPOP AXSTART
SS:1236
242424SS:1235
B6B6B6SS:1234
8585SS:1233
C2C2SS:1232
5FSS:1231
93SS:1230
Instruksi POP
Asumsi : SP=1230 Perhatikan isi stack setiap dijalankan perintah berikut : POP AX POP DX POP BX (gunakan prinsip LIFO)
AX=5F93 DX=85C2 BX=24B6
JUN - I
TTELKOM
26
Instruksi MOV [1]
MOV instruction:
MOV destination, source ; copy source operand to destination
Example: (8-bit )
MOV CL,55H
MOV DL,CL
MOV BH,DL
MOV AH,BH
Instruksi MOV [2]
Example: (16-bit)
MOV CX,468FH
MOV AX,CX
MOV BX,AX
MOV DX,BX
MOV DI,AX
MOV SI,DI
MOV DS,SI
MOV BP,DS
JUN - I
TTELKOM
27
Instruksi MOV [3]
Examples (diperiksa Instruksi yang ilegal):
MOV BX,14AFH
MOV SI,2345H
MOV DI,2233H
MOV CS,2A3FH
MOV DS,CS
MOV FR,BX
MOV DS,14AFH
Instruksi ADD [1]
ADD instruction
ADD destination, source ; add the source operand to destination
Example 8 bit:
MOV AL,24H
MOV DL,11H
ADD AL,DL
MOV CH,24H
MOV BL,11H
ADD CH,BL
MOV CH,24H
ADD CH,11H
JUN - I
TTELKOM
28
Instruksi ADD [2]
Example 16bit:
MOV AX,34EH
MOV DX,6A5H
ADD DX,AX
MOV CX,34EH
ADD CX,6A5H
Q&A uP 8088 [1]
Q : IO atau Memori yang diakses oleh uP pada saatpertama kali bootup (sesudah reset) ?
A : Memori
Q : Tahu dari mana yang diakses memori?
A : Register CS di isi FFFF
Q : Memangnya di peta I/O tidak ada segmen?
A : Tidak ada karena peta I/O hanya 64 kB
Q : Apa yang anda tahu tentang segmen? Ukuran? Jenis?
A : Ukuran segmen 64kB, Jenis 4 : Code, Data, Stack, Extra
Q : Alamat (IO / Memori) berapa yang diakses oleh uPpada saat pertama kali bootup (sesudah reset) ?
A : Alamat Memori FFFF0 yang diakses oleh uP pada saatpertama kali bootup (sesudah reset)
JUN - I
TTELKOM
29
Q&A uP 8088 [2]
Q : kenapa 8088 dibagi menjadi BIU dan EU?
A : sesuai fungsi, yaitu BIU menghitung alamat, EU menghitung data
Q : apa bedanya ALU di BIU dengan ALU di EU?
A : ALU di BIU menggabungkan 16 bit offset dengan16 bit segmen menjadi 20 bit alamat fisik, sedangkanALU di EU menghitung data 8/16 bit dengan data 8/16 bit menjadi 8/16/32 bit
LOGO
Thank You!Please study this subject at home
JUN - I
TTELKOM