Anda di halaman 1dari 20

Soal Pemetaan Memori (Memory Mapping)

1.Microprocessor 8088 akan dihubungkan dengan:


ROM 16K
RAM 16K
I/O 2K
Soal:
1. Buat peta memorinya
Soal Pemetaan Memori (Memory Mapping) (2)

2. Apabila isi RAM yang terpasang (No. 1)


adalah sbb:
Alamat ke - 0 12
Alamat ke – 1 3C
Alamat ke – 2 6F
Nilai alamat
ditentukan Alamat ke – 3 76
oleh hasil Alamat ke – 4 B2
rancangan
pada no.1
Soal Pemetaan Memori (Memory Mapping) (2)
 Buat program dengan algoritma sbb:
1. Isi AX dengan data: 4E8B
2. Isi CH dengan data: F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
4. Isi BX dengan data dari alamat ke-3 RAM
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan ke-1 RAM
Soal:
2. Tulis baris-baris program/instruksi di atas
3. Buat tabel tracing instruksinya
• DS & SS tentukan masing-masing sesuai alamat yang dirancang
• Tempatkan data pada stack mulai dengan address SS teratas (paling besar).
1.1 Peta Memori
𝜇CPU: 8088
→ 20-bit addressing → (a0-a19)… 00000-FFFFF
ROM: 16K → 14 bit → (a0-a13)… 00000-03FFF
RAM: 16K → 14 bit → (a0-a13)… 00000-03FFF
I/O: 2K → 11 bit → (a0-a10)… 00000-007FF

Address range
Jangkauan alamat
1.1 Peta Memori
 ROM: 16K → 14 bit → (a0-a13)… 00000-03FFF
 RAM: 16K → 14 bit → (a0-a13)… 00000-03FFF C17FF
 I/O: 2K → 11 bit → (a0-a10)… 00000-007FF I/O
7FF (2K)
(11-bit)
C1000
09FFF
RAM
3FFF (16K)
(14-bit)
06000
03FFF
ROM 3FFF (16K)
(14-bit)
00000
1.1 Peta Memori
Addresses:
I/O: 11 bit → C1000-C17FF
RAM: 14 bit → 06000-09FFF
I/O: 14 bit → 00000-03FFF

a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
1 1 1 1 1 1 1 1 1 1 1
I/O
0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM
1 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1
ROM
0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.1 Peta Memori
Addresses:
I/O: 11 bit → C1000-C17FF
RAM: 14 bit → 06000-09FFF
I/O: 14 bit → 00000-03FFF
RAM:
09FFF : 0000 1001 1111 1111 1111
06000 : 0000 0110 0000 0000 0000
a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
1 1 1 1 1 1 1 1 1 1 1
I/O
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ROM
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.1 Peta Memori
 ROM: 16K → 14 bit → (a0-a13)… 00000-03FFF
 RAM: 16K → 14 bit → (a0-a13)… 00000-03FFF C17FF
 I/O: 2K → 11 bit → (a0-a10)… 00000-007FF I/O
7FF (2K)
(11-bit)
Pilihan alamat-alamat untuk RAM: C1000
Chip 07FFF 0FFFF 0BFFF 0FFFF
Select 0000 01 … 0000 11 … 0000 10 … RAM
3FFF (16K)
(14-bit)
Chip 04000 0C000 08000 0C000
Select 0000 01 … 0000 11 … 0000 10 … 03FFF
ROM 3FFF (16K)
(14-bit)
00000
1.1 Peta Memori
Addresses:
I/O: 11 bit → C1000-C17FF
RAM: 14 bit → 0C000-0FFFF
I/O: 14 bit → 00000-03FFF
RAM:
0FFFF : 0000 1111 1111 1111 1111
0C000 : 0000 1100 0000 0000 0000
a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1
I/O
1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ROM
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1.1 Peta Memori: Chip Select
a19 a18 a17 a16 a15 a14 a13 a12 a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0
1 1 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1
I/O
1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
RAM
0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
ROM
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

I/O → 𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14 . 𝑎13 . 𝑎12 . 𝑎11
RAM → 𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14
ROM →𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14
1.2 Rangkaian
I/O →
𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14 . 𝑎13 . 𝑎12 . 𝑎11

RAM →
𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14

ROM →
𝑎19 . 𝑎18 . 𝑎17 . 𝑎16 . 𝑎15 . 𝑎14
1 byte
1.3 Membuat Program
 Buat program dengan algoritma sbb:
1. Isi AX dengan data: 4E8B
2. Isi CH dengan data: F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
4. Isi BX dengan data dari alamat ke-3 RAM
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan ke-1 RAM
0C000-0FFFF Data Segment:
Alamat ke - 0 12  CS: 0C000 -0CFFF Alamat ke - 0 0D000
Alamat ke – 1 3C Alamat ke – 1 0D001
 DS: 0D000 -0DFFF
Alamat ke – 2 6F Alamat ke – 2 0D002
 SS: 0E000 -0EFFF
Alamat ke – 3 76 Alamat ke – 3 0D003
Alamat ke – 4 B2  ES: 0F000 -0FFFF Alamat ke – 4 0D004
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B

3. Pindahkan isi AL ke RAM (alamat ke-4)


4. Isi BX dengan data dari alamat ke-3 RAM
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFF
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 0FFF
Alamat ke – 1 0D001 3C
0FFE
Alamat ke – 2 0D002 6F
0FFD
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 B2 0FFC

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
4. Isi BX dengan data dari alamat ke-3 RAM
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFF
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B F200 0FFF
Alamat ke – 1 0D001 3C
0FFE
Alamat ke – 2 0D002 6F
0FFD
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 B2 0FFC

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi ➢ Alamat ke-4:
2. Isi CH dengan data: F2  MOV AX, 4E8B
➢ 0D004 → Physical Address
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4) ➢ DS: 0D00
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM ➢ Offset/EA: 0004
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFF
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B F200 0FFF
Alamat ke – 1 0D001 3C
0FFE
Alamat ke – 2 0D002 6F
0FFD
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM
 MOV BX, [0003]
5. Push isi AX ke stack
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFF
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 7600 F200 0FFF
Alamat ke – 1 0D001 3C
0FFE
Alamat ke – 2 0D002 6F
0FFD
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM
 MOV BX, [0003]
5. Push isi AX ke stack
 PUSH AX
6. Push isi BX ke stack
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFD
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 7600 F200 0FFF
Alamat ke – 1 0D001 3C
0FFE 4E
Alamat ke – 2 0D002 6F
0FFD 8B
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM
 MOV BX, [0003]
5. Push isi AX ke stack
 PUSH AX
6. Push isi BX ke stack
 PUSH BX
7. Isi CL dengan data dari stack.
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFB
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 7600 F200 0FFF
Alamat ke – 1 0D001 3C
0FFE 4E
Alamat ke – 2 0D002 6F
0FFD 8B
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC 76

Alamat ke – 5 0D005 0FFB 00


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM
 MOV BX, [0003]
5. Push isi AX ke stack
 PUSH AX
6. Push isi BX ke stack
 PUSH BX
7. Isi CL dengan data dari stack.
 POP CL
8. Isi DX dengan data dari alamat ke-2 dan
ke-1 RAM Stack
Isi Registers SP: 0FFC
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 7600 F200 0FFF
Alamat ke – 1 0D001 3C
0FFE 4E
Alamat ke – 2 0D002 6F
0FFD 8B
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC 76

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA
1. Isi AX dengan data: 4E8B Instruksi
2. Isi CH dengan data: F2  MOV AX, 4E8B
 MOV CH, F2
3. Pindahkan isi AL ke RAM (alamat ke-4)
 MOV [0004], AL
4. Isi BX dengan data dari alamat ke-3 RAM
 MOV BX, [0003]
5. Push isi AX ke stack
 PUSH AX
6. Push isi BX ke stack
 PUSH BX
7. Isi CL dengan data dari stack.
 POP CL
8. Isi DX dengan data dari alamat ke-2 dan  MOV DX, [0001]
ke-1 RAM Stack
Isi Registers SP: 0FFC
Isi RAM AX BX CX DX SS Isi
Alamat ke - 0 0D000 12 4E8B 7600 F200 3C6F 0FFF
Alamat ke – 1 0D001 3C
0FFE 4E
Alamat ke – 2 0D002 6F
0FFD 8B
Alamat ke – 3 0D003 76
Alamat ke – 4 0D004 8B
B2 0FFC 76

Alamat ke – 5 0D005 0FFB


Alamat Ke – 6 0D006 0FFA

Anda mungkin juga menyukai