MAKALAH KELOMPOK 7 ADMINISTRASI LAYANAN KHUSUS.pdf
Sap 2
1. Salam terhangat untuk para bloger tercinta, hehehe....
Pada postingan terdahulu kan kita udah tahu tu tentang yang namanya SAP-1, namun untuk
yang masih belum tahu silahkan klik aja tilisan ini SAP-1. Nah untuk kali ini kita masih membahas
tentang komputer sederhana atau simple as possible (SAP). Tapi kita tidak akan membahas SAP-1
melaikan kita akan membahas SAP-2. Maksudnya kita akan membahas lebih tinggilagi tentang yang
namanya simple as possible, akan tetapi ini akan bersangkutan juga dengan SAP-1 kemaren karena
SAP-2 merupakan kelanjutan dari SAP-1. Jadi bagi yang bleum tahu apa itu SAP-1 silahkan lihat
postingan SAP-1 yang telah saya posting dulu. Atau klik disini.
Arsitektur komputer SAP-2
A. Persamaan dengan SAP-1 :
1. Sama-sama komputer 8 bit.
Kesamaan ini dapat dilihat dari data yang diolah oleh ALU SAP-2 yang masih 8 bit
2. B. Perbedaan SAP-1 dengan SAP-2
1. Penambahan register-register baru.
a) Register-register pada SAP-1 (5 buah) :
•Input Register dan MAR (1 buah)
•Output Register (1 buah)
•Register Instruksi (1 buah)
•Register Aritmatika (2 buah : A dan B)
b) Register-register pada SAP-2 (11 buah) :
•Input Register (2 buah)
•Output Register (2 buah)
•Register Instruksi (1 buah)
•Register Aritmatika (4 buah : A, B, C, TMP)
•MAR (1 buah)
•Memory Data Register (MDR, 1 buah)
2. Penambahan lebar bus menjadi 16 bit (lebar data yang dioperasikan ALU tetap 8 bit).
a) Penambahan lebar bus menjadi 16 bit untuk mendukung lebar alamat memori yang
dikeluarkan oleh PC.
b) PC mengeluarkan 16 bit alamat berarti dapat mengalamati 216 alamat = 65.536 alamat,
•65.536 * 8 bit = 524.288
•524.288 : 8192 = 64 kByte
c) PC dapat menerima data masukan dari bus W yg bermanfaat untuk instruksi Jump dan
pemanggilan subroutine.
3. RAM yang tersedia 64 KB.
a) Kapasitas RAM 64 kB dari alamat 0000 H sampai FFFF H. b)
b) 2 kB pertama (0000 H sd 07FF H) untuk program monitor : serangkaian program untuk
menampilkan isi input register dan output register ke monitor.
c) 62 kB berikutnya untuk instruksi dan data.
4. Penambahan kemampuan logika pada ALU.
a) SAP-1 belum punya ALU tetapi hanya Penambah & Pengurang. SAP-2 sudah memiliki
ALU.
b) Adanya Flag :
•Sign Flag untuk menandai nilai pada register A negatif (sign flag = 1) atau positif (sign
flag = 0).
3. •Zero Flag untuk menandai nilai pada register A nol (zero flag = 1) atau bukan nol (zero
flag = 0).
5. Adanya flag (bendera).
a) Data yang masuk dari IR ke Pengendali & Pengurut sebanyak 8 bit.
b) 8 bit ini menjadi alamat bagi Pengendali & Pengurut.
c) Kemampuan pengalamatannya 28 = 256 alamat, dari 00 H sd FF H.
d) Tiap alamat berisi 1 signal CON.
e) Dari 256 signal CON didapat 43 instruksi.
6. Peningkatan jumlah instruksi dari 5 ke 43 instruksi (42 instruksi + 1 instruksi No operation).
a) Instruksi terdiri dari 2 bagian, yaitu kode operasi (operation code, opcode) dan yang
dioperasikan (operand). Kode operasi lebarnya 8 bit, menempati satu alamat di RAM.
b) Contoh instruksi dengan operand yang berbeda- beda :
ADD B : Kode operasi 80 dan tidak membutuhkan memori untuk operand.
MVI A, 18H : Kode operasi 3E membutuhkan satu alamat RAM untuk operand.
STA 4861H : Kode operasi 32 membutuhkan 2 alamat RAM untuk opeand.
Misal ketiga instruksi tersebut disimpan pada RAM secara berurutan mulai alamat
1000H, maka peta isi RAM sebagai berikut :
4. Perangkat-perangkat intruksi SAP-2
NNoo Mnemonik opcode
11 ADD B 80
22 ADD C 81
33 DCR A 3D
44 DCR B 05
55 DCR C 0D
66 HLT 76
77 INT A 3C
88 INT B 04
99 INT C 0C
1100 LDA alamat 3A
1111 MOV A, B 78
1122 MOV A, C 79
1133 MOV B, A 47
1144 MOV B, C 41
1155 MOV C, A 4F
1166 MOV C, B 48
1177 STA alamat 32
1188 SUB B 90
1199 SUB C 91
2200 OUT D3
2211 MVI A, byte 3E
2222 MVI B, byte 06
2233 MVI C, byte 0E
2244 JM alamat C3
5. Instruksi-intruksi SAP-2
1. LDA (Load The Accumulator)
Mengambil data dari memori dan dipindahkan ke Akumulator.
Format : LDA alamat
Contoh : LDA 1500H (isi reg A dgn nilai pada alamat 1500H)
2. STA (Store The Accumulator)
Mengambil data dari Akumulator dan dipindahkan ke memori.
Format : STA alamat
Contoh : STA 1501H (isi RAM pada alamat 1501H dengannilai yg ada pada Akumulator)
2255 JNZ alamat C2
2266 JZ alamat CA
2277 ANA B A0
2288 ANA C A1
2299 ANI byte E6
3300 CALL alamat CD
3311 CMA 2F
3322 ORA B B0
3333 ORA C B1
3344 ORI byte F6
3355 RAL 17
3366 RAR 1F
3377 RET C9
3388 XRA B A8
3399 XRA C A9
4400 XRI byte EE
6. 3. MVI (Move Immediate)
Mengisi register aritmatika (A, B, C) dengan nilai tertentu.
Format : MVI register, nilai
Contoh : MVI B, C4H (isi register B dengan nilai C4H)
4. MOV (Move)
Menyalin data dari satu register aritmatika ke register aritmatika lain.
Format : MOV register, register
Contoh : MOV B, C (isi register B dgn data pd register C).
5. ADD dan SUB
Menambah atau mengurang isi reg A dgn nilai register aritmatika lain dan hasil disimpan
pada Akumulator.
Format : ADD register atau SUB register
Contoh : ADD B (A = A + B)
SUB C (A = A – C)
6. INR (Increment) dan DCR (Decrement)
Menambah atau mengurangi isi sebuah register aritmatika dengan 1.
Format : INR register atau DCR register
Contoh : INR B (B = B + 1)
DCR C (C = C – 1)
7. JMP (Jump)
Instruksi lompatan tidak bersyarat. Prosesor langsung mengalihkan eksekusi program sesuai
dengan alamat tujuan lompatan.
Format : JMP alamat
Contoh : JMP 2500H
PC 2500H
Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H. Proses
ini mengubah nilai program counter dengan alamat 2500H.
8. JM (Jump if Minus)
7. Instruksi lompatan bersyarat. Prosesor akan memeriksa flag (Sign) keluaran dari ALU pada
operasi sebelumya. Jika sign flag bernilai 1, artinya hasilnya negatif, maka lompatan
dilakukan. Jika sebaliknya maka lompatan tidak dilakukan.
Format : JM alamat
Contoh :
Asumsi : Nilai reg A = 45H, B = 10H, dan C=60H
SUB B : A = A - B
= 45H - 10H
A = 35H
JM 1000H
SUB C : A = A – C
= 35H - 60H
A = Hasilnya minus (kecil dari 0)
JM 2600H
Setelah instruksi pertama dieksekusi nilai A positif. Pada instruksi berikutnya (JM 1000H)
kondisi syarat untuk lompat tidak dipenuhi maka prosesor mengerjakan instruksi berikutnya
(SUB C).
Setelah instruksi ketiga isi A bernilai negatif maka pada instruksi ke 4 (JM 2600H) prosesor
akan lompat dan mengerjakan instruksi pada alamat 2600H.
9. JZ (Jump if Zero)
Instruksi lompatan bersyarat. Prosesor akan memeriksa (flag) Zero keluaran dari ALU
sebelumnya. Jika flag Zero bernilai 1, artinya hasilnya 0, maka lompatan akan dilakukan. Jika
sebaliknya maka lompatan tidak dilakukan.
Format : JZ alamat
Contoh : JZ 2500H
Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H jika zero
flag bernilai 1.
10. JNZ (Jump if not Zero)
Instruksi lompatan bersyarat. Prosesor akan memeriksa (flag) Zero keluaran dari ALU
sebelumnya. Jika flag Zero bernilai 0, artinya hasilnya bukan 0, maka lompatan akan
dilakukan. Jika sebaliknya maka lompatan tidak dilakukan.
8. Format : JNZ alamat
Contoh : JNZ 2500H
Instruksi ini memberitahu prosesor untuk menjalankan instruksi pada alamat 2500H jika zero
flag bernilai 1.
11. CALL
Instruksi call the subroutine (panggil subrutin). Subrutin (subroutine) adalah suatu program
yang disimpan dalam memori untuk digunakan dalam program yang lain seperti perhitungan
sinus, cosinus, tangen, logaritma, akar-kuadrat, dsb.
Format : CALL alamat
Contoh : CALL 6000H
Misalnya, jika sebuah subrutin logaritma berawal pada alamat 6000H maka eksekusi dari
instruksi CALL 6000H menghasilkan suatu lompatan ke subrutin logaritma.
12. RET
Instruksi return (kembali) atau mengakhiri sebuah subrutin dan kembali ke program utama,
ditulis di akhir setiap subrutin.
Format : RET (tanpa operand)
Ketika instruksi CALL dilaksnakan dalam komputer SAP-2, isi pencacah program secara
otomatis tersimpan pada lokasi memori FFFEH dan FFFFH (dua lokasi memori terakhir).
Alamat CALL kemudian diisikan kedalam PC, sehingga eksekusi memulai dengan instruksi
pertama dalam subrutin.
13. CMA (Complement the Accumulator)
Eksekusi ini akan membalikkan setiap bit dalam akumulator dan menghasilkan komplement
–1 dari bilangan yang bersangkutan.
Format : CMA
Contoh : Nilai awal akumulator A = 1001101
Setelah instruksi CMA A = 0110010 16.
14. ANA (AND the Accumulator)
AND-kan isi akumulator dengan isi register tertentu, hasilnya disimpan dalam akumulator.
Format : ANA register Contoh : ANA B Misal A = 01100011 dan B = 10100110
Setelah ANA B, A = 00100010
15. ORA (OR the Accumulator)
9. 16. XRA (XOR the Accumulator)
17. ANI (AND Immediate the Accumulator)
Meng-AND-kan isi Akumulator dengan suatu nilai.
Format : ANI byte
Contoh : ANI 01001100
Misal : A = 01101010
Setelah instruksi ANI, A = 01001000
18. ORI (OR Immediate the Accumulator)
19. XRI (XOR Immediate the Accumulator)
20. IN (Input)
Memindahkan data dari Register masukan ke Akumulator.
21. OUT (Output)
Memindahkan data dari Akumulator ke Register keluaran.
22. HLT
Tanda akhir dari program
LATAIHAN
Soal:
1. Berikut adalah potongaan sebuah program pada SAP-2, tentukan nilai akhir pada register
akumulator! Sertakan dengan gambar!...
MVI A, A9H
MVI B, B8H
MVI C, C7H
RAL
ANA B
ORA C
ANI 0011 1011
ORI 1100 1100
RAR
CMA
OUT
HLT
Jawaban:
10. RAM
Alamat Biner Hexa MnemoniK
0800H 0011 1110 3E MVI A, A9H
0801H 1010 1001 A9
0802H 0000 0110 6 MVI B, B8H
0803H 1011 1000 B8
0804H 0000 1110 0E MVI C, C7H
0805H 1100 0111 C7
0806H 0001 0111 17 RAL
0807H 1010 0000 A0 ANA B
0808H 1011 0001 B1 OR C
0809H 1110 0110 E6 ANI 0011 1011
080AH 0011 1011
080BH 1111 0110 F6 ORI 1100 1100
080CH 1100 1100
080DH 0001 1111 1F RAR
080EH 0010 1111 2F CMA
080FH 1101 0011 D3 OUT
08F0H 0111 0110 76 HLT
08F1H
08F2H
:
:
FFFFH
A= 1010 1001
B= 1011 1000
C= 1100 0111
RAL
A=1010 1001
A=0101 0011
ANA B (AND the Accumulator)
A=0101 0011
B=1011 1000
A=0001 0000
ORA C (OR the Accumulator)
A=0001 0000
C=1100 0111
A=1101 0111
11. ANI (AND Immediate the Accumulator)
A=1101 0111
0011 1011
A=0001 0011
ORI (OR Immediate the Accumulator)
A=0001 0011
1100 1100
A=1101 1111
RAR
A=1101 1111
A=1110 1111
CMA (Complement the Accumulator)
A=1110 1111
A=0001 0000 (16)
Jadi hasil akhirnya A=0001 0000 (16)