Upload
duongtu
View
216
Download
0
Embed Size (px)
Citation preview
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-1
MODUL KE 11
Sistem Mikroprosesor (3 sks)
MATERI KULIAH :
Perancangan program sederhana untuk sistem mikroprosesor dalam bahasa rakitan (assembly) untuk menjumlahkan/mengurangkan dua bilangan heksa pada dua lokasi berbeda, menjumlahkan/mengurangkan lebih dari dua bilangan heksa pada beberapa lokasi alamat berbeda, serta program sederhana (penjumlahan dan pengurangan) sebagai pengantar program menggunakan looping.
POKOK BAHASAN :
Desain Program Sederhana
untuk Sistem Mikroprosesor dalam
Bahasa Rakitan (Assembly)
Oleh Ir. INDRAGUNG PRIYAMBODO, MT.
11.1 PROGRAM UNTUK PENJUMLAHAN/PENGURANGAN DUA
BILANGAN HEKSA PADA DUA LOKASI BERBEDA
Misalnya untuk menjumlahkan bilangan heksadesimal yang disimpan di dua lokasi/alamat yang berbeda.
Sebagai contoh :
LATIHAN 11.1
Program sistem mikroprosesor (dalam bahasa rakitan/assembly) untuk menjumlahkan dua bilangan heksadesimal yang masing-masing berada di alamat 50H dan alamat 51H, kemudian hasil penjumlahannya disimpan di alamat 52H.
Atau dapat juga dengan kalimat, untuk menjumlahkan isi dari alamat 50H dan 51H, kemudian hasilnya disimpan di alamat 52H, serta diasumsikan bahwa hasil penjumlahannya tidak menghasilkan carry.
SOLUSI :
Persoalan tersebut dapat ditulis secara sederhana seperti berikut ini.
(50H) + (51H) 52H
11
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-2
Untuk tahap awal, langkah-langkah penyelesaiannya seperti berikut ini.
1. Masukkan isi alamat 50H ke Accumulator (Register A)
2. Amankan data di Acc. (isi alamat 50H) ke Register B
3. Masukkan data berikutnya (isi alamat 51H) ke Accumulator (ke Reg. A)
4. Jumlahkan data di Acc. (A) = (50H) dengan data di Reg. B (= isi alamat 51H), dan hasilnya langsung disimpan di Acc. (A).
5. Pindahkan/Copykan data di Acc (A) ke alamat 52H.
Dengan demikian programnya seperti berikut ini.
ALTERNATIF 11.1.1
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
3
1
3
1
3
1
3A
47
3A
80
32
76
LDA
MOV
LDA
ADD
STA
HLT
50H
B, A
51H
B
52H
(50H) A ; Jadi (A) = (50H)
(A) B ; Jadi (B) = (50H), diamankan
(51H) A ; Jadi (A) = (51H)
(A) + (B) A ; (A) = (50H) + (51H)
(A) 52H ; (52H) = (A) = (50H)+(51H)
Stop program ini
12 Byte membutuhkan 12 lokasi untuk program, misalnya dari 00 H s/d 0B H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
0A
0B
LDA
MOV
LDA
ADD
STA
HLT
50H
B, A
51H
B
52H
3A
50
00
47
3A
51
00
80
32
52
00
76
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-3
ALTERNATIF 11.1.2
Alternatif lainnya adalah menggunakan LXI, dan selanjutnya isi dari HL dinaikkan terus. Cara ini terlihat diawalnya lebih sulit, tetapi untuk penjumlahan berulang-ulang menjadi jauh lebih mudah dan dapat diarahkan ke bentuk looping.
Berikut ini adalah alternatif 11.1.2
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
3
1
1
1
1
1
1
21
7E
23
86
23
77
76
LXI
MOV
INX
ADD
INX
MOV
HLT
H, 50H
A, M
H
M
H
M, A
50H HL ; Jadi (HL) = 0050 H = M
(M=(HL)=50H) A ; (A) = (M) = (50H)
(HL) + 1 HL ; (HL) = 0051 H = M
(A)+(M=51H) A; ( A)=(50H)+(51H)
(HL) + 1 HL ; (HL) = 0052 H = M
(A)M=52H; (52H)=(A)=(50H)+(51H)
Stop program ini
9 Byte membutuhkan 9 lokasi untuk program, misalnya dari 00 H s/d 08 H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti
berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
LXI
MOV
INX
ADD
INX
MOV
HLT
H, 50H
A, M
H
M
H
M, A
21
50
00
7E
23
86
23
77
76
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-4
ALTERNATIF 11.1.3
Alternatif ini sama dengan alternatif 11.1.2, tetapi saat memindahkan/meng-copykan data dari Accumulator ke alamat 52H, langsung mengggunakan STA 52H.
Berikut ini adalah alternatif 11.1.3
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
3
1
1
1
3
1
21
7E
23
86
32
76
LXI
MOV
INX
ADD
STA
HLT
H, 50H
A, M
H
M
52H
50H HL ; Jadi (HL) = 0050 H = M
(M=(HL)=50H) A ; (A) = (M) = (50H)
(HL) + 1 HL ; (HL) = 0051 H = M
(A)+(M=51H) A; ( A)=(50H)+(51H)
(A)52H; (52H)=(A)=(50H)+(51H)
Stop program ini
10 Byte membutuhkan 10 lokasi untuk program, misalnya dari 00 H s/d 09 H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
LXI
MOV
INX
ADD
STA
HLT
H, 50H
A, M
H
M
52H
21
50
00
7E
23
86
32
50
00
76
Ternyata walaupun kesan pertamanya program tersebut lebih pendek, ternyata tidak demikian, justru tetap lebih panjang, dan lebih lama eksekusinya.
LATIHAN SOAL
S.13.1.1 Desainlah program sistem mikroprosesor menggunakan bahasa
rakitan/assembly untuk mengurangkan dua bilangan heksadesimal yang berada di lokasi alamat 51H dengan bilangan di lokasi 52H, kemudian hasilnya disimpan di alamat di alamat 53 H, serta diasumsikan bahwa hasilnya tidak negatif.
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-5
11.2 PROGRAM UNTUK PENJUMLAHAN/PENGURANGAN LEBIH
DARI DUA BILANGAN HEKSA DI BEBERAPA LOKASI BERBEDA
Misalnya untuk menjumlahkan bilangan heksadesimal yang disimpan di lima lokasi/alamat yang berbeda.
Sebagai contoh :
LATIHAN 11.2.
Program sistem mikroprosesor (dalam bahasa rakitan/assembly) untuk menjumlahkan lima bilangan heksadesimal yang masing-masing berada di alamat 41H s/d 45H, kemudian hasil penjumlahannya disimpan di alamat 46H.
Atau dapat juga dengan kalimat, untuk menjumlahkan isi dari alamat 41H dan 45H, kemudian hasilnya disimpan di alamat 46H, serta diasumsikan bahwa hasil penjumlahannya tidak menghasilkan carry.
SOLUSI :
Persoalan tersebut dapat ditulis secara sederhana seperti berikut ini.
(41H) + (42H) + (43H) + (44H) + (45H) 46H
Dengan demikian programnya seperti berikut ini.
ALTERNATIF 11.2.1
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
3
1
3
1
1
3
1
1
3
1
1
3
1
3
1
3A
47
3A
80
47
3A
80
47
3A
80
47
3A
80
32
76
LDA
MOV
LDA
ADD
MOV
LDA
ADD
MOV
LDA
ADD
MOV
LDA
ADD
STA
HLT
41H
B, A
42H
B
B, A
43H
B
B, A
44H
B
B, A
45H
B
46H
(41H) A ; Jadi (A) = (41H)
(A) B ; Jadi (B) = (41H), diamankan
(42H) A ; Jadi (A) = (42H)
(A) + (B) A ; (A) = (41H) + (42H)
(A) B; Jadi (B) = hasil yg diamankan
(43H) A ; Jadi (A) = (43H)
(A) + (B) A ; (A) = hasil tadi + (43H)
(A) B; Jadi (B) = hasil yg diamankan
(44H) A ; Jadi (A) = (44H)
(A) + (B) A ; (A) = hasil tadi + (44H)
(A) B; Jadi (B) = hasil yg diamankan
(45H) A ; Jadi (A) = (45H)
(A) + (B) A ; (A) = hasil tadi + (45H)
(A) 46H ; (46H) = (41H)+s/d+(45H)
Stop program ini
27 Byte membutuhkan 27 lokasi untuk program, misalnya dari 00 H s/d 1A H
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-6
Dari hasil program tersebut, terlihat adanya tiga instruksi berulang yaitu MOV B,A kemudian LDA XXH, dan ADD B.
Program tersebut walaupun berulang, tetapi tidak dapat dibuat looping karena berulangnya tidak persis sama, yaitu adalanya instruksi LDA XXH, nilai XX nya berbeda-beda.
Program tersebut bila ditulis lengkap sesuai format bakunya, dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
LDA
MOV
LDA
ADD
MOV
LDA
ADD
MOV
LDA
ADD
MOV
LDA
ADD
STA
HLT
41H
B, A
42H
B
B, A
43H
B
B, A
44H
B
B, A
45H
B
46H
3A
41
00
47
3A
42
00
80
47
3A
43
00
80
47
3A
44
00
80
47
3A
45
00
80
32
46
00
76
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-7
ALTERNATIF 11.2.2
Alternatif lainnya adalah menggunakan LXI, dan selanjutnya isi dari HL dinaikkan terus. Cara ini terlihat diawalnya lebih sulit, tetapi dengan penjumlahan berulang-ulang akan menjadi jauh lebih mudah dan dapat diarahkan ke bentuk looping.
Kemudian disini diperkenalkan inisiasi untuk mengosongkan/mengenolkan Accumulator, yaitu menggunakan instruksi
SUB A : (A) – (A) A atau
XRA A : (A) exor (A) A
Berikut ini adalah alternatif 11.2.2
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
1
3
1
1
1
1
1
1
1
1
1
1
1
1
97
21
86
23
86
23
86
23
86
23
86
23
77
76
SUB
LXI
ADD
INX
ADD
INX
ADD
INX
ADD
INX
ADD
INX
MOV
HLT
A
H, 41H
M
H
M
H
M
H
M
H
M
H
M, A
Clear (A) dan Carry
41H HL ; Jadi (HL) = 0041 H = M
(A)+(M=41H) A; ( A)=00+(41H)
(HL) + 1 HL ; (HL) = 0042 H = M
(A)+(M=42H) A; ( A)=(41H)+(42H)
(HL) + 1 HL ; (HL) = 0043 H = M
(A)+(M=43H) A; ( A)=hasil +(43H)
(HL) + 1 HL ; (HL) = 0044 H = M
(A)+(M=44H) A; ( A)=hasil +(44H)
(HL) + 1 HL ; (HL) = 0045 H = M
(A)+(M=45H) A; ( A)=hasil +(45H)
(HL) + 1 HL ; (HL) = 0046 H = M
(A)M=46H; (46H)=(A)=hasil akhir
Stop program ini
16 Byte hanya membutuhkan 16 lokasi untuk program, misalnya 00 H s/d 0F H
Dari hasil program tersebut, terlihat adanya dua instruksi berulang dan SAMA PERSIS yaitu INX H dan ADD M. Dengan adanya pengulangan yang sama persis tersebut, maka program tersebut dapat disederhanakan menggunakan LOOPING. Khusus hal ini akan dibahas kemudian.
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-8
Program tersebut bila ditulis lengkap sesuai format bakunya, dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
SUB
LXI
ADD
INX
ADD
INX
ADD
INX
ADD
INX
ADD
INX
MOV
HLT
A
H, 41H
M
H
M
H
M
H
M
H
M
H
M, A
97
21
41
00
86
23
86
23
86
23
86
23
86
23
77
76
LATIHAN SOAL
Desainlah program sistem mikroprosesor menggunakan bahasa rakitan/assembly untuk melakukan operasi berikut ini.
S.11.2.1 Memindahkan/mengcopykan isi lokasi alamat 41H ke alamat 42 H s/d 46 H.
S.11.2.2 Menjumlahkan beberapa bilangan heksadesimal yang berada di lokasi
alamat 51H s/d 5AH, kemudian hasilnya disimpan di alamat di alamat 61 H s/d 63 H, serta diasumsikan bahwa hasil akhirnya tidak mengandung carry.
S.11.2.3 Mengurangkan beberapa bilangan heksadesimal yang berada di lokasi alamat 51H s/d 5AH, kemudian hasilnya disimpan di alamat di alamat 61 H s/d 63 H, serta diasumsikan bahwa hasil akhirnya tidak negatif.
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-9
11.3 PROGRAM UNTUK PENJUMLAHAN/PENGURANGAN
BEBERAPA BILANGAN HEKSA DI BEBERAPA LOKASI BERBEDA
DENGAN MENGGUNAKAN LOOPING (JUMP)
Misalnya untuk menjumlahkan bilangan heksadesimal yang disimpan di beberapa lokasi/alamat yang berbeda (dimulai dengan lima lokasi berbeda seperti pada latihan 11.2, kemudian sampai dengan di banyak lokasi alamat.yang berurutan)
Sebagai contoh :
LATIHAN 11.3.1
Program sistem mikroprosesor (dalam bahasa rakitan/assembly) untuk menjumlahkan isi alamat 41H s/d 45H, kemudian hasilnya disimpan di alamat 46H, serta diasumsikan bahwa hasil penjumlahannya tidak menghasilkan carry. Kemudian informasi tentang banyaknya bilangan yang dijumlahkan berada di alamat 40H, ini berarti isi alamat 40H adalah 05.
SOLUSI :
Persoalan tersebut seperti pada latihan sebelumnya, dapat ditulis secara sederhana seperti berikut ini.
(40H) = 05 H
(41H) + (42H) + (43H) + (44H) + (45H) 46H
Dengan demikian programnya seperti berikut ini.
ALTERNATIF 11.3.1.1
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
1
3
1
1
1
1
3
3
1
97
21
46
23
86
05
C2
32
76
JUML :
SUB
LXI
MOV
INX
ADD
DCR
JNZ
STA
HLT
A
H, 40H
B, M
H
M
B
JUML
46H
Clear (A) dan Carry
40H HL ; Jadi (HL) = 0040 = M
(M=(HL)) B; (B)=05, sebagai counter
(HL) + 1 HL ; (HL) = 0041 = M
(A) + (M=41) A
(B) – 1 B ; Isi B berkurang 1
Jump jika (B) ≠ 0 Jump if ZERO = 0
(A) 46H
Stop program ini
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-10
15 Byte membutuhkan 15 lokasi untuk program, misalnya dari 00 H s/d 0E H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
JUML :
SUB
LXI
MOV
INX
ADD
DCR
JNZ
STA
HLT
A
H, 40H
B, M
H
M
B
JUML
46H
97
21
40
00
46
23
86
05
C2
05
00
32
46
00
76
Yang perlu diingat adalah :
Jump Not Carry selalu berpasangan dengan suatu nilai !
Pengertian sederhananya dari JNZ JUML adalah : Bila isi B ≠ 0 maka akan loncat/jump
ke alamat 05 H (tempat tanda JUML tersebut).
Kemudian instruksi STA 46H, dapat diganti denganinstruksi yang lebih cepat (pendek),
yaitu INX H dilanjutkan dengan MOV M,A
ALTERNATIF 11.3.1.2
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-11
Sebagai bahan latihan, berikut ini diberikan alternatif lainnya untuk solusi
program nomor 1, misalnya anda tidak boleh menggunakan instruksi JNZ, tetapi
boleh MENGGUNAKAN INSTRUKSI JZ, seperti berikut ini.
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
1
3
1
1
1
3
1
3
1
3
1
97
21
46
23
86
32
05
CA
23
C3
76
JUML:
STOP :
SUB
LXI
MOV
INX
ADD
STA
DCR
JZ
INX
JMP
HLT
A
H, 41H
B, M
H
M
46H
B
STOP
H
JUML
Clear (A) dan Carry
41H HL ; Jadi (HL) = 0041 H = M
(M = (HL)) B ; sebagai counter
(HL) + 1 HL ; (HL) = 0042 H = M
(A) + (M) A
(A) 46H; Hasil akhir
(B) – 1 B ; Isi B berkurang 1
Jump jika (B) = 0 Jump if ZERO = 1
(HL) + 1 HL ; (HL) = 0043 H = M
Jump to JUML
Stop program ini
19 Byte membutuhkan 19 lokasi untuk program, misalnya dari 00 H s/d 12 H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-12
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
JUML:
STOP :
SUB
LXI
MOV
INX
ADD
STA
DCR
JZ
NX
JMP
HLT
A
H, 41H
B, M
H
M
46H
B
STOP
H
JUML
97
21
41
00
46
23
86
32
46
00
05
CA
12
00
23
C3
06
00
76
ALTERNATIF 11.3.1.3
Sebagai bahan latihan, jika informasi tentang banyaknya data yang dijumlahkan tidak disimpan di suatu lokasi/alamat, dalam hal ini tidak disimpan di alamat 40H. Maka harus langsung dimasukkan ke dalam mikroprosesor, dalam hal ini langsung dimasukkan ke suatu register dengan instruksi MVI.
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
1
2
3
1
1
1
3
3
1
97
06
21
23
86
05
C2
32
76
JUML :
SUB
MVI
LXI
INX
ADD
DCR
JNZ
STA
HLT
A
B, 05H
H, 40H
H
M
B
JUML
46H
Clear (A) dan Carry
05H B; (B)=05, sebagai counter
40H HL ; Jadi (HL) = 0040 = M
(HL) + 1 HL ; (HL) = 0041 = M
(A) + (M=41) A
(B) – 1 B ; Isi B berkurang 1
Jump jika (B) ≠ 0 Jump if ZERO = 0
(A) 46H
Stop program ini
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-13
16 Byte membutuhkan 16 lokasi untuk program, misalnya dari 00 H s/d 0F H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
JUML :
SUB
MVI
LXI
INX
ADD
DCR
JNZ
STA
HLT
A
B, 05H
H, 40H
H
M
B
JUML
46H
97
06
05
21
40
00
23
86
05
C2
06
00
32
46
00
76
LATIHAN 11.3.2 Program sistem mikroprosesor (dalam bahasa rakitan/assembly) untuk menjumlahkan
isi alamat 43H s/d 7AH, kemudian hasilnya disimpan di alamat 40H, serta diasumsikan
bahwa hasil penjumlahannya tidak menghasilkan carry.
SOLUSI :
Persoalan tersebut seperti pada latihan sebelumnya, dapat ditulis secara sederhana
seperti berikut ini.
(43H) + ... + (7AH) 40H
Terlebih dahulu harus dihitung banyaknya bilangan atau lokasi yang dijumlahkan,
yaitu = 7AH – 43H + 1H = 28 H.
Dan jangan lupa bahwa LXI yang pertama kali adalah lokasi sebelumnya, berarti
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-14
lokasi 42H.
Dengan demikian programnya seperti berikut ini.
Byte Kode
Operasi Instruksi
(Mnemonic) Deskripsi (Artinya)
1
2
3
1
1
1
3
3
1
97
06
21
23
86
05
C2
32
76
JUML :
SUB
MVI
LXI
INX
ADD
DCR
JNZ
STA
HLT
A
B, 28H
H, 42H
H
M
B
JUML
40H
Clear (A) dan Carry
28H B; (B)=28, sebagai counter
42H HL ; Jadi (HL) = 0042 = M
(HL) + 1 HL ; (HL) = 0043 = M
(A) + (M=43) A
(B) – 1 B ; Isi B berkurang 1
Jump jika (B) ≠ 0 Jump if ZERO = 0
(A) 40H
Stop program ini
16 Byte membutuhkan 16 lokasi untuk program, misalnya dari 00 H s/d 0F H
Bila ditulis lengkap dengan lokasi alamat beserta isinya dalam hexadesimal seperti
berikut ini.
Alamat Memori (Heksadesimal)
Instruksi (Mnemonic)
Isi Memori (Heksadesimal)
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-15
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
JUML :
SUB
MVI
LXI
INX
ADD
DCR
JNZ
STA
HLT
A
B, 28H
H, 42H
H
M
B
JUML
40H
97
06
28
21
42
00
23
86
05
C2
05
00
32
40
00
76
LATIHAN SOAL
Desainlah program sistem mikroprosesor menggunakan bahasa rakitan/assembly untuk melakukan operasi berikut ini.
S.11.3.1 Menjumlahkan isi alamat 2DH s/d 62H serta diasumsikan bahwa hasil
penjumlahannya tidak menghasilkan carry, kemudian hasilnya disimpan di :
a. di alamat 2CH.
b. di alamat 63H s/d 7A H.
S.11.3.2 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 di :
a. di alamat 2CH.
b. di alamat 63H s/d 7A H.
S.11.3.3 Menjumlahkan isi alamat 52H s/d 70H serta diasumsikan bahwa hasil penjumlahannya tidak menghasilkan carry, kemudian hasilnya disimpan di
Modul Sistem Mikroprosesor/Teknik Elektro/FTI/Universitas Jayabaya/Modul ke 11/Hal 11-16
alamat 60H 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 terlebih dahulu ke alamat 91 H s/d 9A H.
DAFTAR PUSTAKA
[1] Lance A. Leventhal, Introduction to Microprocessors : Software, Hardware, Programming, Prentice Hall,1978.
[2] Pasahow, Edward, J. , Microprocessor and Microcomputer Interfacing for Electronics Technicians, McGraw-Hill, New York, 1981.
[3] Chris H. Pappas dan Willian H. Murray III, 80386 Mikroprocessor Handbook, Osborne McGraw-Hill, 1988
[4] Avtar Singh dan Walter A. Triebel, The 8088 Microprocessor : Programmnig, Interfacing, Software, Hardware, and Applications, Prentice Hall, International Editions, 1989
[5] Charles M.Gilmore , Microprocessors:Principles and Applications,
Glencoe/McGraw-Hill, 2nd International Ed. , 1995
[6] Rodnay Azks (alih bahasa : S.H. Nasution), From Chips to Systems : An
Introduction to Microprocessors ( Dari Chip ke Sistem : Pengantar Mikroprosesor), Sybec Inc., 1981 (Penerbit Erlangga, 1986).
[7] Harry Garland (alih bahasa : M. Barmawi dan M.O. Tjia), Introduction to Microprocessor System Design ( Pengantar Desain Sistem Mikroprosesor), McGraw-Hill Inc., 1979 (Penerbit Erlangga, 1984).
[8] Barry B. Brey , Microprocessors and Peripherals : Hardware,Software,Interfacing,
and Applications, Merrill Publishing Company, 1988.