Anda di halaman 1dari 122

NAMA :

NIM :

NO. ABSEN :

MK : MIKROPROSESOR A2

LATIHAN 14.1

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi system
mikroprosesor.

 Sebuah mikroprosesor dengan word size 32 bit yang mempunyai memory space sebesar 1
Mega word.
 Sebuah RAM (Sebut saja RAM 1) 128 kByte dengan satu saluran chip select active low
dan dua saluran chip select active high.
 Sebuah RAM (Sebut saja RAM 2) 32 kByte dengan saluran CS1 dan CS2 active low.
 Sebuah EEPROM 2 kByte dengan saluran CS active high
 Sebuah ROM 64 kByte dengan saluran CS active high
 Sebuah PIA 1 kByte dengan saluran CS0 active high, CS1 dan CS2 active low

1. Isilah titik-titik berikut ini:


a. Data Bus = 32 bit dan 1 word = 4 Byte
b. Memory space = 1 Mega Byte
c. Addres Bus (jumlah saluran alamat) = 20
d. Alamat awal memory space = 00000 H
e. Alamat akhir memory space = FFFFF H
f. Kapasitas RAM 1 = 32 k word, kapasitas ROM = 16 k word
Kapasitas RAM 2 = 8 k word, kapasitas EEPROM = ½ k word
Kapasitas PIA = ¼ k word

2. Metode partially decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 RAM 1 = 32 kword = 25.210 word = 215 word = 15 saluran

Nilai 111 1111 1111 1111


Penjumlahan / 7 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 = 7FFF H.
 RAM 2 = 8 kword = 23.210 word = 213 word = 13 saluran

Nilai 1 1111 1111 1111


Penjumlahan / 1 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 2 = 1FFF H.
 EEPROM = ½ kword = 29 word = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 1FF H.
 ROM = 16 kword = 24210 word = 214 saluran

Nilai 11 1111 111 1111


Penjumlahan / 1
pengurangannya= 3 F F F
Jadi nilai penjumlahan / pengurangan ROM = 3FFF H.
 PIA = ¼ kword = 28 word = 8 saluran

Nilai 1111 1111


Penjumlahan / F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = FF H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 07FFF = 07FFF H

Untuk RAM 2 = Alamat awal = 10000 H

Alamat akhir = 10000 + 01FFF = 11FFF H

Untuk EEPROM = Alamat awal = 20000 H

Alamat akhir = 20000 + 001FF = 201FF H

Untuk ROM = Alamat awal = 30000 H

Alamat akhir = 30000 + 03FFF = 33FFF H

Untuk PIA = Alamat awal = 40000 H

Alamat akhir = 40000 + 000FF = 400FF H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut


RAM 1 00000 H
07FFF H

Kosong
RAM 2 10000 H
11FFF H
Kosong
EEPROM 20000 H
201FF H
Kosong
ROM 30000 H
33FFF H
Kosong
PIA 40000 H
400FF H
Kosong 401FF H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
07FFF H 0000 0111 1111 1111 1111
RAM 2 10000 H 0001 0000 0000 0000 0000
11FFF H 0001 0001 1111 1111 1111
EEPROM 20000 H 0010 0000 0000 0000 0000
201FF H 0010 0000 0001 1111 1111
ROM 30000 H 0011 0000 0000 0000 0000
33FFF H 0011 0011 1111 1111 1111
PIA 40000 H 0100 0000 0000 0000 0000
400FF H 0100 0000 0000 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A15 = dengan input 0000 000
Untuk RAM 2 = saluran alamat A19 s/d A13 = dengan input 0001 000
Untuk EEPROM = saluran alamat A19 s/d A9 = dengan input 0010 0000 000
Untuk ROM = saluran alamat A19 s/d A14 = dengan input 0011 00
Untuk PIA = saluran alamat A19 s/d A19 = dengan input 0

3. Metode fully decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 RAM 1 = 32 kword = 25.210 word = 215 word = 15 saluran

Nilai 111 1111 1111 1111


Penjumlahan / 7 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 = 7FFF H.
 RAM 2 = 8 kword = 23.210 word = 213 word = 13 saluran

Nilai 1 1111 1111 1111


Penjumlahan / 1 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 2 = 1FFF H.
 EEPROM = ½ kword = 29 word = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 1FF H.
 ROM = 16 kword = 24210 word = 214 saluran

Nilai 11 1111 111 1111


Penjumlahan / 1
pengurangannya= 3 F F F
Jadi nilai penjumlahan / pengurangan ROM = 3FFF H.

 PIA = ¼ kword = 28 word = 8 saluran

Nilai 1111 1111


Penjumlahan / F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = FF H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 07FFF = 07FFF H

Untuk RAM 2 = Alamat awal = 07FFF + 1 = 08000 H

Alamat akhir = 08000 + 01FFF = 09FFF H

Untuk EEPROM = Alamat awal = 09FFF + 1 = 0A000 H

Alamat akhir = 0A000 + 001FF = 0A1FF H


Untuk ROM = Alamat awal = 0A1FF + 1 = 0A200 H

Alamat akhir = 0A200 + 03FFF = 0F0FF H

Untuk PIA = Alamat awal = 0F0FF + 1 = 0F100 H

Alamat akhir = 0F100 + 000FF = 0F1FF H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
07FFF H
RAM 2 08000 H
09FFF H
EEPROM 0A000 H
0A1FF H
ROM 0A200 H
0F0FF H
PIA 0F100 H
0F1FF H
Kosong 0F200 H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
07FFF H 0000 0111 1111 1111 1111
RAM 2 08000 H 0000 1000 0000 0000 0000
09FFF H 0000 1001 1111 1111 1111
EEPROM 0A000 H 0000 1010 0000 0000 0000
0A1FF H 0000 1010 0001 1111 1111
ROM 0A200 H 0000 1010 0010 0000 0000
0F0FF H 0000 1111 0000 1111 1111
PIA 0F100 H 0000 1111 0001 0000 0000
0F1FF H 0000 1111 0001 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A15 = dengan input 0000 0
Untuk RAM 2 = saluran alamat A19 s/d A13 = dengan input 0000 100
Untuk EEPROM = saluran alamat A19 s/d A19 = dengan input 0000 1010 000
Untuk ROM = saluran alamat A19 s/d A15 = dengan input 0000 1
Untuk PIA = saluran alamat A19 s/d A16 = dengan input 0000
LATIHAN 14.2

1. Apa yang dimaksud dengan sistem mikroprosesor ?

Jawab ; Sistem Mikroprosesor adalah gabungan dari beberapa komponen dalam hal ini Memory
Unit, Input, Output Unit, dan CPU yang bekerja sebagai pengolah data elektronik digital. Sebuah
mikroprosesor agar dapat berfungsi memerlukan sebuah sistem yang disebut sistem
mikroprosesor.

2. Bandingkan/jelaskan dengan singkat keuntungan dan kerugian desain hardware sistem


mikroprosesor menggunakan metode fully decoded addressing dan menggunakan metode non
fully decoded addressing .

jawab;

 Tidak menggunakan seluruh saluran alamatnya


 Terjadi duplikasi alamat yang tidak mengganggu ,karena duplikasi yang terjadi adalah
duplikasi dengan alamat pada area / daerah kosong (daerah yang tidak dipakai /
digunakan )
 Hardware relatif lebih sederhana
 Relatif lebih murah
 Relatif lebih lebih mudah dalam mendesainnya
 Hampir tidak diperluas /dikembangkan

2.isilah titik titik berikut ini dengan benar.


Nama komponen Kapasitas Alamat awal Alamat akhir
RAM 0,5 giga byte 0000D2 H H
EEPROM 15 kilo byte 2A7FF0 H 3B8A001 H
PIA 6 Kilo byte 4000B H 6000A H
RAM 2 giga byte
EEPROM 500 kilo byte
PROM 15 kilo byte E7FAB H FBABC H
ROM 9 byte 1678F H 1789A H
RAM 1 giga byte 0000C2 1000C1 H
EEPROM 1000 kilo byte 0B32H 1B31 H
ROM 7 byte 1E2C H 2E2B H
PIA 8 Kilo byte 20005 H 30004 H
PROM 15 kilo byte 2BFEF H 3C1F0 H
PIA 7 byte 2EOB H 30FC H
RAM 1500 byte 0B32 H FC43 H
PROM 13 kilo byte 2B1EF 3C1F0 H
PIA 15 byte 2E0B H 3F1C H
RAM 1000 byte 0B32 H
PROM 11 kilo byte 2BOEF H 3C1F0 H
PIA 11 byte 2E0B H 3F1C H

LATIHAN 14.3

Jika anda diberikan beberapa komponen berikut ini untuk di rangkai menjadi sistem
mikroprosesor

 Sebuah mikroprosesor dengan word size 16 bit yang mempunyai memory space sebesar
128 kilo word
 Sebuah RAM 16 kbyte dengan satu saluran chip select avtive low and dua saluran chip
select active low
 Sebuah RAM 4 kbyte dengan saluran CS1 dn CS2 active low
 Sebuah EEPROM 1 kbyte dengan saluran CS active
 Sebuah PROM 2 kbyte dengan Saliuran CS active
 Sebuah PIA 512 byte dengan saluran CS0 active high ,CS1 dan CS2 active low

4. Isilah titik-titik berikut ini:


g. Data Bus = 16 bit dan 1 word = 2 Byte
h. Memory space = 0,125 Mega Byte
i. Addres Bus (jumlah saluranalamat) = 7
j. Alamat awal memory space = 00000 H
k. Alamat akhir memory space = FFFF H
l. Kapasitas RAM 1 = 8 k word, kapasitas PROM = 1 k word
Kapasitas RAM 2 = 2 k word, kapasitas EPROM = ½ k word
Kapasitas PIA = 256 word

5. Metode partially decoded addressing, dengan tahapan berikut ini.


c. Desainlah memory map dan table saluran alamatnya:
 RAM 1 = 8 k word = 23.210 word = 213 word = 13 saluran

NilaiPenjumlahan / 1 1111 1111 1111


pengurangannya= 1 F F F
Jadi nilai penjumlahan / pengurangan RAM 1 = 1FFF H.
 RAM 2 = 2 k word = 21.210 word = 211 word = 11 saluran

NilaiPenjumlahan / 111 1111 1111


pengurangannya= 7 F F
Jadi nilai penjumlahan / pengurangan RAM 2 = 7FF H.
 EPROM = ½ k word = 29 word = 9 saluran

NilaiPenjumlahan / 1 1111 1111


pengurangannya= 1 F F
Jadi nilai penjumlahan / pengurangan EPROM = 1FF H.
 PROM = 1 k word = 210 word = 10 saluran

Nilai 11 1111 1111


Penjumlahan / 3 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PROM = 3FF H.
 PIA = 256 word = 28word = 8 saluran

NilaiPenjumlahan / 1111 1111


pengurangannya= F F
Jadi nilai penjumlahan / pengurangan PIA = FF H.
 Menentukanalamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 01FFF = 01FFF H

Untuk RAM 2 = Alamat awal = 10000 H

Alamat akhir = 10000 + 007FF = 107FF H

Untuk EPROM = Alamat awal = 20000 H

Alamat akhir = 20000 + 001FF = 201FF H

UntukPROM = Alamatawal = 30000 H

Alamat akhir = 30000 + 003FF = 303FF H

Untuk PIA = Alamat awal = 40000 H

Alamat akhir = 40000 + 000FF = 400FF H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
01FFF H
Kosong
RAM 2 10000 H
107FF H
Kosong
EPROM 20000 H
201FF H
Kosong
PROM 30000 H
303FF H
Kosong
PIA 40000 H
400FF H
Kosong 400FF H
FFFFF H

d. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
01FFF H 0000 0001 1111 1111 1111
RAM 2 10000 H 0001 0000 0000 0000 0000
107FF H 0001 0000 0111 1111 1111
EPROM 20000 H 0010 0000 0000 0000 0000
201FF H 0010 0000 0001 1111 1111
PROM 30000 H 0011 0000 0000 0000 0000
303FF H 0011 0000 0011 1111 1111
PIA 40000 H 0100 0000 0000 0000 0000
400FF H 0100 0000 0000 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A13 = dengan input 0000 000
Untuk RAM 2 = saluran alamat A19 s/d A11= dengan input 0001 0000 0
UntukEPROM = saluran alamat A19 s/d A9 = dengan input 0010 0000 000
Untuk PROM = saluran alamat A19 s/d A10 = dengan input 0011 0000 00
Untuk PIA = saluran alamat A24 s/d A8= dengan input 0011 0000 0000

6. Metode fully decoded addressing, dengan tahapanberikut ini.


c. Desainlah memory map dan table saluran alamatnya:
 RAM 1 = 8 k word = 23.210 word = 213 word = 13 saluran

Nilai 1 1111 1111 1111


Penjumlahan / 1 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 = 1FFF H.
 RAM 2 = 2 k word = 21.210 word = 211 word = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 2 = 7FF H.
 EPROM = ½ k word = 29 word = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EPROM = 1FF H.
 PROM = 1 k word = 210 word = 10 saluran

Nilai 11 1111 1111


Penjumlahan / 3 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PROM = 3FF H.
 PIA = 256 kword = 28.210 word = 18 saluran

Nilai Penjumlahan / 1111 1111


pengurangannya= F F
Jadi nilai penjumlahan / pengurangan PIA = FF H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 01FFF = 01FFF H

Untuk RAM 2 = Alamat awal = 01FFF + 1 = 02000 H

Alamat akhir = 02000 + 007FF = 027FF H

Untuk EPROM = Alamat awal = 027FF + 1 = 02800 H

Alamat akhir = 02800 + 001FF = 029FF H

UntukPROM = Alamat awal = 029FF + 1 = 02A00 H

Alamat akhir = 02A00 + 003FF = 02DFF H

Untuk PIA = Alamat awal = 02DFF + 1 = 02E00 H

Alamat akhir = 02E00 + 000FF = 02EFF H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
01FFF H
Kosong
RAM 2 02000 H
027FF H
Kosong
EPROM 02800 H
029FF H
Kosong
PROM 02A00 H
02DFF H
Kosong
PIA 02E00 H
02EFF H
Kosong 02000 H
FFFFF H
b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
01FFF H 00000 0001 1111 1111 1111
RAM 2 02000 H 0000 0010 0000 0000 0000
027FF H 0000 0010 0111 1111 1111
EPROM 02800 H 0000 0010 1000 0000 0000
029FF H 0000 0010 1001 1111 1111
PROM 02A00 H 0000 0010 1010 0000 0000
02DFF H 0000 0010 1101 1111 1111
PIA 02E00 H 0000 0010 1110 0000 0000
02EFF H 0000 0010 1110 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A13 = dengan input 0000 000
Untuk RAM 2 = saluran alamat A19 s/d A11 = dengan input 0000 0010 0
Untuk EPROM = saluran alamat A19 s/d A19 = dengan input 0000 0010 100
Untuk PROM = saluran alamat A19 s/d A11 = dengan input 0000 0010 1
Untuk PIA = saluran alamat A19 s/d A8 = dengan input 0000 0010 1110

LATIHAN 14.4

Jika anda diberikan beberapa komponen berikut ini untuk di rangkai menjadi sistem
mikroprosesor

 Sebuahmikroprosesor32bitdenganmemoryspacesebesar1Megaword.
 Dua RAM dengan kapasitas 128 kbyte
 SebuahPROM8kBytedengansaluranCSactivehigh
 SebuahROM64kBytedengansaluranCSactivehigh
 Sebuah I/O1kByte dengansaluranCS0activehigh, CS1danCS2activelow

1. Isilah titik-titik berikut ini:


a. Data Bus = 32 bit dan 1 word = 4 Byte
b. Memory space = 1 Mega Byte
c. Addres Bus (jumlah saluran alamat) = 20
d. Alamat awal memory space = 00000 H
e. Alamat akhir memory space = FFFFF H
f. Kapasitas RAM 1 = 32 k word, kapasitas ROM = 4 k word
Kapasitas RAM 2 = 32 k word, kapasitas PROM = 16 k word
Kapasitas I/O = ¼ word

2. Metode partially decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 RAM 1dan RAM 2 = 32 k word = 25.210 word = 215 word = 15saluran

Nilai 111 1111 1111 1111


Penjumlahan / 7 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1dan RAM 2 = 7FFF H.
 ROM =4 k word = 22.210 word = 12saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = FFF H.
 PROM = 16 k word = 24.210 word = 14saluran

Nilai 11 1111 1111 1111


Penjumlahan / 3 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PROM = 3FFF H.
 I/O = ¼ k word = 28 word = 8 saluran

Nilai 1111 1111


Penjumlahan / F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan I/O = FF H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 07FFF = 07FFF H

RAM 2 = Alamat awal = 10000 H

Alamat akhir = 10000 + 07FFF = 17FFF H

UntukROM = Alamat awal = 20000 H

Alamat akhir = 20000 + 00FFF = 20FFF H

UntukPROM = Alamat awal = 30000 H

Alamat akhir = 30000 + 03FFF = 33FFF H

UntukI/O = Alamat awal = 40000 H

Alamat akhir = 40000 + 000FF = 400FF H

 Sehingga hasil desain memory map-nyadiperoleh sebagai berikut

RAM 1 00000 H
07FFF H
Kosong
RAM 2 10000 H
17FFF H
Kosong
ROM 20000 H
20FFF H
Kosong
PROM 30000 H
33FFF H
Kosong
I/O 40000 H
400FF H
Kosong 400FF H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
07FFF H 0000 0111 1111 1111 1111
RAM 2 10000 H 0001 0000 0000 0000 0000
17FFF H 0001 0111 1111 1111 1111
ROM 20000 H 0010 0000 0000 0000 0000
20FFF H 0010 0000 1111 1111 1111
PROM 30000 H 0011 0000 0000 0000 0000
33FFF H 0011 0011 1111 1111 1111
I/O 40000 H 0100 0000 0000 0000 0000
400FF H 0100 0000 0000 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A15 = dengan input 0000 0
Untuk RAM 2 = saluran alamat A19 s/d A15 = dengan input 0001 0
UntukROM = saluran alamat A19 s/d A12 = dengan input 0010 0000
Untuk PROM = saluran alamat A19 s/d A14 = dengan input 0011 00
Untuk I/O = saluran alamat A19 s/d A8 = dengan input 0100 0000 0000

3. Metode fully decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 RAM 1 dan RAM 2 = 32 k word = 25.210 word = 215 word = 15 saluran

Nilai 111 1111 1111 1111


Penjumlahan / 7 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 dan RAM 2 = 7FFF H.
 ROM = 4 k word = 22.210 word = 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = FFF H.
 PROM = 16 k word = 24.210 word = 14 saluran

Nilai 11 1111 1111 1111


Penjumlahan / 3 F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PROM = 3FFF H.
 I/O = ¼ k word = 28 word = 8 saluran

Nilai 1111 1111


Penjumlahan / F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = FF H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + 07FFF = 07FFF H

RAM 2 = Alamat awal = 07FFF + 1 =08000 H

Alamat akhir = 08000 + 07FFF = 0FFFF H

Untuk ROM = Alamat awal = 0FFFF + 1 = 10000 H

Alamat akhir = 10000 + 00FFF = 10FFF H

UntukPROM = Alamat awal = 10FFF + 1 = 11000 H

Alamat akhir = 11000 + 03FFF = 14FFF H

Untuk I/O = Alamat awal = 14FFF + 1 = 15000 H

Alamat akhir = 15000 + 000FF = 150FF H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
07FFF H
Kosong
RAM 2 08000 H
0FFFF H
Kosong
ROM 10000 H
10FFF H
Kosong
PROM 11000 H
14FFF H
Kosong
I/O 15000 H
150FF H
Kosong 16000 H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
07FFF H 0000 0111 1111 1111 1111
RAM 2 08000 H 0000 1000 0000 0000 0000
0FFFF H 0000 1111 1111 1111 1111
ROM 10000 H 0001 0000 0000 0000 0000
10FFF H 0001 0000 1111 1111 1111
PROM 11000 H 0001 0001 0000 0000 0000
14FFF H 0001 0100 1111 1111 1111
I/O 15000 H 0001 0101 0000 0000 0000
150FF H 0001 0101 0000 1111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A15 = dengan input 0000 0
Untuk RAM 2 = saluran alamat A19 s/d A16 = dengan input 0000
Untuk ROM = saluran alamat A19 s/d A12 = dengan input 0001 0000
Untuk PROM = saluran alamat A19 s/d A15 = dengan input 0001 0
Untuk I/O = saluran alamat A19 s/d A8 = dengan input 0001 0101 0000

LATIHAN 14.5

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi sistem
mikroprosesor.

 Sebuah mikroprosesor dengan word size 16 bit yang mempunyai memory space sebesar 64
kilo word.
 Sebuah RAM 8 kByte dengan saluran CS1 dan CS2 active high.
 Sebuah EPROM 1 kByte dengan saluran CS active low
 Sebuah ROM 2 kByte dengan saluran CS active high
 Sebuah PIA 256 Byte dengan saluran CS0 active high, CS1 dan CS2 active low

1. Isilah titik-titik berikut ini :

a. Data Bus = 16 bit dan 1 word = 2 Byte

b. Memory space = 64 kiloword = 26.210 = 216 word

c. Address Bus (jumlah saluran alamat) = 16 saluran

d. Alamat awal memory space = 0000 H


e. Alamat akhir memory space = FFFF H

f. Kapasitas RAM = 4 kword, Kapasitas ROM = 1 kword,

Kapasitas EPROM = 1/2 kword, Kapasitas I/O = 128 word

Anda diminta untuk mendesain sistem mikroprosesor menggunakan :

2. Metode partially decoded addressing, dengan tahapan berikut ini.

2.a. Desainlah memory map dan tabel saluran alamatnya.

 Memory Space : 64 kword = 26 ×210=216 Kemudian Pangkat di jabarkan

16 → 4 4 4 4

0000 0000 0000 0000 Biner


Alamat
Awal =
0 0 0 0 Heksa

1111 1111 1111 1111 Biner


Alamat
Akhir =
F F F F Heksa

Maka, Alamat awal memory space = 0000 H

Alamat akhir Memory Space = FFFF H

 RAM = 4 kword = 22 × 210=214 Kemudian Pangkat di jabarkan

14 → 2 4 4 4

11 1111 1111 1111 Biner


Nilai
penjumlahan/Pengurangan
3 F F F Heksa

Maka,Nilai penjumlahan/pengurangan RAM = 3FFF H


 EPROM = 512 word = 29 Kemudian Pangkat Dijabarkan

9→ 1 4 4

Nilai 1 1111 1111 Biner


penjumlahan/Penguranga
n 1 F F Heksa

Maka, Nilai penjumlahan/pengurangan EPROM = 1FF H

 ROM =1 kword =20 ×210 ≡ 210 Kemudian Pangkat Dijabarkan

10 → 2 4 4

Nilai 11 1111 1111 Biner


penjumlahan/Penguranga
n 3 F F Heksa

Maka, Nilai penjumlahan/pengurangan ROM = 3FF H

 PIA= 128 word = 27 Kemudian Pangkat Dijabarkan

7 3 4

Nilai 111 1111 Biner


penjumlahan/Penguranga
n 7 F Heksa

Maka, Nilai penjumlahan/pengurangan PIA = 7F H

Menentukan Alamat awal masing-masing komponen

 RAM = 3FFF H = 3FFF H


 EPROM = 1FF H = 01FF H
 ROM = 3FF H = 03FF H
 PIA = 7F H = 007F H

NO Nama Komponen Salah satu kombinasi binernya


1 RAM 00
2 EPROM 01
3 ROM 10
4 PIA 11

Berdasarkan kombinasi biner tersebut, serta hasil perhitungan nilai masing-masing komponen,
maka prediksi alamat awal adalah sebagai berikut.

Alternatif 1

 Alamat awal RAM = 0000 H


 Alamat Awal EPROM = 1000 H
 Alamat awal ROM = 2000 H
 Alamat awal PIA = 3000 H

Menentukan Alamat akhir masing-masing komponen

 Alamat akhir RAM = 0000 H + 3FFF H = 3FFF H


 Alamat akhir EPROM = 1000 H + 01FF H = 11FF H
 Alamat akhir ROM = 2000 H + 03FF H = 23FF H
 Alamat akhir PIA = 3000 H + 007F H = 307F H
Desain Memory map dan tabel saluran alamat sekaligus
Tabel Saluran Alamat
Memory Map
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000 H 0000 0000 0000 0000
RAM
3FFF H 0011 1111 1111 1111
1000 H 0001 0000 0000 0000
EPROM
11FF H 0001 0001 1111 1111
2000 H 0010 0000 0000 0000
ROM
23FF H 0010 0011 1111 1111
3000 H 0011 0000 0000 0000
PIA
307F H 0011 0000 0111 1111
2.b. Desainlah rangkaian address decoder-nya.
Dapat disimpulkan bahwa input rangkaian address decorder untuk masing-masing
komponen adalah sebagai berikut.

 RAM → saluran alamat A15 - A14 dengan input 00


 EPROM → saluran alamat A13 - A12 dengan input 01
 ROM → saluran alamat A13 - A12 dengan input 10
 PIA → saluran alamat A13 - A12 dengan input 11

Output dari rangkaian addres decorder berdasarkan chip select masing-masing komponen
adalah sebagai berikut.

 RAM = CS0, CS1 adalah 1 1


 EPROM = CS adalah 0
 ROM = CS adalah 1
 PIA = CS0, CS1, CS2 adalah 1 0 0

3. Metode fully decoded addressing, dengan tahapan berikut ini.


3.a. Desainlah memori map dan tabel saluran alamatnya.
Menentukan Alamat awal masing-masing komponen

RAM = 3FFF H = 3FFF H

EPROM = 1FF H = 01FF H

ROM = 3FF H = 03FF H

PIA = 7F H = 007F H

Berdasarkan nilai penjumlahan/pegurangan tersebut, kemudian menentukan alamat awal dan


alamat akhir masing-masing komponen adalah sebagai berikut.

Untuk RAM = Alamat awal = 0000 H

Alamat akhir = 0000 + 3FFF H = 3FFF H


Untuk EPROM = Alamat awal = 3FFF H + 1 = 4000 H

Alamat akhir = 4000 H + 01FF H = 41FF H

Untuk ROM = Alamat awal = 41FF H + 1 = 4200 H

Alamat akhir = 4200 H + 03FF H = 45FF H

Untuk PIA = Alamat awal = 45FF H + 1 = 4600 H

Alamat akhir = 4600 H + 007F H = 467F H

Desain Memory map dan tabel saluran alamat sekaligus

Tabel Saluran Alamat


Memory Map
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000 H 0000 0000 0000 0000
RAM
3FFF H 0011 1111 1111 1111
4000 H 0100 0000 0000 0000
EPROM
41FF H 0100 0001 1111 1111
4200 H 0100 0010 0000 0000
ROM
45FF H 0100 0101 1111 1111
4600 H 0100 0110 0000 0000
PIA
467F H 0100 0110 0111 1111

Dapat Disimpulkan bahwa input rangkaian addres decordernya adalah sebagai berikut.

 RAM = saluran alamat A15 - A14 dengan input 00


 EPROM = saluran alamat A15 - A10 dengan input 0100 000
 ROM = saluran alamat A15 - A11 dengan input 0100 0
 PIA = saluran alamat A15 – A9 dengan input 0100 0110 0

Output dari rangkaian addres decorder berdasarkan chip select masing-masing komponen
adalah sebagai berikut.

 RAM = CS0, CS1 adalah 1 1


 EPROM = CS adalah 0
 ROM = CS adalah 1
 PIA = CS0, CS1, CS2 adalah 1 0 0

LATIHAN 14.6

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi sistem
mikroprosesor.
 Sebuah mikroprosesor 8 bit dengan 16 saluran alamat.
 Sebuah RAM 2 kByte dengan CS0 active low, CS1 dan CS2 active high
 Sebuah EEPROM 1 kByte dengan CS active low
 Sebuah PROM 600 Byte dengan CS active high
 Sebuah PIA 70 Byte dengan CS0 active high dan CS1 active low

Anda diminta untuk mendesain sistem mikroprosesor menggunakan:


1. Metode partially decoded addressing, dengan tahapan berikut ini.
1.a. Desainlah memori map dan tabel saluran alamatnya.
1.b. Desainlah rangkaian address decoder-nya.
1.c. Desainlah blok diagram sistem mikroprosesornya.
2. Metode fully decoded addressing, dengan tahapan berikut ini.
2.a. Desainlah memori map dan tabel saluran alamatnya.
2.b. Desainlah rangkaian address decoder-nya.
2.c. Desainlah blok diagram sistem mikroprosesornya.

Penyelesaian:

1. Metode partially decoded addressing

 Mikroprosesor yang digunakan adalah mikroprosesor 8 bit, berarti:


 Word size-nya = 8 bit = 1 Byte
 1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke satuan
word.
 Mikroprosesor yang digunakan mempunyai 16 saluran alamat, berarti:
 Memory space-nya = 216 Byte = 26.210 Byte = 64 kByte
 Menentukan alamat awal dan alamat akhir dari memory space
216 → pangkat 16 dipisah/dibagi dalam kelipatan 4 seperti berikut:
16 → 4 4 4 4
Biner
0000 0000 0000 0000
Heksa Alamat awal =
0 0 0 0
Biner
Alamat akhir 1111 1111 1111 1111
Heksa
= F F F F
Jadi → alamat awal memory
space = 0000 H
→ alamat akhir memory space = FFFF H

 Sebuah RAM 2 kByte


→ 2 kilo Byte = 21.210 Byte = 211 Byte
11 → 3 4 4
Biner
Nilai penjumlah/ 111 1111 1111
Heksa
Pengurangannya= 7 F F

Jadi nilai penjumlah/pengurang untuk RAM = 7FF H

 Sebuah EEPROM 1 kByte


→ 1 kilo Byte = 210 Byte
10 → 2 4 4
Biner
Nilai penjumlah/ 11 1111 1111
Heksa
Pengurangannya= 3 F F

Jadi nilai penjumlah/pengurang untuk EEPROM = 3FF H


 Sebuah PROM 600 Byte
→ 600 Byte = 512 Byte + 64 Byte + 16 Byte + 8 Byte
 PROM1 512 Byte
512 Byte = 29 Byte
9→ 1 4 4

Nilai penjumlah/ Biner


1 1111 1111
Pengurangannya
Heksa
1 F F
=

Jadi nilai penjumlah/pengurang untuk PROM1 = 1FF H

 PROM2 64 Byte
64 Byte = 26 Byte
6→ 2 4

Nilai penjumlah/ 11 1111 Biner


Pengurangannya Heksa
3
Jadi nilai penjumlah/pengurang F PROM2 = 3F H
untuk
=
 PROM3 16 Byte
16 Byte = 24 Byte
4→ 4
Nilai penjumlah/ Biner
1111
Pengurangannya
F Heksa
=

Jadi nilai penjumlah/pengurang untuk PROM3 = F H

 PROM4 8 Byte
8 Byte = 23 Byte
3→ 3
Nilai penjumlah/
111 Biner
Pengurangannya
7 Heksa
=
Jadi nilai penjumlah/pengurang untuk PROM4 = 7 H

 Sebuah PIA 70 Byte


70 Byte = 64 Byte + 4 Byte + 2 Byte

 PIA1 64 Byte
64 Byte = 26 Byte
6→ 2 4

Nilai penjumlah/ Biner


11 1111
Pengurangannya
3 F Heksa
=

Jadi nilai penjumlah/pengurang untuk PIA1 = 3F H

 PIA2 4 Byte
4 Byte = 22 Byte
2→ 2

Nilai penjumlah/ Biner


11
Pengurangannya
3 Heksa
=

Jadi nilai penjumlah/pengurang untuk PIA2 = 3 H

 PIA3 2 Byte
2 Byte = 21 Byte
1→ 1

Nilai penjumlah/ Biner


1
Pengurangannya
1 Heksa
=

Jadi nilai penjumlah/pengurang untuk PIA3 = 1 H

 Menentukan alamat awal masing-masing komponen


o Untuk RAM = 7FF H = 07FF H
o Untuk EEPROM = 3FF H = 03FF H
o Untuk PROM1 = 1FF H = 01FF H
o Untuk PROM2 = 3F H = 003F H
o Untuk PROM3 = F H = 000F H
o Untuk PROM4 = 7 H = 0007 H
o Untuk PIA1 = 3F H = 003F H
o Untuk PIA2 = 3 H = 0003 H
o Untuk PIA3 = 1 H = 0001 H

 Terdapat 9 komponen

No. Nama Komponen Salah Satu Kombinasi Binernya

1 RAM 0000

2 EEPROM 0001

3 PROM1 0010

4 PROM2 0011

5 PROM3 0100

6 PROM4 0101

7 PIA1 0110

8 PIA2 0111

9 PIA3 1000

 Prediksi alamat awal


o RAM = 0000
o EEPROM = 1000
o PROM1 = 2000
o PROM2 = 3000
o PROM3 = 4000
o PROM4 = 5000
o PIA1 = 6000
o PIA2 = 7000
o PIA3 = 8000

 Menentukan alamat akhir masing-masing komponen


o RAM = 0000 + 07FF = 07FF H
o EEPROM = 1000 + 03FF = 13FF H
o PROM1 = 2000 + 01FF = 21FF H
o PROM2 = 3000 + 003F = 303F H
o PROM3 = 4000 + 000F = 400F H
o PROM4 = 5000 + 0007 = 5007 H
o PIA1 = 6000 + 003F = 603F H
o PIA2 = 7000 + 0003 = 7003 H
o PIA3 = 8000 + 0001 = 8001 H

 Desain memory map dan tabel saluran alamat sekaligus

Tabel Saluran Alamat


Memory Map
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000 H 0000 0000 0000 0000
RAM
07FF H 0000 0111 1111 1111
1000 H 0001 0000 0000 0000
EEPROM
13FF H 0001 0011 1111 1111
2000 H 0010 0000 0000 0000
PROM1
21FF H 0010 0001 1111 1111
3000 H 0011 0000 0000 0000
PROM2
303F H 0011 0000 0011 1111
4000 H 0100 0000 0000 0000
PROM3
400F H 0100 0000 0000 1111
5000 H 0101 0000 0000 0000
PROM4
5007 H 0101 0000 0000 0111
6000 H 0110 0000 0000 0000
PIA1
603F H 0110 0000 0011 1111
7000 H 0111 0000 0000 0000
PIA2
7003 H 0111 0000 0000 0011
8000 H 1000 0000 0000 0000
PIA3
8001 H 1000 0000 0000 0001

 Desain Rangkaian Address Decoder


o RAM → saluran alamat A15 s/d A12 dengan input 0000
o EEPROM → saluran alamat A15 s/d A12 dengan input 0001
o PROM1 → saluran alamat A15 s/d A12 dengan input 0010
o PROM2 → saluran alamat A15 s/d A12 dengan input 0011
o PROM3 → saluran alamat A15 s/d A12 dengan input 0100
o PROM4 → saluran alamat A15 s/d A12 dengan input 0101
o PIA1 → saluran alamat A15 s/d A12 dengan input 0110
o PIA2 → saluran alamat A15 s/d A12 dengan input 0111
o PIA3 → saluran alamat A15 s/d A12 dengan input 1000

Output dari rangkaian address decoder berdasarkan chip select masing-masing komponen
sebagaimana telah diketahui dalam kasus ini sebagai berikut:

 Output untuk RAM → CS0 , CS1 , CS2 → 0 1 1


 Output untuk EEPROM → CS → 0
 Output untuk PROM1,2,3,4 → CS → 1
 Output untuk PIA1,2,3 → CS0 , CS1 → 1 0
2. Metode fully decoded addressing

 Menentukan alamat awal dan akhir masing-masing komponen


o Untuk RAM = 7FF H = 07FF H
o Untuk EEPROM = 3FF H = 03FF H
o Untuk PROM1 = 1FF H = 01FF H
o Untuk PROM2 = 3F H = 003F H
o Untuk PROM3 = F H = 000F H
o Untuk PROM4 = 7 H = 0007 H
o Untuk PIA1 = 3F H = 003F H
o Untuk PIA2 = 3 H = 0003 H
o Untuk PIA3 = 1 H = 0001 H

Berdasarkan nilai penjumlah/pengurang tersebut, kemudian menentukan alamat awal dan


alamat akhir masing-masing komponen dengan menggunakan salah satu alternatif seperti
berikut ini.

o Untuk RAM → alamat awal = 0000 H


Alamat akhir = 0000 + 07FF = 07FF H
o Untuk EEPROM → alamat awal = 07FF + 1 = 0800 H
Alamat akhir = 0800 + 03FF = 0BFF H
o Untuk PROM1 → alamat awal = 0BFF + 1 = 0C00 H
Alamat akhir = 0C00 + 01FF = 0DFF H
o Untuk PROM2 → alamat awal = 0DFF + 1 = 0E00 H
Alamat akhir = 0E00 + 003F = 0E3F H
o Untuk PROM3 → alamat awal = 0E3F + 1 = 0E40 H
Alamat akhir = 0E40 + 000F = 0E4F H
o Untuk PROM4 → alamat awal = 0E4F + 1 = 0E50 H
Alamat akhir = 0E50 + 0007 = 0E57 H
o Untuk PIA1 → alamat awal = 0E57 + 1 = 0E58 H
Alamat akhir = 0E58 + 003F = 0E97 H
o Untuk PIA2 → alamat awal = 0E97 + 1 = 0EA8 H
Alamat akhir = 0EA8 + 0003 = 0EAB H
o Untuk PIA3 → alamat awal = 0EAB + 1 = 0EAC H
Alamat akhir = 0EAC + 0001 = 0EAD H
 Desain memory map dan tabel saluran alamat sekaligus

Tabel Saluran Alamat


Memory Map
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000 H 0000 0000 0000 0000
RAM
07FF H 0000 0111 1111 1111
0800 H 0000 1000 0000 0000
EEPROM
0BFF H 0000 1011 1111 1111
0C00 H 0000 1100 0000 0000
PROM1
0DFF H 0000 1101 1111 1111
0E00 H 0000 1110 0000 0000
PROM2
0E3F H 0000 1110 0011 1111
0E40 H 0000 1110 0100 0000
PROM3
0E4F H 0000 1110 0100 1111
0E50 H 0000 1110 0101 0000
PROM4
0E57 H 0000 1110 0101 0111
0E58 H 0000 1110 0101 1000
PIA1
0E97 H 0000 1110 1001 0111
0EA8 H 0000 1110 1010 1000
PIA2
0EAB H 0000 1110 1010 1011
0EAC H 0000 1110 1010 1100
PIA3
0EAD H 0000 1110 1010 1101

 Desain Rangkaian Address Decoder


o RAM → saluran alamat A15 s/d A11 dengan input 0000 0
o EEPROM → saluran alamat A15 s/d A10 dengan input 0000 10
o PROM1 → saluran alamat A15 s/d A9 dengan input 0000 110
o PROM2 → saluran alamat A15 s/d A6 dengan input 0000 1110 00
o PROM3 → saluran alamat A15 s/d A4 dengan input 0000 1110 0100
o PROM4 → saluran alamat A15 s/d A3 dengan input 0000 1110 0101 0
o PIA1 → saluran alamat A15 s/d A8 dengan input 0000 1110
o PIA2 → saluran alamat A15 s/d A2 dengan input 0000 1110 1010 10
o PIA3 → saluran alamat A15 s/d A1 dengan input 0000 1110 1010 110

Output dari rangkaian address decoder berdasarkan chip select masing-masing komponen
sebagaimana telah diketahui dalam kasus ini sebagai berikut:

 Output untuk RAM → CS0 , CS1 , CS2 → 0 1 1


 Output untuk EEPROM → CS → 0
 Output untuk PROM1,2,3,4 → CS → 1
 Output untuk PIA1,2,3 → CS0 , CS1 → 1 0

LATIHAN 14.7

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi system
mikroprosesor.

 Sebuah mikroprosesor 8 bit dengan 20 saluran alamat


 Sebuah RAM 4 kByte dengan CS0 dan CS1 active high.
 Sebuah ROM 2 kByte dengan CS active low
 Sebuah EEPROM 500 Byte dengan CS active high
 Sebuah PIA 80 Byte dengan CS0 active high dan CS1 active low

Anda diminta untuk mendesain system mikroprosesor menggunakan:

1. Metode partially decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
20 saluran berarti:

Alamat awal 0000 0000 0000 0000 0000


0 0 0 0 0
Alamat akhir 1111 1111 1111 1111 0000
F F F F F
Jadi, alamat awal memory space = 00000 H
alamat akhir memory space = FFFFF H
 RAM 4 kByte = 22.210 Byte = 212 Byte = 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM = FFF H.
 ROM = 2 kByte = 21210 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = 7FF H.
 EEPROM = 500 Byte = 512 Byte = 29 Byte = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 1FF H
 PIA = 80 Byte = 128 Byte = 27 Byte = 7 saluran

Nilai 111 1111


Penjumlahan / 7 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = 7F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + FFF = 00FFF H

Untuk ROM = Alamat awal = 10000 H

Alamat akhir = 10000 + 7FF = 107FF H

Untuk EEPROM = Alamat awal = 20000 H

Alamat akhir = 20000 + 1FF = 201FF H

Untuk PIA = Alamat awal = 30000 H

Alamat akhir = 30000 + 7F = 3007F H


 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
00FFF H
Kosong
ROM 10000 H
107FF H
Kosong
EEPROM 20000 H
201FF H
Kosong
PIA 30000 H
3007F H
Kosong 40080 H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
00FFF H 0000 0000 1111 1111 11111
ROM 10000 H 0001 0000 0000 0000 0000
107FF H 0001 0000 0111 1111 1111
EEPROM 20000 H 0010 0000 0000 0000 0000
201FF H 0010 0000 0001 1111 1111
PIA 30000 H 0011 0000 0000 0000 0000
3007F H 0011 0000 0000 0111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A12 = dengan input 0000 0000
Untuk ROM = saluran alamat A19 s/d A11 = dengan input 0001 0000 0
Untuk EEPROM = saluran alamat A19 s/d A9 = dengan input 0010 0000 000
Untuk PIA = saluran alamat A19 s/d A7 = dengan input 0011 0000 00000 0

2. Metode fully decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
20 saluran berarti:

Alamat awal 0000 0000 0000 0000 0000


0 0 0 0 0
Alamat akhir 1111 1111 1111 1111 0000
F F F F F
Jadi, alamat awal memory space = 00000 H
alamat akhir memory space = FFFFF H
 RAM 4 kByte = 22.210 Byte = 212 Byte = 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM = FFF H.
 ROM = 2 kByte = 21210 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = 7FF H.
 EEPROM = 500 Byte = 512 Byte = 29 Byte = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 1FF H
 PIA = 80 Byte = 128 Byte = 27 Byte = 7 saluran

Nilai 111 1111


Penjumlahan / 7 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = 7F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 00000 H

Alamat akhir = 00000 + FFF = 00FFF H

Untuk ROM = Alamat awal = 00FFF + 1 = 01000 H

Alamat akhir = 01000 + 7FF = 017FF H

Untuk EEPROM = Alamat awal = 017FF + 1 = 01800 H

Alamat akhir = 01800 + 1FF = 019FF H


Untuk PIA = Alamat awal = 019FF + 1 = 01A00 H

Alamat akhir = 01A00 + 7F = 01A7F H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 00000 H
00FFF H
ROM 01000 H
017FF H
EEPROM 01800 H
019FF H
PIA 01A00 H
01A7F H
Kosong 01A80 H
FFFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A19A18A17A16 A15A14A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 00000 H 0000 0000 0000 0000 0000
00FFF H 0000 0000 1111 1111 1111
ROM 01000 H 0000 0001 0000 0000 0000
017FF H 0000 0001 0111 1111 1111
EEPROM 01800 H 0000 0001 1000 0000 0000
019FF H 0000 0001 1001 1111 1111
PIA 01A00 H 0000 0001 1010 0000 0000
01A7F H 0000 0001 1010 0111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A19 s/d A12 = dengan input 0000 0000
Untuk ROM = saluran alamat A19 s/d A11 = dengan input 0000 0001 0
Untuk EEPROM = saluran alamat A19 s/d A9 = dengan input 0000 0001 100
Untuk PIA = saluran alamat A19 s/d A7 = dengan input 0000 0001 1010 0
LATIHAN 14.8

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi system
mikroprosesor.

 Sebuah mikroprosesor 8 bit dengan 16 saluran


 Sebuah RAM 2 kByte dengan CS0 active low dan CS1 active high.
 Sebuah EEPROM 1,5 kByte dengan CS active low
 Sebuah ROM 500 Byte dengan CS active high
 Sebuah PIA 80 Byte dengan CS0 active high dan CS1 active low

Anda diminta untuk mendesain system mikroprosesor menggunakan:

1. Metode partially decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
16 saluran berarti:

Alamat awal 0000 0000 0000 0000


0 0 0 0
Alamat akhir 1111 1111 1111 1111
F F F F
Jadi, alamat awal memory space = 0000 H
alamat akhir memory space = FFFF H
 RAM 2 kByte = 21.210 Byte = 211 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM = 7FF H.
 EEPROM = 1,5 kByte = 2 kByte= 21210 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 7FF H.
 ROM = 500 Byte = 512 Byte = 29 Byte = 9 saluran

Nilai 1 1111 1111


Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = 1FF H
 PIA = 80 Byte = 128 Byte = 27 Byte = 7 saluran

Nilai 111 1111


Penjumlahan / 7 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = 7F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 0000 H

Alamat akhir = 0000 + 7FF = 07FF H

Untuk EEPROM = Alamat awal = 1000 H

Alamat akhir = 1000 + 7FF = 17FF H

Untuk ROM = Alamat awal = 2000 H

Alamat akhir = 2000 + 1FF = 21FF H

Untuk PIO = Alamat awal = 3000 H

Alamat akhir = 3000 + 7F = 307F H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 0000 H
07FF H
Kosong
EEPROM 1000 H
17FF H
Kosong
ROM 2000 H
21FF H
Kosong
PIA 3000 H
307F H
Kosong 4080 H
FFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A15A14 A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 0000 H 0000 0000 0000 0000
07FF H 0000 0111 1111 1111
EEPROM 1000 H 0001 0000 0000 0000
17FF H 0001 0111 1111 1111
ROM 2000 H 0010 0000 0000 0000
21FF H 0010 0001 1111 1111
PIA 3000 H 0011 0000 0000 0000
307F H 0011 0000 0111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A15 s/d A11 = dengan input 0000 0
Untuk EEPROM = saluran alamat A15 s/d A11 = dengan input 0001 0
Untuk ROM = saluran alamat A15 s/d A9 = dengan input 0010 000
Untuk PIA = saluran alamat A15 s/d A7 = dengan input 0011 0000 0

2. Metode fully decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
16 saluran berarti:

Alamat awal 0000 0000 0000 0000


0 0 0 0
Alamat akhir 1111 1111 1111 1111
F F F F
Jadi, alamat awal memory space = 0000 H
alamat akhir memory space = FFFF H
 RAM 2 kByte = 21.210 Byte = 211 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM = 7FF H.
 EEPROM = 1,5 kByte = 2 kByte= 21210 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 7FF H.
 ROM = 500 Byte = 512 Byte = 29 Byte = 9 saluran
Nilai 1 1111 1111
Penjumlahan / 1 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = 1FF H
 PIA = 80 Byte = 128 Byte = 27 Byte = 7 saluran

Nilai 111 1111


Penjumlahan / 7 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIA = 7F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 0000 H

Alamat akhir = 0000 + 7FF = 07FF H

Untuk EEPROM = Alamat awal = 07FF + 1 = 0800 H

Alamat akhir = 0800 + 7FF = 0FFF H

Untuk ROM = Alamat awal = 0FFF + 1 = 1000 H

Alamat akhir = 1000 + 1FF = 11FF H

Untuk PIO = Alamat awal = 11FF + 1 = 1200 H

Alamat akhir = 1200 + 7F = 127F H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 0000 H
07FF H
EEPROM 0800 H
0FFF H
ROM 1000 H
11FF H
PIA 1200 H
127F H
Kosong 1280 H
FFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A15A14 A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 0000 H 0000 0000 0000 0000
07FF H 0000 0111 1111 1111
EEPROM 0800 H 0000 1000 0000 0000
0FFF H 0000 1111 1111 1111
ROM 1000 H 0001 0000 0000 0000
11FF H 0001 0001 1111 1111
PIA 1200 H 0001 0010 0000 0000
127F H 0001 0010 0111 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A15 s/d A11 = dengan input 0000 0
Untuk EEPROM = saluran alamat A15 s/d A11 = dengan input 0000 1
Untuk ROM = saluran alamat A15 s/d A9 = dengan input 0001 000
Untuk PIA = saluran alamat A15 s/d A7 = dengan input 0001 0010 0

LATIHAN 14.9

Jika anda diberikan beberapa komponen berikut ini untuk dirangkai menjadi system
mikroprosesor.

 Sebuah mikroprosesor 8 bit dengan 16 saluran


 Sebuah RAM 1 4 kByte dengan CS0 active low dan CS1 active high.
 Sebuah RAM 2 2kByte dengan CS active low.
 Sebuah EEPROM 1 kByte dengan CS0 dan CS1 active high
 Sebuah ROM 3 kByte dengan CS active high
 Sebuah PIO 60 Byte dengan CS0 active high, CS1 dan CS2 active low

Anda diminta untuk mendesain system mikroprosesor menggunakan:

1. Metode partially decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
16 saluran berarti:

Alamat awal 0000 0000 0000 0000


0 0 0 0
Alamat akhir 1111 1111 1111 1111
F F F F
Jadi, alamat awal memory space = 0000 H
alamat akhir memory space = FFFF H
 RAM 1 = 4 kByte = 22.210 Byte = 212 Byte = 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 = FFF H.
 RAM 2 = 2 kByte = 21.210 Byte = 211 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 2 = 7FF H.
 EEPROM = 1 kByte = 210 Byte = 10 saluran

Nilai 11 1111 1111


Penjumlahan / 3 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 3FF H.
 ROM = 3 kByte = 4 kByte = 22210 Byte = 212 Byte= 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = FFF H
 PIO = 60 Byte = 64 Byte = 26 Byte = 6 saluran

Nilai 11 1111
Penjumlahan / 3 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIO = 3F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 0000 H

Alamat akhir = 0000 + FFF = 0FFF H

Untuk RAM 2 = Alamat awal = 1000 H

Alamat akhir = 1000 + 7FF = 17FF H

Untuk EEPROM = Alamat awal = 2000 H


Alamat akhir = 2000 + 3FF = 23FF H

Untuk ROM = Alamat awal = 3000 H

Alamat akhir = 3000 + FFF = 3FFF H

Untuk PIO = Alamat awal = 4000 H

Alamat akhir = 4000 + 3F = 403F H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 0000 H
0FFF H
Kosong
RAM 2 1000 H
17FF H
Kosong
EEPROM 2000 H
23FF H
Kosong
ROM 3000 H
3FFF H
Kosong
PIA 4000 H
403F H
Kosong 4040 H
FFFF H

b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A15A14 A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 0000 H 0000 0000 0000 0000
0FFF H 0000 1111 1111 1111
RAM 2 1000 H 0001 0000 0000 0000
17FF H 0001 1111 1111 1111
EEPROM 2000 H 0010 0000 0000 0000
23FF H 0010 0011 1111 1111
ROM 3000 H 0011 0000 0000 0000
3FFF H 0011 1111 1111 1111
PIA 4000 H 0100 0000 0000 0000
403F H 0100 0000 0011 1111
Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing
komponen adalah
Untuk RAM 1 = saluran alamat A15 s/d A12 = dengan input 0000
Untuk RAM 2 = saluran alamat A15 s/d A13 = dengan input 000
Untuk EEPROM = saluran alamat A15 s/d A12 = dengan input 0010
Untuk ROM = saluran alamat A15 s/d A12 = dengan input 0011
Untuk PIA = saluran alamat A15 = dengan input 0

2. Metode fully decoded addressing, dengan tahapan berikut ini.


a. Desainlah memory map dan table saluran alamatnya:
 Mikroprosesor yang digunakan 8 bit berarti:
Word size-nya = 8 bit = 1 Byte
1 word = 1 Byte, sehingga tidak perlu mengkonversikan komponen lainnya ke
satuan word.
 Menentukan alamat awal dan alamat akhir memory space
16 saluran berarti:

Alamat awal 0000 0000 0000 0000


0 0 0 0
Alamat akhir 1111 1111 1111 1111
F F F F
Jadi, alamat awal memory space = 0000 H
alamat akhir memory space = FFFF H
 RAM 1 = 4 kByte = 22.210 Byte = 212 Byte = 12 saluran

Nilai 1111 1111 1111


Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 1 = FFF H.
 RAM 2 = 2 kByte = 21.210 Byte = 211 Byte = 11 saluran

Nilai 111 1111 1111


Penjumlahan / 7 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan RAM 2 = 7FF H.
 EEPROM = 1 kByte = 210 Byte = 10 saluran

Nilai 11 1111 1111


Penjumlahan / 3 F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan EEPROM = 3FF H.
 ROM = 3 kByte = 4 kByte = 22210 Byte = 212 Byte= 12 saluran
Nilai 1111 1111 1111
Penjumlahan / F F F
pengurangannya=
Jadi nilai penjumlahan / pengurangan ROM = FFF H
 PIO = 60 Byte = 64 Byte = 26 Byte = 6 saluran

Nilai 11 1111
Penjumlahan / 3 F
pengurangannya=
Jadi nilai penjumlahan / pengurangan PIO = 3F H.
 Menentukan alamat awal dan alamat akhir masing–masing komponen.

Untuk RAM 1 = Alamat awal = 0000 H

Alamat akhir = 0000 + FFF = 0FFF H

Untuk RAM 2 = Alamat awal = 0FFF + 1 H = 1000 H

Alamat akhir = 1000 + 7FF = 17FF H

Untuk EEPROM = Alamat awal = 17FF + 1 = 1800 H

Alamat akhir = 1800 + 3FF = 1BFF H

Untuk ROM = Alamat awal = 1BFF + 1 = 1C00 H

Alamat akhir = 1C00 + FFF = D0FF H

Untuk PIO = Alamat awal = D0FF + 1 = D100 H

Alamat akhir = D100 + 3F = D13F H

 Sehingga hasil desain memory map-nya diperoleh sebagai berikut

RAM 1 0000 H
0FFF H
RAM 2 1000 H
17FF H
EEPROM 1800 H
1BFF H
ROM 1C00 H
D0FF H
PIO D100 H
D13F H
Kosong D140 H
FFFF H
b. Desainlah rangkaian address decoder-nya

Memory Map Tabel Saluran Alamat


A15A14 A13A12 A11A10A9A8 A7A6A5A4 A3A2A1A0
RAM 1 0000 H 0000 0000 0000 0000
0FFF H 0000 1111 1111 1111
RAM 2 1000 H 0001 0000 0000 0000
17FF H 0001 0111 1111 1111
EEPROM 1800 H 0001 1000 0000 0000
1BFF H 0001 1011 1111 1111
ROM 1C00 H 0001 1100 0000 0000
D0FF H 1101 0000 1111 1111
PIA D100 H 1101 0001 0000 0000
D13F H 1101 0001 0011 1111

Dapat disimpulkan bahwa input rangkaian Address Decoder untuk masing-masing


komponen adalah
Untuk RAM 1 = saluran alamat A15 s/d A12 = dengan input 0000
Untuk RAM 2 = saluran alamat A15 s/d A11 = dengan input 0001 0
Untuk EEPROM = saluran alamat A15 s/d A10 = dengan input 0001 10
Untuk ROM = saluran alamat A13 s/d A12 = dengan input 01
Untuk PIA = saluran alamat A15 s/d A9 = dengan input 1101 000

SOAL REVIEW

1.tentukan alamat yang isinya berubah setelah program pendek ini;

Alamat Memori program artinya Isi ACC Isi PC


0B LOAD # 23 A=23 23 1
0C ADD @ 52 ((52)) + (A) > A 69 2
0D STORE @ 50 A > 50 53 3
0E LOAD 47 (A)>47 61 4
0F ADD 61 (61)+(A)>A 22 5
10 STORE 52 A=52 47 6
11 ADD # 04 04 + (A) > A 71 7
12 STORE @ 50 A > 50 53 8

KONDISI AWAL

ALAMAT DATA MEMORI


23 53
; ;
47 34
; ;
50 23
51 61
52 47
; ;
61 62

2.desainlah program dalam bahasa assembly ntuk memindahkan isi alamat 0031H s/d004A H
kealamat 0051 H s/d 006A H .jelaskan intruks dlam program ;

Jawab;

byt kode intruksi artinya


e
3 21 LXI H,31H 0031H >HL ;jadi (HL) = 0031H = M
1 7E MOV A,M (M=(HL)=0031)>A;(A)=(M) =(0031H)
1 23 INX H (HL) +1 >HL;(HL)= 0032 H=M
1 86 ADD M (A)+(M=42H)>A .(A)=(0031H)+(0032H)
3 32 STA 0051H s/d 006A H. (A)> 0051 H s/d 006A H; 0051H s/d 006A H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini
3.desainlah program untuk system mikroprosesor dalam bahasa assembly untuk
menambahkan /menjumlahkan isi alamat 61 H ,62 H ,da nisi alamat 64 H ,kemudian hassilnya
disimpan dialamat 71 H dan ke registesr B .tetapi sebelum hasil tersebut disimpan ,maka isi dar
alamat 1 H diamankan / disimpan dialammat 81H ,sedangkan isi register B diamankan /disimpan
ke alamat ynag berada di register c ,selanjutnya ,hasilnya disimpan di register B diklikan dengan
angka 4 dan hasilnya disimpan ke alamat yang diinformasikan ada di alaamat 82 H ,jelakan
secara singkat di programnya ;

JAWAB;

(61H)+ (62H) +( 64H) > 71H > 82H

Demikian programnya ;

byte kode intruksi Deskripsi

1 97 SUB A Clear (A) + carry

3 21 LXI H , 60 H 60 H > HL = 0060 = M

1 46 MOV B,M (M=(HL) > B ; (B) = 04,sebagai counter

1 23 JUML ;INX H (HL )+ 1 > HL ; (HL) =0061 =M

1 86 ADD M (A) + (M= 0061 H ) > A

1 05 DCR B (A) -1 > bekurang 1

3 C2 JNZ JUML JUMP jika (B) x 4 = 4 JUMP if FOUR = 4

3 32 STA 82 H (A) >82 H

3 32 STA 71 H (A) >71 H

1 76 HLT STOP PROGRAM INI


19 byte

4. a.desainlah program dalam bahasa assembly untuk menambahkan atau menjumlahkan isi
alamat 0061 H s/d 0072 H , dan alamat disimpan di alamat 0071 H s/d 007BH .diasumsikan
tidak menghasilkan carry

b. ubahlah terjemahan / transferlah desain program anda pada nomor a tersebut dalam bentuk
bilangan heksadesimalnya yang penenmpatanya programnya diawali dengan alamat 0000H.

C.berapakah jumlah byte yang dibutuhkan untuk program pada nomor a

Jawab;

a. Persoalan ini dapat ditulis secra sederhana;

(0061H)+(0062H) +(0063H+(0064H) +…+(0072H) > 0071 H s/d 007BH

Dengan berikut programnya ;

byte Kod intruksi artinya


e

1 97 SUB A Clear (A) + carry

2 06 MVI B,0021 21 H > B ;(B)= 0021 ,sebagai counter

3 21 LXI,0061 H 0061H >HL;jadi (HL) = 0061= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0062 = M


1 86 ADD M (A)+ (M =0062) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 0061 H s/d 0072 (A) > 0071 H s/d 007BH


H

1 76 HLT STOP PROGRAM INI

25 byte>membutuhkan 25 lokasi
alamat dalam program ini

b. Persoalan ini dapat ditulis secra sederhana;

byt Kode intruksi artinya


e
3 21 LXI H,0061H 0061H >HL ;jadi (HL) = 0061H = M
1 7E MOV A,M (M=(HL)=0061)>A;(A)=(M) =(0061H)
1 23 INX H (HL) +1 >HL;(HL)= 0062 H=M
1 86 ADD M (A)+(M=0062H)>A .(A)=(0061H)+(0062H)
3 32 STA. 0061 H s/d 0072 (A)> 0071 H s/d 007B H; 0071 H s/d 007BH
H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

Alamat Intruksi Hexadecimal


00 LXI H ,0061 21
01 50
02 00
03 MOV A,M 7E
04 INX H 23
05 ADD M 86
06 STA 0061 H s/d 0072 H 32
07 50
08 00
09 HLT 76

C.25 byte

5. desainlah program dalam bahasa assembly ntuk memindahkan isi alamat 0031H s/d004A H
kealamat 0051 H s/d 006A H .jelaskan intruks dlam program ;

Jawab;

byt kode intruksi artinya


e
3 21 LXI H,31H 0031H >HL ;jadi (HL) = 0031H = M
1 7E MOV A,M (M=(HL)=0031)>A;(A)=(M) =(0031H)
1 23 INX H (HL) +1 >HL;(HL)= 0032 H=M
1 86 ADD M (A)+(M=42H)>A .(A)=(0031H)+(0032H)
3 32 STA 0051H s/d 006A H. (A)> 0051 H s/d 006A H; 0051H s/d 006A H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

6.desainlah program dalam bahasa assembly ntuk memindahkan isi alamat 0021H s/d003E H
kealamat 0041 H s/d 005E H .jelaskan intruks dlam program ;

Jawab;

byt kode intruksi artinya


e
3 21 LXI H,21H 0021H >HL ;jadi (HL) = 0021H = M
1 7E MOV A,M (M=(HL)=0021)>A;(A)=(M) =(0021H)
1 23 INX H (HL) +1 >HL;(HL)= 0022 H=M
1 86 ADD M (A)+(M=0022H)>A .(A)=(0021H)+(0022H)
3 32 STA 0041H s/d 005E H. (A)> 0041 H s/d 005E H; 0041H s/d 005E H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

7. a.desainlah program dalam bahasa assembly untuk menambahkan atau menjumlahkan isi
alamat 0031 H s/d 0038 H , dan alamat disimpan di alamat 0041 H s/d 0049 H .diasumsikan
tidak menghasilkan carry

b. ubahlah terjemahan / transferlah desain program anda pada nomor a tersebut dalam bentuk
bilangan heksadesimalnya yang penenmpatanya programnya diawali dengan alamat 0000H.

C.berapakah jumlah byte yang dibutuhkan untuk program pada nomor a

Jawab;

a. Persoalan ini dapat ditulis secra sederhana;

(0031H)+(0032H) +(0033H+(0034H) +…+(0038H) > 0041 H s/d 0049 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,0007 0007 H > B ;(B)= 0007 ,sebagai counter

3 21 LXI,0031 H 0031H >HL;jadi (HL) = 0031= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0032 = M

1 86 ADD M (A)+ (M =0032) > A


(B) -1 >B ;isi B bekurang 1
1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 0041 H s/d 0049 (B) > 0031 H s/d 0039H


H

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

b. Persoalan ini dapat ditulis secra sederhana;

byt kode intruksi artinya


e
3 21 LXI H,0031H 0031H >HL ;jadi (HL) = 0031H = M
1 7E MOV A,M (M=(HL)=0031)>A;(A)=(M) =(0031H)
1 23 INX H (HL) +1 >HL;(HL)= 0032 H=M
1 86 ADD M (A)+(M=0032H)>A .(A)=(0031H)+(0032H)
3 32 STA. 0041 H s/d 0049 (A)> 0031 H s/d 0039 H; 0031 H s/d 0039 H
H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

Alamat Intruksi Hexadecimal


00 LXI H ,0031 21
01 50
02 00
03 MOV A,M 7E
04 INX H 23
05 ADD M 86
06 STA 0041 H s/d 0049 H 32
07 50
08 00
09 HLT 76

C.16 byte

8.desainlah program untuk system mikroprosesor dalam bahsa assembly untuk memindahkan
atau menjumlahkan isi alamat 53 H dan isi dari alamat 54 H kemudian hasil penjumlahan
tersebut dikalika dengan 3 dan hasil akhirnya disimpan ke alamat 60 H .tetapi seblum hasil di
simpan maka terlebih dahulu ke alamat 70 H

JAWAB;

(53H)+ (54H) > 70H > 60H

Demikian programnya ;

byte kode intruksi Deskripsi

1 97 SUB A Clear (A) + carry

3 21 LXI H , 52 H 52 H > HL = 0052 = M

1 46 MOV B,M (M=(HL) > B ; (B) = 03,sebagai counter

1 23 JUML ;INX H (HL )+ 1 > HL ; (HL) =0041 =M

1 86 ADD M (B) + (M= 53 H ) > A

1 05 DCR B (C) -1 > bekurang 1

3 C2 JNZ JUML JUMP jika (B) x 3 = 3 JUMP if three = 3


3 32 STA 70 H (B) >70 H

3 32 STA 60 H (B) >60 H

1 76 HLT STOP PROGRAM INI

19 byte

10.desainlah program dalam bahasa assembly ntuk menambahkan isi alamat 0031 H s/d 004A H

Ke alamat 0051 H s/d 006A H ,jelaskan secara singkat

Jawab;

byt kode intruksi artinya


e
3 21 LXI H,31H 0031H >HL ;jadi (HL) = 0031H = M
1 7E MOV A,M (M=(HL)=0031)>A;(A)=(M) =(0031H)
1 23 INX H (HL) +1 >HL;(HL)= 0032 H=M
1 86 ADD M (A)+(M=42H)>A .(A)=(0031H)+(0032H)
3 32 STA 0051H s/d 006A H. (A)>0051 H s/d 006A H; 0051H s/d 006A H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

11.a.desainlah program dalam bahasa assembly untuk menambahkan atau menjumlahkan isi
alamat 0061 H s/d 0072 H , dan alamat disimpan di alamat 0071 H s/d 007BH .diasumsikan
tidak menghasilkan carry

b. ubahlah terjemahan / transferlah desain program anda pada nomor a tersebut dalam bentuk
bilangan heksadesimalnya yang penenmpatanya programnya diawali dengan alamat 0000H.
C.berapakah jumlah byte yang dibutuhkan untuk program pada nomor a

Jawab;

a.Persoalan ini dapat ditulis secra sederhana;

(0061H)+(0062H) +(0063H+(0064H) +…+(0072H) > 0071 H s/d 007BH

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,0021 21 H > B ;(B)= 0021 ,sebagai counter

3 21 LXI,0061 H 0061H >HL;jadi (HL) = 0061= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0062 = M

1 86 ADD M (A)+ (M =0062) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 0061 H s/d 0072 (B) >0071 H s/d 007BH


H

1 76 HLT STOP PROGRAM INI

25 byte>membutuhkan 25 lokasi
alamat dalam program ini

b.Persoalan ini dapat ditulis secra sederhana;


byt kode intruksi artinya
e
3 21 LXI H,0061H 0061H >HL ;jadi (HL) = 0061H = M
1 7E MOV A,M (M=(HL)=0061)>A;(A)=(M) =(0061H)
1 23 INX H (HL) +1 >HL;(HL)= 0062 H=M
1 86 ADD M (A)+(M=0062H)>A .(A)=(0061H)+(0062H)
3 32 STA. 0061 H s/d 0072 (A)>0071 H s/d 007BH; 0071 H s/d 007BH
H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

Alamat Intruksi Hexadecimal


00 LXI H ,0061 21
01 50
02 00
03 MOV A,M 7E
04 INX H 23
05 ADD M 86
06 STA 0061 H s/d 0072 H 32
07 50
08 00
09 HLT 76

C.25 byte

12. jelaskan dengan singkat dan berikanlah contohnya ,perbedaan nya stack RAM ,stack Pointer
dan stack addressing

Jawab;

 Stack addresing : -pengalamatan yng alamat efektifnya (alamat yang dituju ) ditentukan
dengan isi stack pointer jadi alamat yang dituju
-isi sp harus ditentukan terlebih dahulu dan perlu hati hati dalam
menentukan

Isi sp dikarenakan sp lebh banyak digunakan untuk mengatur operasi


 Stack pointer :-register alamat yang terletak didalam mikroprosesor dan digunakan unutk
Menyimpan ‘sebuah’ alamat dari stack RAM

-isi stack RAM yang terakhir masuk

 Stack RAM ;-suatu memori baca tulis (RAM) yang pada umunya terletak di luar
mikroprosesor
-untuk menyimpan data penting dalam operassi operasi yang menggunakan
sp

13.jelaskan dengan siingkat dan berikanlah contoh persaaman dari

a.register indirect addressing dengan indirect addressing

b.program counter dengan stack pointer

jawab;

a.bentuk indirect addressing dengan indirect addressing serupa

b.menyimpan alamatintruksi berikutnya yang akan diesekusi dari memori

14. jelakan dengan singkat perbedaaan ;

a.register direct addressing dengan inderect addressing

b.relative addressing dengan indirect addressing

jawab;

a.perbedaanya hanya pada informasi alamat yang dituju tidak disimpan di dalam memori ,tetapi
disimpan dalam register yang merupakan bagian intruksi .jadi alamat tempat adadalam register
tersebut

b.perbedaanya itu terletak pada tempat pengambilan alamat efektifnya untuk mengakses suatu
data tertentu
15. desainlah sebuah program dalam bahasa assembly untuk system mikroprpsesor untuk
melaksanakan opersai berikut ini

 Menentukan nilai maksimm dan minimum dari sejumlah data yang berada pada lokasi
alamat 61 H s/d 8A H ,kemudian hasilnya disimpan di alamat 5F H dan dialamat 60 H
 Pada saat yang bersamaan seluruh data pada lokasi atau alamat 61 H s/d 8A H
dijumlahkan kemudian hasilnya disimpan dialamat 5E H
 Untuk mempermudahkan program anda ,banyaknya data yang dibandingkan tau
dijumlahkan adalah 8AH – 61 H +1H = 2AH ,disimpan dilokasi alamat 60H
 Diasiumsikan bahwa hasil penjumlahan data yang merupakan isi alamat 61 H s/d 8A
tidak menghassilkan carry
Jawab;

Nilai mksimumnya yaitu 8A


Nilai minimumnya yaitu 61

.Persoalan ini dapat ditulis secra sederhana;

(61H)+…..+(8AH) > 5F H s/d 60 H

Lokasi yang diJumlahkan ; 8AH – 61H +1H = 2AH

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,2AH 2AH > B ;(B)=2AH ,sebagai counter

3 21 LXI, 5F H 5F H >HL;jadi (HL) = 005F = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0006= M

1 86 ADD M (A)+ (M =)06 > A


(B) -1 >B ;isi B bekurang 1
1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (A) > 2CH

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 2AH 06

02 28

03 LXI ,H , 60 H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86
08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 60 H s/d 69H 32

0D 40

0E 00

0F HLT 76

16.diketahui kondisi awal Stack RAM ,stack pointer dan program counter berikut ini

Stack RAM

ALAMAT ISI / DATA


; ;
E009 ;
E00A ;
E00B E0
E00C F3
E00D E5

MEMORI Proses Urutan Tos RAM sp pc


ala Isi/data (setelah pelaksaan alamat isi
mat intruksi…….)
; ; ; ; ; ; ;
40 CALL CALL 1 E00A DA E00A 82
subrution 1 subrution 1
41 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
50 CALL CALL 8 E00B E0 E00B 328
subrution 3 subrution 3
51 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
60 Start Start 2 E00A DA E00A 83
subrution 1 subrution 1
; ; ; ; ; ; ; ;
70 CALL CALL 3 E009 76 E009 164
subrution 2 subrution 2
71 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
80 RETURN RETURN sub 7 E00C F3 E00C 189
sub 1 1
; ; ; ; ; ; ; ;
90 Start Start 4 E009 76 E009 165
subrution 2 subrution 2
; ; ; ; ; ; ; ;
AD RETURN RETURN sub 6 E00B EO E00B 41
sub 2 2
; ; ; ; ; ; ; ;
B0 Start Start 9 E00B E0 E00B 329
subrution 3 subrution 3
; ; ; ; ; ; ; ;
CO RETURN RETURN sub 5 E00A DA E00A 76
sub 3 3
; ; ; ; ; ; ; ;

17.diketahui kondisi awal Stack RAM ,stack pointer dan program counter berikut ini

Stack RAM

ALAMAT ISI / DATA


; ;
E008 ;
E009 ;
E00A DA
E00B E3
E00C B9
MEMORI Proses Urutan Tos RAM sp pc
ala Isi/data (setelah pelaksaan alamat isi
mat intruksi…….)
; ; ; ; ; ; ; ;
20 CALL CALL 1 E009 DA E009 42
subrution 1 subrution 1
21 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
30 CALL CALL 5 E007 ; E007 164
subrution 3 subrution 3
31 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
40 Start Start 2 E009 ; E009 43
subrution 1 subrution 1
; ; ; ; ; ; ; ;
50 CALL CALL 3 E008 ; E008 82
subrution 2 subrution 2
51 ; ; ; ; ; ; ;
; ; ; ; ; ; ; ;
60 RETURN RETURN sub 9 E008 ; E008 20
sub 1 1
; ; ; ; ; ; ; ;
70 Start Start 4 E008 ; E008 83
subrution 2 subrution 2
; ; ; ; ; ; ; ;
80 RETURN RETURN sub 8 E009 ; E009 21
sub 2 2
; ; ; ; ; ; ; ;
90 Start Start 6 E007 ; E007 165
subrution 3 subrution 3
; ; ; ; ; ; ; ;
AO RETURN RETURN sub 7 E00A DA E00A 87
sub 3 3
; ; ; ; ; ; ; ;
Benk

18.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


mengurangkan dua bilangan hexadecimal yang berada di lokasialamat 51H dengan bilangan di
lokasi 52 H ,hasilya disimpan di alamat 53 H ,serta diasumsikan bahwa hasilnya tidak negative.

Jawab;

Persoalan tersebut dapat ditulis secara sederhana seperti berikut ini ;

(51H)-(52H)> (53H)

BYTE Kode rahasia Intruksi artinya


3 3A LDA 51H (51)>A;jadi(A)=(51H)
1 47 MOV B,A (A)>B ;jadi (A)=(51H),diamankan
3 3A LDA 52 H (52H)>A;jadi (A)=(52H)
1 80 ADD B (A)-(B) > A ; (A) = (51H) + (52H)
3 32 STA 53 H A>52H;(52H) = (A) = (51H) + (52H)
1 76 HLT STOP PROGRAM INI
12 Byte > membutuhkan lokasi alamat untu program

Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

ALAMAT Intruksi HEXADESIMAL


00 LDA 51H 3A
01 51
02 00
03 MOV B,A 47
04 LDA 52 H 3A
05 52
06 00
07 ADD B 80
08 STA 53 H 32
09 52
0A 00
0B HLT 76
19.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk
memindahkan atau mengcopykan isi lokasi alamat 41 H ke alamat 42 H s/d 46 H.

Jawab;

byte kode intruksi artinya


3 21 LXI H,41H 41H >HL ;jadi (HL) = 0041H = M
1 7E MOV A,M (M=(HL)=41)>A;(A)=(M) =(41H)
1 23 INX H (HL) +1 >HL;(HL)= 0042 H=M
1 86 ADD M (A)+(M=42H)>A .(A)=(41H)+(42H)
3 32 STA 42 H s/d 46 H. (A)> 42 H s/d 46 H; 42H s/d 46 H
1 76 HLT STOP PROGRM INI
10 Byte >membutuhkan 10 lokasi alamat dalam program ini

Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

Alamat Intruksi Hexadecimal


00 LXI H ,41 21
01 50
02 00
03 MOV A,M 7E
04 INX H 23
05 ADD M 86
06 STA 42H s/d 46 H 32
07 50
08 00
09 HLT 76

20.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


menjumlahkan beberapa bilangan heksadesimal yang berada dilokasi alamat 51H s/d
5AH,kemudian hasilnya disimpan di alamat 61 H s/d 63 H ,serta diasumsikan bahwa hasil akhir
tidak mengandung carry.

Jawab;

Persoalan ini dapat ditulis secra sederhana;

(51H)+(52H) +(53H+(54H) +…+(5AH) >61H s/d 63 H

Dengan berikut programnya ;


byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,101 101 H > B ;(B)= 101 ,sebagai counter

3 21 LXI,51 H 51H >HL;jadi (HL) = 0051= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0052 = M

1 86 ADD M (A)+ (M =52) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (C) >61H s/d 63 H

1 76 HLT STOP PROGRAM INI

25 byte>membutuhkan 25 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 101H 06
02 28

03 LXI ,H , 51H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 61H s/d 63 H 32

0D 40

0E 00

0F HLT 76

21.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


mengurangkan beberapa bilangan heksadesimal yang berada dilokasi alamat 51H s/d
5AH,kemudian hasilnya disimpan di alamat 61 H s/d 63 H ,serta diasumsikan bahwa hasil akhir
tidak mengandung carry.

Jawab;

Persoalan ini dapat ditulis secra sederhana;

(51H)-(52H) -(53H)-(54H) -…-(5AH) >61H s/d 63 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,9 9 H > B ;(B)= 9 ,sebagai counter

3 21 LXI,51 H 51H >HL;jadi (HL) = 0051= M

1 23 JUML;INX H (HL)-1>HL ;(HL) = 0050 = M

1 86 ADD M (A)- (M =50) > A

(B) +1 >B ;isi B bertambah 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (D) >61H s/d 63 H

1 76 HLT STOP PROGRAM INI

25 byte>membutuhkan 25 lokasi
alamat dalam program ini
Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 9H 06

02 28

03 LXI ,H , 51H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 61H s/d 63 H 32

0D 40

0E 00

0F HLT 76
22.desainlah program mikroprosesor menggunakan bahasa rakitan untuk menjumlahkan isi
alamat 2DH s/d 62H (jadi (2DH)-(2EH)-(2FH) dst nya).. Serta diasumsikan bahwa hasil akhir
penjumlahannya tidak menghasilkan carry.kemudian hasilnya disimpan;

a.di alamat 2CH

b.di alamat 63H s/d 7A H

jawab;

a.Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) > 2CH

Lokasi yang diJumlahkan ; 62H – 2DH +1H = 40 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,40 40 H > B ;(B)=40 ,sebagai counter

3 21 LXI, 2C H 2CH >HL;jadi (HL) = 002C = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 002D = M

1 86 ADD M (A)+ (M =2D) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B
3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (B) > 2CH

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 40H 06

02 28

03 LXI ,H , 2CH 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05
09 JNX JUML C2

0A 05

0B 00

0C STA 2C H 32

0D 40

0E 00

0F HLT 76

b..Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) >63H s/d 7A H

Lokasi yang diJumlahkan ; 62H – 2DH +1H = 40 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,40 40 H > B ;(B)=40 ,sebagai counter

3 21 LXI, 2C H 2CH >HL;jadi (HL) = 002C = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 002D = M


1 86 ADD M (A)+ (M =2D) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (E) >63H s/d 7A H

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 40H 06

02 28

03 LXI ,H , 2CH 21

04 42

05 JUML 00

06 INX H 23
07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 63H s/d 7A H 32

0D 40

0E 00

0F HLT 76

23.desainlah program mikroprosesor menggunakan bahasa rakitan rakitan untuk menjumlahkan


isi alamat 2DH s/d 62H (jadi (2DH)-(2EH)-(2FH) dst nya).. Serta diasumsikan bahwa hasil akhir
penjumlahannya tidak menghasilkan carry.kemudian hasilnya disimpan;

a.di alamat 2CH

b.di alamat 63H s/d 7A H

jawab;

a.Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) > 2CH

Lokasi yang diJumlahkan ; 62H – 2DH +1H = 40 H


Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,40 40 H > B ;(B)=40 ,sebagai counter

3 21 LXI, 2C H 2CH >HL;jadi (HL) = 002C = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 002D = M

1 86 ADD M (A)+ (M =2D) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (C) > 2CH

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97
01 MVI B , 40H 06

02 28

03 LXI ,H , 2CH 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 2C H 32

0D 40

0E 00

0F HLT 76

b..Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) >63H s/d 7A H


Lokasi yang diJumlahkan ; 62H – 2DH +1H = 40 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,40 40 H > B ;(B)=40 ,sebagai counter

3 21 LXI, 2C H 2CH >HL;jadi (HL) = 002C = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 002D = M

1 86 ADD M (A)+ (M =2D) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (F) >63H s/d 7A H

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;
ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 40H 06

02 28

03 LXI ,H , 2CH 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 63H s/d 7A H 32

0D 40

0E 00

0F HLT 76
24.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk
mengurangkan isi alamat 2DH s/d 62H (jadi (2DH)-(2EH)-(2FH) dst nya).. Serta diasumsikan
bahwa hasil akhir pengurangannya bukan bilangan negatif.kemudian hasilnya disimpan;

a.di alamat 2CH

b.di alamat 63H s/d 7A H

jawab;

a.Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) > 2CH

Lokasi yang diJumlahkan ; 62H + 2DH -1H = 84 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,84 84 H > B ;(B)= 84 ,sebagai counter

3 21 LXI, 2C H 2DH >HL;jadi (HL) = 002D = M

1 23 JUML;INX H (HL)-1>HL ;(HL) = 002C = M

1 86 ADD M (A)+ (M =2C) > A


(B) +1 >B ;isi B bertambah 1
1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (D) > 2CH

1 76 HLT Stop program ini

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 84H 06

02 28

03 LXI ,H , 2CH 21

04 42

05 JUML 00

06 INX H 23
07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 2C H 32

0D 40

0E 00

0F HLT 76

b..Persoalan ini dapat ditulis secra sederhana;

(2DH)+…..+(62H) >63H s/d 7A H

Lokasi yang diJumlahkan ; 62H – 2DH +1H = 84 H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,84 84 H > B ;(B)= 84 ,sebagai counter


3 21 LXI, 2C H 2DH >HL;jadi (HL) = 002D = M

1 23 JUML;INX H (HL)-1>HL ;(HL) = 002C = M

1 86 ADD M (A)-(M =2C) > A

(B) +1 >B ;isi B bertambah 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (G) >63H s/d 7A H

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 40H 06

02 28

03 LXI ,H , 2CH 21

04 42
05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 63H s/d 7A H 32

0D 40

0E 00

0F HLT 76

25.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


menjumlahkan 52 H s/d 70 H serta diasumsikan bahwa hasil penjumlahannya tidak
menghasilkan carry .kemudian hasilnya disimpan di alamat 60 H s/d 69 H .tetapi sebelum hasil
penjumlahan tadi disimpan di alamat 60 H s/d 69 H ,maka data yang ada di alamat tersebut ( di
60 H s/d 69 H ) harus diamankan di alamat 91 H s/d 9A H .

Jawab;

Persoalan ini dapat ditulis secara sederhana;

(52H)+…..+(70H) > 60 H s/d 69H

Lokasi yang diJumlahkan ; 70H – 52H +1H = 19 H

Dengan berikut programnya ;


byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,19 19 H > B ;(B)=19 ,sebagai counter

3 21 LXI, 51 H 51H >HL;jadi (HL) = 0051 = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0052 = M

1 86 ADD M (A)+ (M =52) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (H) > 60H s/d 69H

1 76 HLT STOP PROGRAM INI

16 byte>membutuhkan 16 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL


00 SUB A 97

01 MVI B , 19H 06

02 28

03 LXI ,H , 51 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 60 H s/d 69 H 32

0D 40

0E 00

0F HLT 76
26.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk
menjumlahkannya dua bilangan heksadesimal 80 digit ,jika mikroprosesor yang digunakan
mempunyai word size 8 bit .dimisalkan bahwa bilangan desimal 80 digit yang akan dijumlahkan
berada pada lokasi alamat 51 H s/d 5A H serta bilangan hexadesimal 80 digit lainnya (sebagai
penjumlahannya ) berada pada lokasi alamat 61 H s/d 6A H.selanjutnya hasil penjumlahannya
tersebut disimpan ;

a.di alamat 60 H s/d 69 H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

b.di alamat 91 H s/d 9A H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

jawab;

a.persoalan dapat ditulis dengan persamaan berikut;

(60)+(61)+(62)+(63)+(64)+(65)+(66)+(67)+(68)+(69)+(70)+(71)+(72)+(73)+(74)+(75)+(76)+(7
7)+(78)+(79) > (60)+(61)+(62)+(63)+(64)+(65)+(66)+(67)+(68)+(69)

byte kode Intruksi Ripsi atau artinya


3 3A LDA 60 H (60H)>A ;jadi (A) =(60H)
1 47 MOV (A)>B;jadi (B)=(60H),diamankan
3 3A LDA 61 H (61H)>A ;jadi (A) =(61H)
1 80 ADD B (A)+(B)>A;(A)=(60H)+(61H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 62 H (62H)>A ;jadi (A) =(62H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (62H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 63 H (63H)>A ;jadi (A) =(63H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (63H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 64 H (64H)>A ;jadi (A) =(64H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (64H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 65 H (65H)>A ;jadi (A) =(65H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (65H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 66 H (66H)>A ;jadi (A) =(66H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (66H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 67 H (67H)>A ;jadi (A) =(67H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (67H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 68 H (68H)>A ;jadi (A) =(68H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (68H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 69 H (69H)>A ;jadi (A) =(69H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (69H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 70 H (70H)>A ;jadi (A) =(70H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (70H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 71 H (71H)>A ;jadi (A) =(71H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (71H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 72 H (72H)>A ;jadi (A) =(72H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (72H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 73 H (73H)>A ;jadi (A) =(73H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (73H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 74 H (74H)>A ;jadi (A) =(74H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (74H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 75 H (75H)>A ;jadi (A) =(75H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (75H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 76 H (76H)>A ;jadi (A) =(76H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (76H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 77 H (77H)>A ;jadi (A) =(77H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (77H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 78 H (78H)>A ;jadi (A) =(78H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (78H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 79 H (79H)>A ;jadi (A) =(79H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (79H)
3 32 STA 60Hs/d69H (A)>60Hs/d69H; 60Hs/d69H=60Hs/d69H
70Hs/d79H
1 76 HLT Stop program ini
126 byte > membutuhkan 126 lokasi untuk program
Dari hasil program tersebut terlihat adanya tiga intruksi berulang yaitu MOV B,A kemudian
LDA XXH dan ADD

Program tersebut walaupun berulang ,tetapi tidak dapat dibuat lopping karena berulangnya tidak
sama persis sama ,yaitu adakalanya LDA XXH ,nilai XX nya berbeda beda.

Program tersebut bila ditulis lengkap sesuai format bakunya ,dengan lokasi alamat beserta isinya
dalam hexadecimal seperti berikut;

Alamat memori instruksi hexadesimal


00 LDA 60 3A
01 41
02 00
03 MOV A,B 47
04 LDA 61 3A
05 42
06 00
07 ADD B 80
08 MOV A,B 47
09 LDA 62 3A
0A 43
0B 00
0C ADD B 80
0D MOV A,B 47
0E LDA 63 3A
0F 44
01 00
11 ADD B 80
12 MOV A,B 47
13 LDA 64 3A
14 45
15 00
16 ADD B 80
17 MOV A,B 47
18 LDA 65 3A
19 46
1A 00
1B ADD B 80
1C MOV A,B 47
1D LDA 66 3A
1E 47
1F 00
02 ADD B 80
21 MOV A,B 47
22 LDA 67 3A
23 48
24 00
25 ADD B 80
26 MOV A,B 47
27 LDA 68 3A
28 49
29 00
2A ADD B 80
2B MOV A,B 47
2C LDA 69 3A
2D 50
2E 00
2F ADD B 80
03 MOV A,B 47
31 LDA 70 3A
32 51
33 00
34 ADD B 80
35 MOV A,B 47
36 LDA 71 3A
37 52
38 ADD B 80
39 MOV A,B 47
3A LDA 72 3A
3B 53
3C 00
3D ADD B 80
3E MOV A,B 47
3F LDA 73 3A
04 54
41 00
42 ADD B 80
43 MOV A,B 47
44 LDA 74 3A
45 55
46 00
47 ADD B 80
48 MOV A,B 47
49 LDA 75 3A
05 56
51 00
52 ADD B 80
53 MOVA,B 47
54 LDA 76 3A
55 57
56 00
57 ADD B 80
58 MOV A,B 47
59 LDA 77 3A
06 58
61 00
62 ADD B 80
63 MOV A,B 47
64 LDA 78 3A
65 59
66 00
67 ADD B 80
68 MOV A,B 47
69 LDA 79 3A
07 60
71 00
72 ADD B 80
73 STA 60H s/d69H 47
74 00
75 61
76 HLT 76

b.a.persoalan dapat ditulis dengan persamaan berikut;

(60)+(61)+(62)+(63)+(64)+(65)+(66)+(67)+(68)+(69)+(70)+(71)+(72)+(73)+(74)+(75)+(76)+(7
7)+(78)+(79) > (91) s/d (9A)

byte kode Intruksi Ripsi atau artinya


3 3A LDA 60 H (60H)>A ;jadi (A) =(60H)
1 47 MOV (A)>B;jadi (B)=(60H),diamankan
3 3A LDA 61 H (61H)>A ;jadi (A) =(61H)
1 80 ADD B (A)+(B)>A;(A)=(60H)+(61H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 62 H (62H)>A ;jadi (A) =(62H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (62H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 63 H (63H)>A ;jadi (A) =(63H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (63H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 64 H (64H)>A ;jadi (A) =(64H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (64H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 65 H (65H)>A ;jadi (A) =(65H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (65H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 66 H (66H)>A ;jadi (A) =(66H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (66H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 67 H (67H)>A ;jadi (A) =(67H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (67H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 68 H (68H)>A ;jadi (A) =(68H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (68H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 69 H (69H)>A ;jadi (A) =(69H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (69H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 70 H (70H)>A ;jadi (A) =(70H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (70H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 71 H (71H)>A ;jadi (A) =(71H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (71H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 72 H (72H)>A ;jadi (A) =(72H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (72H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 73 H (73H)>A ;jadi (A) =(73H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (73H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 74 H (74H)>A ;jadi (A) =(74H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (74H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 75 H (75H)>A ;jadi (A) =(75H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (75H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 76 H (76H)>A ;jadi (A) =(76H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (76H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 77 H (77H)>A ;jadi (A) =(77H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (77H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 78 H (78H)>A ;jadi (A) =(78H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (78H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 79 H (79H)>A ;jadi (A) =(79H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (79H)
3 32 STA 60Hs/d69H (A)>91Hs/d9AH; 91Hs/d9AH=60Hs/d69H
70Hs/d79H
1 76 HLT Stop program ini
129 byte > membutuhkan 129 lokasi untuk program

Dari hasil program tersebut terlihat adanya tiga intruksi berulang yaitu MOV B,A kemudian
LDA XXH dan ADD

Program tersebut walaupun berulang ,tetapi tidak dapat dibuat lopping karena berulangnya tidak
sama persis sama ,yaitu adakalanya LDA XXH ,nilai XX nya berbeda beda.

Program tersebut bila ditulis lengkap sesuai format bakunya ,dengan lokasi alamat beserta isinya
dalam hexadecimal seperti berikut;

Alamat memori instruksi hexadesimal


00 LDA 60 3A
01 41
02 00
03 MOV A,B 47
04 LDA 61 3A
05 42
06 00
07 ADD B 80
08 MOV A,B 47
09 LDA 62 3A
0A 43
0B 00
0C ADD B 80
0D MOV A,B 47
0E LDA 63 3A
0F 44
01 00
11 ADD B 80
12 MOV A,B 47
13 LDA 64 3A
14 45
15 00
16 ADD B 80
17 MOV A,B 47
18 LDA 65 3A
19 46
1A 00
1B ADD B 80
1C MOV A,B 47
1D LDA 66 3A
1E 47
1F 00
02 ADD B 80
21 MOV A,B 47
22 LDA 67 3A
23 48
24 00
25 ADD B 80
26 MOV A,B 47
27 LDA 68 3A
28 49
29 00
2A ADD B 80
2B MOV A,B 47
2C LDA 69 3A
2D 50
2E 00
2F ADD B 80
03 MOV A,B 47
31 LDA 70 3A
32 51
33 00
34 ADD B 80
35 MOV A,B 47
36 LDA 71 3A
37 52
38 ADD B 80
39 MOV A,B 47
3A LDA 72 3A
3B 53
3C 00
3D ADD B 80
3E MOV A,B 47
3F LDA 73 3A
04 54
41 00
42 ADD B 80
43 MOV A,B 47
44 LDA 74 3A
45 55
46 00
47 ADD B 80
48 MOV A,B 47
49 LDA 75 3A
05 56
51 00
52 ADD B 80
53 MOVA,B 47
54 LDA 76 3A
55 57
56 00
57 ADD B 80
58 MOV A,B 47
59 LDA 77 3A
06 58
61 00
62 ADD B 80
63 MOV A,B 47
64 LDA 78 3A
65 59
66 00
67 ADD B 80
68 MOV A,B 47
69 LDA 79 3A
07 60
71 00
72 ADD B 80
73 STA 91H s/d9AH 47
74 00
75 61
76 HLT 76

27.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


mengurangakan dua bilangan heksadesimal 24 digit, jika mikroprosesor yang digunakan
mempunyai word size =8 bit.dimisalkan bahwa bilangan heksa 24 digit yang akan dikurangkan
berada pada lokasi alamat 51H s/d 53H serta bilangan heksa 24 digit lainnya (sebagai
pengurangnya ) berada pada lokasi alamat 61 H s/d 63 H.selanjutnya hasil pengurangan tersebut
disimpan dialamat 51 H s/d 53 H. Serta diasumsikan bahwa hasil akhir pengurangannya bukan
bilangan negatif.

Jawab;
byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

3 06 MVI B,3 3 H > B ;(B)= 3 ,sebagai counter

3 21 LXI,51 H 51H >HL;jadi (HL) = 0051= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0052 = M

1 86 ADD M (A)+ (M =52) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 61 H s/d 63H (A) >61H s/d 63 H

1 76 HLT STOP PROGRAM INI

24 byte>membutuhkan 24 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 3H 06
02 28

03 LXI ,H , 51H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 61H s/d 63 H 32

0D 40

0E 00

0F HLT 76
28.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk
menjumlahkannya dua bilangan heksadesimal 80 digit ,jika mikroprosesor yang digunakan
mempunyai word size 8 bit .dimisalkan bahwa bilangan desimal 80 digit yang akan dijumlahkan
berada pada lokasi alamat 60 H s/d 69 H serta bilangan desimal 80 digit lainnya (sebagai
penjumlahannya ) berada pada lokasi alamat 70 H s/d 79 H.selanjutnya hasil penjumlahannya
tersebut disimpan ;

a.di alamat 60 H s/d 69 H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

b.di alamat 91 H s/d 9A H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

jawab;

byte kode Intruksi Ripsi atau artinya


3 3A LDA 60 H (60H)>A ;jadi (A) =(60H)
1 47 MOV (A)>B;jadi (B)=(60H),diamankan
3 3A LDA 61 H (61H)>A ;jadi (A) =(61H)
1 80 ADD B (A)+(B)>A;(A)=(60H)+(61H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 62 H (62H)>A ;jadi (A) =(62H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (62H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 63 H (63H)>A ;jadi (A) =(63H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (63H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 64 H (64H)>A ;jadi (A) =(64H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (64H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 65 H (65H)>A ;jadi (A) =(65H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (65H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 66 H (66H)>A ;jadi (A) =(66H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (66H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 67 H (67H)>A ;jadi (A) =(67H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (67H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 68 H (68H)>A ;jadi (A) =(68H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (68H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 69 H (69H)>A ;jadi (A) =(69H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (69H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 70 H (70H)>A ;jadi (A) =(70H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (70H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 71 H (71H)>A ;jadi (A) =(71H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (71H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 72 H (72H)>A ;jadi (A) =(72H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (72H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 73 H (73H)>A ;jadi (A) =(73H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (73H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 74 H (74H)>A ;jadi (A) =(74H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (74H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 75 H (75H)>A ;jadi (A) =(75H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (75H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 76 H (76H)>A ;jadi (A) =(76H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (76H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 77 H (77H)>A ;jadi (A) =(77H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (77H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 78 H (78H)>A ;jadi (A) =(78H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (78H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 79 H (79H)>A ;jadi (A) =(79H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (79H)
3 32 STA 60Hs/d69H (A)>60Hs/d69H; 60Hs/d69H=60Hs/d69H
70Hs/d79H
1 76 HLT Stop program ini
126 byte > membutuhkan 126 lokasi untuk program

Dari hasil program tersebut terlihat adanya tiga intruksi berulang yaitu MOV B,A kemudian
LDA XXH dan ADD

Program tersebut walaupun berulang ,tetapi tidak dapat dibuat lopping karena berulangnya tidak
sama persis sama ,yaitu adakalanya LDA XXH ,nilai XX nya berbeda beda.

Program tersebut bila ditulis lengkap sesuai format bakunya ,dengan lokasi alamat beserta isinya
dalam hexadecimal seperti berikut;
Alamat memori instruksi hexadesimal
00 LDA 60 3A
01 41
02 00
03 MOV A,B 47
04 LDA 61 3A
05 42
06 00
07 ADD B 80
08 MOV A,B 47
09 LDA 62 3A
0A 43
0B 00
0C ADD B 80
0D MOV A,B 47
0E LDA 63 3A
0F 44
01 00
11 ADD B 80
12 MOV A,B 47
13 LDA 64 3A
14 45
15 00
16 ADD B 80
17 MOV A,B 47
18 LDA 65 3A
19 46
1A 00
1B ADD B 80
1C MOV A,B 47
1D LDA 66 3A
1E 47
1F 00
02 ADD B 80
21 MOV A,B 47
22 LDA 67 3A
23 48
24 00
25 ADD B 80
26 MOV A,B 47
27 LDA 68 3A
28 49
29 00
2A ADD B 80
2B MOV A,B 47
2C LDA 69 3A
2D 50
2E 00
2F ADD B 80
03 MOV A,B 47
31 LDA 70 3A
32 51
33 00
34 ADD B 80
35 MOV A,B 47
36 LDA 71 3A
37 52
38 ADD B 80
39 MOV A,B 47
3A LDA 72 3A
3B 53
3C 00
3D ADD B 80
3E MOV A,B 47
3F LDA 73 3A
04 54
41 00
42 ADD B 80
43 MOV A,B 47
44 LDA 74 3A
45 55
46 00
47 ADD B 80
48 MOV A,B 47
49 LDA 75 3A
05 56
51 00
52 ADD B 80
53 MOVA,B 47
54 LDA 76 3A
55 57
56 00
57 ADD B 80
58 MOV A,B 47
59 LDA 77 3A
06 58
61 00
62 ADD B 80
63 MOV A,B 47
64 LDA 78 3A
65 59
66 00
67 ADD B 80
68 MOV A,B 47
69 LDA 79 3A
07 60
71 00
72 ADD B 80
73 STA 60H s/d69H 47
74 00
75 61
76 HLT 76

b.a.persoalan dapat ditulis dengan persamaan berikut;

(60)+(61)+(62)+(63)+(64)+(65)+(66)+(67)+(68)+(69)+(70)+(71)+(72)+(73)+(74)+(75)+(76)+(7
7)+(78)+(79) > (91) s/d (9A)

byte kode Intruksi Ripsi atau artinya


3 3A LDA 60 H (60H)>A ;jadi (A) =(60H)
1 47 MOV (A)>B;jadi (B)=(60H),diamankan
3 3A LDA 61 H (61H)>A ;jadi (A) =(61H)
1 80 ADD B (A)+(B)>A;(A)=(60H)+(61H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 62 H (62H)>A ;jadi (A) =(62H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (62H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 63 H (63H)>A ;jadi (A) =(63H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (63H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 64 H (64H)>A ;jadi (A) =(64H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (64H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LDA 65 H (65H)>A ;jadi (A) =(65H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (65H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 66 H (66H)>A ;jadi (A) =(66H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (66H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 67 H (67H)>A ;jadi (A) =(67H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (67H)
1 47 MOV B,A (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 68 H (68H)>A ;jadi (A) =(68H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (68H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 69 H (69H)>A ;jadi (A) =(69H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (69H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 70 H (70H)>A ;jadi (A) =(70H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (70H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 71 H (71H)>A ;jadi (A) =(71H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (71H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 72 H (72H)>A ;jadi (A) =(72H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (72H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 73 H (73H)>A ;jadi (A) =(73H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (73H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 74 H (74H)>A ;jadi (A) =(74H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (74H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 75 H (75H)>A ;jadi (A) =(75H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (75H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 76 H (76H)>A ;jadi (A) =(76H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (76H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 77 H (77H)>A ;jadi (A) =(77H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (77H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 78 H (78H)>A ;jadi (A) =(78H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (78H)
1 47 MOV A,B (A)>B;jadi (B)= hasil yang diamankan
3 3A LAD 79 H (79H)>A ;jadi (A) =(79H)
1 80 ADD B (A)+(B)>A;(A)=hasil tadi + (79H)
3 32 STA 60Hs/d69H (A)>91Hs/d9AH; 91Hs/d9AH=60Hs/d69H
70Hs/d79H
1 76 HLT Stop program ini
129 byte > membutuhkan 129 lokasi untuk program

Dari hasil program tersebut terlihat adanya tiga intruksi berulang yaitu MOV B,A kemudian
LDA XXH dan ADD
Program tersebut walaupun berulang ,tetapi tidak dapat dibuat lopping karena berulangnya tidak
sama persis sama ,yaitu adakalanya LDA XXH ,nilai XX nya berbeda beda.

Program tersebut bila ditulis lengkap sesuai format bakunya ,dengan lokasi alamat beserta isinya
dalam hexadecimal seperti berikut;

Alamat memori instruksi hexadesimal


00 LDA 60 3A
01 41
02 00
03 MOV A,B 47
04 LDA 61 3A
05 42
06 00
07 ADD B 80
08 MOV A,B 47
09 LDA 62 3A
0A 43
0B 00
0C ADD B 80
0D MOV A,B 47
0E LDA 63 3A
0F 44
01 00
11 ADD B 80
12 MOV A,B 47
13 LDA 64 3A
14 45
15 00
16 ADD B 80
17 MOV A,B 47
18 LDA 65 3A
19 46
1A 00
1B ADD B 80
1C MOV A,B 47
1D LDA 66 3A
1E 47
1F 00
02 ADD B 80
21 MOV A,B 47
22 LDA 67 3A
23 48
24 00
25 ADD B 80
26 MOV A,B 47
27 LDA 68 3A
28 49
29 00
2A ADD B 80
2B MOV A,B 47
2C LDA 69 3A
2D 50
2E 00
2F ADD B 80
03 MOV A,B 47
31 LDA 70 3A
32 51
33 00
34 ADD B 80
35 MOV A,B 47
36 LDA 71 3A
37 52
38 ADD B 80
39 MOV A,B 47
3A LDA 72 3A
3B 53
3C 00
3D ADD B 80
3E MOV A,B 47
3F LDA 73 3A
04 54
41 00
42 ADD B 80
43 MOV A,B 47
44 LDA 74 3A
45 55
46 00
47 ADD B 80
48 MOV A,B 47
49 LDA 75 3A
05 56
51 00
52 ADD B 80
53 MOVA,B 47
54 LDA 76 3A
55 57
56 00
57 ADD B 80
58 MOV A,B 47
59 LDA 77 3A
06 58
61 00
62 ADD B 80
63 MOV A,B 47
64 LDA 78 3A
65 59
66 00
67 ADD B 80
68 MOV A,B 47
69 LDA 79 3A
07 60
71 00
72 ADD B 80
73 STA 91H s/d9AH 47
74 00
75 61
76 HLT 76

29.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


menjumlahkannya dua bilangan heksadesimal 20 digit .jika mikroprosesor yang digunakan
mempunyai word size 8 bit.dimisalkan bahwa bilangan heksasdesimal 20 digit yang dijumlahkan
berada pada lokasi alamat 60 H s/d 69 H serta bilangan heksa 80 bit digit lainnya berada pada
lokasi alamat 70 H s/d 79 H .selanjutnya hasil dijumlahkan berada pada lokasi alamat 60 H s/d
69 , serta diasumsikan bahwa hasil akhir dijumlahkan tidak menghasilkan carry .tetapi sebelum
hasil penjumlahan tadi disimpan di alamat 60 H s/d 69 H ,maka data yang ada di alamat tersebut
( di 60 H s/d 69 H ) harus diamankan di alamat 91 H s/d 9A H .

Jawab;

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry


2 06 MVI B,10 10 H > B ;(B)= 10 ,sebagai counter

3 21 LXI,60 H 60H >HL;jadi (HL) = 0060= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0061 = M

1 21 LXI,70 H 70H >HL;jadi (HL) = 0070= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0071 = M

1 86 ADD M (A)- (M =61) > A

(B) +1 >B ;isi B bertambah 1


1 05 DCR B

(A)- (M =71) > A


1 86 ADD M

(B) +1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 60 H s/d 69H (I) >61H s/d 63 H

1 76 HLT STOP PROGRAM INI

20 byte>membutuhkan 20 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL


00 SUB A 97

01 MVI B , 9H 06

02 28

03 LXI ,H , 61H s/d 71 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 61H s/d 63 H 32

0D 40

0E 00

0F HLT 76
30.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk
menjumlahkannya dua bilangan desimal 20 digit ,jika mikroprosesor yang digunakan
mempunyai word size =8 bit = 2digit dalam nyble .dimisalkan bahwa bilangan desimal 20 digit
yang akan dijumlahkan berada pada lokasi alamat 60 H s/d 69 H serta bilangan desimal 20 digit
lainnya (sebagai penjumlahannya ) berada pada lokasi alamat 70 H s/d 79 H.selanjutnya hasil
penjumlahannya tersebut disimpan ;

a.di alamat 60 H s/d 69 H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

b.di alamat 91 H s/d 9A H .serta diasumsikan bahwa hasil akhir penjumlahanya tidak
menghasilkan carry

jawab;

a. Dengan berikut programnya ;

60 H s/d 69 H + 70 H s/d 79>60 H s/d 69 H

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,10 10 H > B ;(B)= 10 ,sebagai counter

3 21 LXI, 60 H 60H >HL;jadi (HL) = 0060 = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0061 = M

1 86 ADD M (A)+ (M =61) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0


3 32 STA 60 H s/d 69H (E) > 2CH

1 76 HLT Stop program ini

20 byte>membutuhkan 20 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 10H 06

02 28

03 LXI ,H , 60H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2
0A 05

0B 00

0C STA 60 H s/d 69 H 32

0D 40

0E 00

0F HLT 76

b..Persoalan ini dapat ditulis secra sederhana;

60 H s/d 69 H + 70 H s/d 79>90 H s/d 9A H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,10 10 H > B ;(B)= 10 ,sebagai counter

3 21 LXI, 60 H 60H >HL;jadi (HL) = 0060 = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0061 = M

1 86 ADD M (A)+(M =2C) > A

(B) -1 >B ;isi B berkurang 1


1 05 DCR B
3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 90 H s/d 9A H (J) >63H s/d 7A H

1 76 HLT STOP PROGRAM INI

20 byte>membutuhkan 20 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 10H 06

02 28

03 LXI ,H , 60 H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86
08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 90H s/d 9A H 32

0D 40

0E 00

0F HLT 76

31.desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


mengurangakan dua bilangan desimal 6 digit, jika mikroprosesor yang digunakan mempunyai
word size =8 bit = 2digit dalam nyble.dimisalkan bahwa bilangan desimal 6 digit yang akan
dikurangkan berada pada lokasi alamat 51H s/d 53H serta bilangan desimal 6 digit lainnya
(sebagai pengurangnya ) berada pada lokasi alamat 61 H s/d 63 H.selanjutnya hasil pengurangan
tersebut disimpan dialamat 51 H s/d 53 H. Serta diasumsikan bahwa hasil akhir pengurangannya
bukan bilangan negatif.

Jawab;

(51H) + (52H) +(53) > ( 61) s/d (63H)

BYTE Kode rahasia Intruksi artinya


3 3A LDA 51H (51)>A;jadi(A)=(51H)
1 47 MOV B,A (A)>B ;jadi (A)=(51H),diamankan
3 3A LDA 52 H (52H)>A;jadi (A)=(52H)
1 80 ADD B,A (A)-(B) > A ; (A) = (51H) + (52H)
1 3A LDA 53 H (53)>A;jadi(A)=(53H)
3 47 ADD B,A (A)-(B) > A ; (A) = (51H) + (52H)+(53H)
3 32 STA( 61H) s/d (63H) A>52H;(52H) = (A) = (51H) + (52H)
1 76 HLT STOP PROGRAM INI
12 Byte > membutuhkan lokasi alamat untu program
Bila ditulis dengan lengkap lokasi alamat beserta isinya dengan hexadecimal sebagai berikut;

ALAMAT Intruksi HEXADESIMAL


00 LDA 51H 3A
01 51
02 00
03 MOV B,A 47
04 LDA 52 H 3A
05 52
06 00
07 ADD B 80
08 STA 53 H 32
09 52
0A 00
0B HLT 76

32..desainlah program sistem mikroprosesor menggunakan bahasa assembly / rakitan untuk


mengurangakan dua bilangan desimal 20 digit ,jika mikroprosesor yang digunakan mempunyai
word size =8 bit = 2digit dalam nyble .dimisalkan bahwa bilangan desimal 20 digit yang akan
dikurangkan berada pada lokasi alamat 51H s/d 5AH serta bilangan desimal 20 digit lainnya
(sebagai pengurangnya ) berada pada lokasi alamat 61 H s/d 6A H.selanjutnya hasil
penguranganya tersebut disimpan ;

a.di alamat 51 H s/d 5A H .serta diasumsikan bahwa hasil akhir pengurangannya bukan bilangan
negatif

b.di alamat 71 H s/d 7A H .serta diasumsikan bahwa hasil akhir pengurangannya bukan bilangan
negatif

jawab;

a. Dengan berikut programnya ;

51H s/d 5AH + 61 H s/d 6A >51 H s/d 5A H

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

2 06 MVI B,20 20 H > B ;(B)= 20 ,sebagai counter


3 21 LXI, 51 H 51H >HL;jadi (HL) = 0051 = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0052 = M

1 86 ADD M (A)+ (M =52) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 51 H s/d 5A H (F) > 51 H

1 76 HLT Stop program ini

20 byte>membutuhkan 20 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 20H 06

02 28

03 LXI ,H , 51H 21

04 42
05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 51 H s/d 59 H 32

0D 40

0E 00

0F HLT 76

b..Persoalan ini dapat ditulis secra sederhana;

51H s/d 5AH + 61 H s/d 6A >71 H s/d 7A H

Dengan berikut programnya ;

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry


2 06 MVI B,20 20 H > B ;(B)= 20 ,sebagai counter

3 21 LXI, 51 H 51 H >HL;jadi (HL) = 0051 = M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0052 = M

1 86 ADD M (A)+(M =52) > A

(B) -1 >B ;isi B berkurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 71 H s/d 7A H (K) > 51 H

1 76 HLT STOP PROGRAM INI

20 byte>membutuhkan 20 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97

01 MVI B , 20H 06

02 28
03 LXI ,H , 51 s/d 6A H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 51 H s/d 5A H 32

0D 40

0E 00

0F HLT 76

33.desainlah program sistem mikroprpsesor menggunakan bahasa rakitan / assembly untuk


menjauhkan dua bilangan desimal 20n digit ,jika mikroprosesor yang digunakan mempunyai
word size =8 bit = 2digit dalam nyble . dimisalkan bahwa bilangan desimal 20 digit yang akan
dijumlahkan berada pada lokasi alamat 60 H s/d 69 H sert bilangan desimal 20 digit lainnya
berada pada lokasi alamat 70 H s/d 79 H .selanjutnya

Jawab;
(60H) +(61H)+……+(69H) >70 H s/d 79 H

byte kode intruksi artinya

1 97 SUB A Clear (A) + carry

3 06 MVI B,10 10 H > B ;(B)= 10 ,sebagai counter

3 21 LXI,60 H 60 H >HL;jadi (HL) = 0060= M

1 23 JUML;INX H (HL)+1>HL ;(HL) = 0061 = M

1 86 ADD M (A)+ (M =561) > A

(B) -1 >B ;isi B bekurang 1


1 05 DCR B

3 C2 JNZ JUML Jump jika (B) = 0 > Jump is ZERO = 0

3 32 STA 70 H s/d 79 H (A) > (60H) +(61H)+……+(69H)

1 76 HLT STOP PROGRAM INI

24 byte>membutuhkan 24 lokasi
alamat dalam program ini

Bila ditulis lengkap dengan lokasi alamat dalam bilangan hexadecimal sebagai berikut ;

ALAMAT INTRUKSI HEXADESIMAL

00 SUB A 97
01 MVI B , 10H 06

02 28

03 LXI ,H , 60H 21

04 42

05 JUML 00

06 INX H 23

07 ADD M 86

08 DCR S 05

09 JNX JUML C2

0A 05

0B 00

0C STA 70 H s/d 79 H 32

0D 40

0E 00

0F HLT 76

Anda mungkin juga menyukai