2.3.2. instruksi operasi aritmatika
DESCRIPTION
2.3.2. Instruksi Operasi Aritmatika. Instruksi Aritmatika ini digunakan untuk melakukan proses aritmatika (perhitungan) yang meliputi antara lain: - Penjumlahan - Perkalian - Pengurangan - Pembagian - Penjumlahan satu kali - Pengurangan satu kali. a. INSTRUKSI PENJUMLAHAN - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/1.jpg)
1
2.3.2. Instruksi Operasi Aritmatika
• Instruksi Aritmatika ini digunakan untuk melakukan proses aritmatika (perhitungan) yang meliputi antara lain:
- Penjumlahan - Perkalian
- Pengurangan - Pembagian
- Penjumlahan satu kali
- Pengurangan satu kali
![Page 2: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/2.jpg)
2
a. INSTRUKSI PENJUMLAHAN
a.1. Instruksi Penjumlahan Tanpa Carry
ADD A,< src_byte >
Fungsi :
Penjumlahan Tanpa Carry
Penjelasan:
Instruksi ini akan melakukan penjumlahan isi register A dengan satu byte Source_byte dimana setelah proses penjumlahan hasilnya akan disimpan di register A.
Instruksi ini akan mempengaruhi Carry Flag = 1 jika terdapat Carry pada bit ketiga atau bit ketujuh
![Page 3: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/3.jpg)
3
Contoh Instruksi:
ADD A,R0 Isi register A = [ A ] +
[ R0 ]
List instruksi adalah sebagai berikut:
Instruksi ADD A,Rn
Jumlah byte 1
Cycle 1
Operasi ADD
[ A ] = [ A ] + [ Rn ]
![Page 4: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/4.jpg)
4
ADD A,directIsi register A = [ A ] +
[ direct ]
List instruksi adalah sebagai berikut:
Instruksi ADD A,direct
Jumlah byte 2
Cycle 1
Operasi ADD
[ A ] = [ A ] + [ direct ]
![Page 5: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/5.jpg)
5
ADD A,@RiIsi register A = [ A ] + [ (Ri) ]
List instruksi adalah sebagai berikut:
Instruksi ADD A,@Ri
Jumlah byte 1
Cycle 1
Operasi ADD
[ A ] = [ A ] + [ (Ri) ]
![Page 6: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/6.jpg)
6
ADD A,#data Isi register A = [ A ] +
#data
List instruksi adalah sebagai berikut:
Instruksi ADD A,#data
Jumlah byte 1
Cycle 1
Operasi ADD
[ A ] = [ A ] + #data
![Page 7: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/7.jpg)
7
a.2. Instruksi Penjumlahan Dengan Carry
ADDC A,< src_byte >
Fungsi :
Penjumlahan Dengan Carry
Penjelasan:
Instruksi ini akan melakukan penjumlahan isi register A dengan satu byte Source_byte dan ditambahkan lagi Carry pada saat itu dimana setelah proses penjumlahan hasilnya akan disimpan di register A.
Instruksi ini akan mempengaruhi Carry Flag = 1 jika terdapat Carry pada bit ketiga atau bit ketujuh
![Page 8: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/8.jpg)
8
Contoh Instruksi:
ADDC A,R0Isi register A = [ A ] + [ R0 ] +
[ Carry ]
List instruksi adalah sebagai berikut:
Instruksi ADDC A,Rn
Jumlah byte 1
Cycle 1
Operasi ADDC
[ A ] = [ A ] + [ Rn ] + [ Carry ]
![Page 9: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/9.jpg)
9
ADDC A,direct Isi register A = [ A ] + [ direct ] +
[ Carry ]
List instruksi adalah sebagai berikut:
Instruksi ADDC A,direct
Jumlah byte 2
Cycle 1
Operasi ADDC
[ A ] = [ A ] + [ direct ] + [ Carry ]
![Page 10: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/10.jpg)
10
ADDC A,@Ri Isi register A = [ A ] + [ (Ri) ] +
[ Carry ]
List instruksi adalah sebagai berikut:
Instruksi ADDC A,@Ri
Jumlah byte 1
Cycle 1
Operasi ADDC
[ A ] = [ A ] + [ (Ri) ] + [ Carry ]
![Page 11: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/11.jpg)
11
ADDC A,#dataIsi register A = [ A ] + #data +
[ Carry ]
List instruksi adalah sebagai berikut:
Instruksi ADDC A,#data
Jumlah byte 2
Cycle 1
Operasi ADDC
[ A ] = [ A ] + #data + [ Carry ]
![Page 12: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/12.jpg)
12
b. Instruksi Pengurangan Dengan Borrow
SUBB A,< src_byte >
Fungsi :
Penjumlahan Dengan Borrow ( Carry Minus)
Penjelasan:
Instruksi ini akan melakukan pengurangan isi register A dengan satu byte Source_byte dan dikurangi lagi dengan Carry pada saat itu dimana setelah proses penjumlahan hasilnya akan disimpan di register A.
Instruksi ini akan mempengaruhi Carry Flag = 1 jika terdapat Carry pada bit ketiga atau bit ketujuh
![Page 13: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/13.jpg)
13
Contoh Instruksi:
SUBB A,R0Isi register A = [ A ] - [ R0 ] - [ Carry ]
List instruksi adalah sebagai berikut:
Instruksi SUBB A,Rn
Jumlah byte 1
Cycle 1
Operasi SUBB
[ A ] = [ A ] - [ Rn ] - [ Carry ]
![Page 14: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/14.jpg)
14
SUBB A,direct Isi register A = [ A ] - [ direct ] - [ Carry ]
List instruksi adalah sebagai berikut:
Instruksi SUBB A,direct
Jumlah byte 2
Cycle 1
Operasi SUBB
[ A ] = [ A ] - [ direct ] - [ Carry ]
![Page 15: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/15.jpg)
15
SUBB A,@Ri Isi register A = [ A ] - [ (Ri) ] - [ Carry ]
List instruksi adalah sebagai berikut:
Instruksi SUBB A,@Ri
Jumlah byte 1
Cycle 1
Operasi SUBB
[ A ] = [ A ] - [ (Ri) ] - [ Carry ]
![Page 16: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/16.jpg)
16
SUBB A,#dataIsi register A = [ A ] - #data -
[ Carry ]
List instruksi adalah sebagai berikut:
Instruksi SUBB A,#data
Jumlah byte 1
Cycle 1
Operasi SUBB
[ A ] = [ A ] - #data - [ Carry ]
![Page 17: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/17.jpg)
17
c. Instruksi Penambahan Satu
INC <Byte>
Instruksi ini akan melakukan penambahan satu dari byte yang ada saat itu, apabila nilai telah menjadi FFH maka setelah instruksi ini akan menjadi 00H
Instruksi ini tidak akan mempengaruhi Carry Flag
Contoh: INC A ---- [A] = [A] +1
INC Rn
INC Direct
INC @Ri
![Page 18: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/18.jpg)
18
Contoh instruksi:
ORG 0H
MOV 7EH,#0FFH
MOV 7FH,#40H
MOV R0,#7EH
INC @R0
INC R0
INC @R0
END
Catatan:
Setelah instruksi tersebut maka isi
register R0 = 7FH, isi alamat 7EH = 00H
dan alamat 7FH = 41H
![Page 19: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/19.jpg)
19
INC A Isi register A = [ A ] + 1
List instruksi adalah sebagai berikut:
Instruksi INC A
Jumlah byte 1
Cycle 1
Operasi INC
[ A ] = [ A ] + 1
![Page 20: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/20.jpg)
20
INC Rn Isi register Rn = [ Rn ] + 1
List instruksi adalah sebagai berikut:
Instruksi INC Rn
Jumlah byte 1
Cycle 1
Operasi INC
[ Rn ] = [ Rn ] + 1
![Page 21: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/21.jpg)
21
INC direct Isi register direct = [ direct ] + 1
List instruksi adalah sebagai berikut:
Instruksi INC direct
Jumlah byte 2
Cycle 1
Operasi INC
[ direct ] = [ direct ] + 1
![Page 22: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/22.jpg)
22
INC @Ri [ (Ri) ] = [ (Ri) ] + 1
List instruksi adalah sebagai berikut:
Instruksi INC @Ri
Jumlah byte 1
Cycle 1
Operasi INC
[ (Ri) ] = [ (Ri) ] + 1
![Page 23: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/23.jpg)
23
d. Instruksi Penambahan Satu pada Register DPTR
INC DPTR
Instruksi ini akan melakukan penambahan satu dari byte yang berada di register DPTR saat itu, apabila nilai telah menjadi FFFFH maka setelah instruksi ini akan menjadi 0000H
Instruksi ini tidak akan mempengaruhi Carry Flag
![Page 24: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/24.jpg)
24
Contoh Instruksi:
Jika isi data pada register DPTR adalah 1230H
ORG 0H
MOV DPTR,#1230H ; DPTR berisi 1230HINC DPTR ; DPTR = 1230H + 1
INC DPTR ; DPTR = 1231H + 1
INC DPTR ; DPTR = 1232H + 1
INC DPTR ; DPTR = 1233H + 1
END
Setelah program dijalankan maka isi register DPTR adalah
[ DPTR ] = 1230H + 1 + 1 + 1 + 1
= 1234H
![Page 25: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/25.jpg)
25
INC DPTR Isi register DPTR = [ DPTR ] + 1
List instruksi adalah sebagai berikut:
Instruksi INC DPTR
Jumlah byte 1
Cycle 2
Operasi INC
[ DPTR ] = [ DPTR ] + 1
![Page 26: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/26.jpg)
26
e. Instruksi Pengurangan Satu
DEC <Byte>
Instruksi ini akan melakukan pengurangan satu dari byte yang ada saat itu, apabila nilai telah menjadi 00H maka setelah instruksi ini akan menjadi FFH
Instruksi ini tidak akan mempengaruhi Carry Flag
Contoh: DEC A
DEC Rn
DEC Direct
DEC @Ri
![Page 27: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/27.jpg)
27
Contoh instruksi:
ORG 0H
MOV 2FH,#0FFH
MOV 30H,#40H
MOV R1,#30H
DEC @R1
DEC R1
DEC @R1
END
Catatan:
Setelah instruksi tersebut maka isi
register R1 = 2FH, isi alamat 2FH = 0FEH
dan alamat 30H = 3FH
![Page 28: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/28.jpg)
28
DEC A Isi register A = [ A ] - 1
List instruksi adalah sebagai berikut:
Instruksi DEC A
Jumlah byte 1
Cycle 1
Operasi DEC
[ A ] = [ A ] - 1
![Page 29: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/29.jpg)
29
DEC Rn Isi register Rn = [ Rn ] - 1
List instruksi adalah sebagai berikut:
Instruksi DEC Rn
Jumlah byte 1
Cycle 1
Operasi DEC
[ Rn ] = [ Rn ] - 1
![Page 30: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/30.jpg)
30
DEC direct Isi register direct = [ direct ] - 1
List instruksi adalah sebagai berikut:
Instruksi DEC direct
Jumlah byte 2
Cycle 1
Operasi DEC
[ direct ] = [ direct ] - 1
![Page 31: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/31.jpg)
31
DEC @Ri [ (Ri) ] = [ (Ri) ] - 1
List instruksi adalah sebagai berikut:
Instruksi DEC @Ri
Jumlah byte 1
Cycle 1
Operasi DEC
[ (Ri) ] = [ (Ri) ] - 1
![Page 32: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/32.jpg)
32
f. Instruksi Perkalian
MUL AB
Instruksi ini akan melakukan perkalian antara isi akumulator ( A ) dan isi Register B, hasil dari perkalian disimpan di Akumulator ( A ) untuk byte yang rendah dan di Register B untk byte yang tinggi. Jika hasil perkalian lebih dari 255 (0FFH) flag overflow akan diset, sedangkan Carry akan selalu di clear.
![Page 33: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/33.jpg)
33
Contoh :
ORG 0H
MOV A,#50H
MOV B,#0A0H
MUL AB
END
Hasil perkalian dari 50H atau 80 desimal dengan 0A0H atau 160 desimal adalah 3200H atau 12800. Nilai yang disimpan di Akumulator (A) adalah 00H (Byte rendah) dan di Register B adalah 32H (Byte tinggi). Sedangkan Flag Overflow akan di set (1) karena hasil perkalian lebih besar daripada 255 (0FFH).
![Page 34: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/34.jpg)
34
MUL AB
List instruksi adalah sebagai berikut:
Instruksi MUL AB
Jumlah byte 1
Cycle 4
Operasi MUL
[ A ] = Hasil perkalian Byte rendah
[ B ] = Hasil perkalian Byte tinggi
![Page 35: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/35.jpg)
35
g. Instruksi Pembagian
DIV AB
Instruksi ini akan melakukan pembagian antara isi akumulator ( A ) dan isi Register B, hasil dari pembagian akan disimpan di Akumulator ( A ) dan apabila ada sisa hasil pembagian akan disimpan di Register B.
Flag overflow dan Carry akan selalu di clear.
![Page 36: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/36.jpg)
36
Contoh :
ORG 0H
MOV A,#0FEH
MOV B,#12H
DIV AB
END
Hasil pembagian dari 0FEH dengan 12H adalah 0EH dengan sisanya 02H. Nilai yang disimpan di Akumulator (A) adalah 0EH (Hasil dari proses pembagian) dan di Register B adalah 02H (Sisa hasil proses pembagian).
![Page 37: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/37.jpg)
37
DIV AB
List instruksi adalah sebagai berikut:
Instruksi DIV AB
Jumlah byte 1
Cycle 4
Operasi DIV
[ A ] = Hasil dari Pembagian
[ B ] = Sisa hasil pembagian
![Page 38: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/38.jpg)
38
2.3.3. INSTRUKSI LOGIKA
- Instruksi ini selalu melibatkan register ACCUMULATOR ( A )
a. Logika AND ( ANL )Instruksi ini melakukan proses logika AND antara suatu register dengan register, register dengan data dll
Tabel kebenaran logika AND
#1 #2 Hasil
0 0 0
0 1 0
1 0 0
1 1 1
![Page 39: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/39.jpg)
39
Contoh :
• Akumulator berisi data 1011 1011B dan register R0 berisi data 0100 1100B. Instruksi ANL A,R0 akan menyebabkan isi akumulator menjadi seperti berikut:
A : 1011 1011B
R0 : 0100 1100B
ANL A,R0 -------------------------------
A : 0000 1000B = 08H
![Page 40: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/40.jpg)
40
b. Logika OR ( ORL )Instruksi ini melakukan proses logika OR antara
suatu register dengan register, register dengan data dll
Tabel kebenaran logika OR
#1 #2 Hasil
0 0 0
0 1 1
1 0 1
1 1 1
![Page 41: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/41.jpg)
41
Contoh :• Akumulator berisi data 1111 1010B dan
register R0 berisi data 0010 1110B. Instruksi ORL A,R0 akan menyebabkan isi akumulator menjadi seperti berikut:
A : 1111 1010B
R0 : 0010 1110B
ORL A,R0 -------------------------------
A : 1111 1110B = FEH
![Page 42: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/42.jpg)
42
c. Logika EXOR ( XRL ) Instruksi ini melakukan proses logika Exclusive-OR (EXOR) antara suatu register dengan register, register dengan data dll
Tabel kebenaran logika Exclusive-OR
#1 #2 Hasil
0 0 0
0 1 1
1 0 1
1 1 0
![Page 43: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/43.jpg)
43
Contoh :• Akumulator berisi data 1011 1011B dan
register B berisi data 1111 0101B. Instruksi XRL A,B akan menyebabkan isi akumulator menjadi seperti berikut:
A : 1011 1011B
B : 1111 0101B
XRL A,B -------------------------------
A : 0100 1110B = 4EH
![Page 44: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/44.jpg)
44
d. Logika NOT ( Komplemen - CPL ) Instruksi ini melakukan proses logika NOT (Komplemen) pada suatu register, carry flag, atau isi suatu alamat bit ( RAM ), dll
Tabel kebenaran logika NOT
#1 Hasil
0 1
1 0
![Page 45: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/45.jpg)
45
Contoh :
• Akumulator berisi data 0101 1100B Instruksi CPL A akan menyebabkan
isi akumulator menjadi seperti berikut:
A : 0101 1100B
CPL A --------------------------
A : 1010 0011B = A3H
![Page 46: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/46.jpg)
46
2.3.4. Instruksi Perperputaran ( Rotate )
a. Pergeseran ke KIRI ( RL : Rotate Left )
Instruksi ini akan menggeser isi akumulator satu bit ke kiri (memutar setiap bit dalam akumulator satu posisi ke kiri). Bagian MSB akan mengisi bagian LSB.
MSB LSB
![Page 47: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/47.jpg)
47
• Contoh:
1. Register A ( Akumulator ) : 1011 1011B Instruksi RL A akan menyebabkan isi
register A bergeser ke kiri sehingga menjadi : 0111 0111B
2. Register A ( Akumulator ) : 0011 0011B Instruksi RL A akan menyebabkan isi
register A bergeser ke kiri sehingga menjadi : 0110 0110B
![Page 48: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/48.jpg)
48
b. Perputaran ke KANAN ( RR : Rotate Right )
Instruksi ini akan menggeser isi akumulator satu bit ke kanan (memutar setiap bit dalam akumulator satu posisi ke kanan). Bagian LSB akan mengisi bagian MSB.
MSB LSB
![Page 49: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/49.jpg)
49
• Contoh:
1. Register A ( Akumulator ) : 1011 1011B Instruksi RR A akan menyebabkan isi
register A bergeser ke kanan sehingga menjadi : 1101 1101B
2. Register A ( Akumulator ) : 0011 0011B Instruksi RR A akan menyebabkan isi
register A bergeser ke kanan sehingga menjadi : 1001 1001B
![Page 50: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/50.jpg)
50
c. Perputaran ke KIRI dengan CARRY ( RLC : Rotate Left with Carry )
Instruksi ini akan menggeser isi akumulator satu bit ke kiri (memutar setiap bit dalam akumulator satu posisi ke kiri) dengan ikut menyertakan isi dari Carry Flag.Isi Carry Flag akan mengisi bagian LSB, sementara isi bagian MSB akan mengisi bagian Carry Flag.
MSB LSBCarry
![Page 51: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/51.jpg)
51
• Contoh:
Register A ( Akumulator ) : 0111 1010B sementara Carry Flag berisi : 1B
Instruksi RLC A akan menyebabkan isi register A bergeser ke kiri dengan Carry nya sehingga menjadi : Register A ( Akumulator ) : 1111 0101B sementara Carry Flag nya berisi 0B
![Page 52: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/52.jpg)
52
d. Pergeseran ke KANAN dengan CARRY ( RRC : Rotate Right with Carry )
Instruksi ini akan menggeser isi akumulator satu bit ke KANAN (memutar setiap bit dalam akumulator satu posisi ke KANAN) dengan ikut menyertakan isi dari Carry Flag.Isi Carry Flag akan mengisi bagian MSB, sementara isi bagian LSB akan mengisi bagian Carry Flag.
MSB LSBCarry
![Page 53: 2.3.2. Instruksi Operasi Aritmatika](https://reader034.vdocuments.pub/reader034/viewer/2022050709/56815018550346895dbdff6f/html5/thumbnails/53.jpg)
53
• Contoh:
Register A ( Akumulator ) : 1010 0101B sementara Carry Flag berisi : 0B
Instruksi RRC A akan menyebabkan isi register A bergeser ke kanan dengan Carry nya sehingga menjadi : Register A ( Akumulator ) : 0101 0010B sementara Carry Flag nya berisi 1B