| Pelatihan
Mikrokontroller
89S51
15 Januari 2011
Surabaya
Microcontroller Kits
Programmer and
Target 89s51
Simple
Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super
Mikrokontroller Trainer 89s51
All Kits
+
Programmer
via USB Port
|
|
1.3.2 Instruksi Aritmatika
Perintah ADD dan ADDC
Isi Akumulator A ditambah dengan bilangan 1 byte, hasil
penjumlahan akan ditampung kembali dalam Akumulator. Dalam operasi ini
bit Carry (C flag dalam PSW – Program Status Word) berfungsi sebagai
penampung limpahan hasil penjumlahan. Jika hasil penjumlahan tersebut
melimpah (nilainya lebih besar dari 255) bit Carry akan bernilai ‘1’,
kalau tidak bit Carry bernilai ‘0’. ADDC sama dengan ADD,
hanya saja dalam ADDC nilai bit Carry dalam proses sebelumnya ikut dijumlahkan
bersama.
Bilangan 1 byte yang ditambahkan ke Akumulator, bisa berasal dari bilangan
konstan, dari register serba guna, dari memori data yang nomor memorinya
disebut secara langsung maupun tidak langsung, seperti terlihat dalam
contoh berikut :
ADD A,R0 ; register serba guna
ADD A,#$23 ; bilangan konstan
ADD A,@R0 ; no memori tak langsung
ADD A,P1 ; no memori langsung (port 1)
Perintah SUBB
Isi Akumulator A dikurangi dengan bilangan 1 byte berikut dengan nilai
bit Carry, hasil pengurangan akan ditampung kembali dalam Akumulator.
Dalam operasi ini bit Carry juga berfungsi sebagai penampung limpahan
hasil pengurangan. Jika hasil pengurangan tersebut melimpah (nilainya
kurang dari 0) bit Carry akan bernilai ‘1’, kalau tidak
bit Carry bernilai ‘0’.
SUBB A,R0 ; A = A - R0 - C
SUBB A,#$23 ; A = A - $23
SUBB A,@R1
SUBB A,P0
Perintah DA
Perintah DA (Decimal Adjust) dipakai setelah perintah ADD; ADDC atau
SUBB, dipakai untuk merubah nilai biner 8 bit yang tersimpan dalam Akumulator
menjadi 2 buah bilangan desimal yang masing-masing terdiri dari nilai
biner 4 bit.
Perintah MUL AB
Bilangan biner 8 bit dalam Akumulator A dikalikan dengan bilangan biner
8 bit dalam register B. Hasil perkalian berupa bilangan biner 16 bit,
8 bit bilangan biner yang bobotnya lebih besar ditampung di register
B, sedangkan 8 bit lainnya yang bobotnya lebih kecil ditampung di Akumulator
A.
Bit OV dalam PSW (Program Status Word) dipakai untuk menandai nilai
hasil perkalian yang ada dalam register B. Bit OV akan bernilai ‘0’
jika register B bernilai $00, kalau tidak bit OV bernilai ‘1’.
MOV A,#10
MOV B,#20
MUL AB
Perintah DIV AB
Bilangan biner 8 bit dalam Akumulator A dibagi dengan bilangan biner
8 bit dalam register B. Hasil pembagian berupa bilangan biner 8 bit
ditampung di Akumulator, sedangkan sisa pembagian berupa bilangan biner
8 bit ditampung di register B.
Bit OV dalam PSW (Program Status Word) dipakai untuk menandai nilai
sebelum pembagian yang ada dalam register B. Bit OV akan bernilai ‘1’
jika register B asalnya bernilai $00.
Table 1.3. Instruksi Aritmatika
Mnemonic
|
Operation
|
Addressing Mode |
Exect. |
Dir |
Ind |
Reg |
Imm |
Timer uS |
| Add A,<byte> |
A=A+<byte> |
V |
V |
V |
V |
1 |
| Addc A,<byte> |
A=A+<byte>+C |
V |
V |
V |
V |
1 |
| Subb A,<byte> |
A=A-<byte>-C |
V |
V |
V |
V |
1 |
| Inc A |
A=A+1 |
Accumulator Only |
1 |
| Inc <byte> |
<byt>=<byt>+1 |
V |
V |
V |
|
1 |
| Inc DPTR |
DPTR=DPTR+1 |
Data Pointer Only |
2 |
| Dec A |
A=A-1 |
Accumulator Only |
1 |
| Dec <byte> |
<byt>=<byt>-1 |
V |
V |
V |
|
1 |
| Mul AB |
B:A=BxA |
Accumulator and
B Only
|
4 |
| Div AB |
A=Int[A/B]
B=Mod[A/B]
|
Accumulator and B only
|
4 |
| DA A |
Dec Adjust |
Accumulator Only |
1 |
BACK
NEXT
|
|
PERCOBAAN 1
LED
PERCOBAAN 2
SAKLAR
PERCOBAAN 3
7 Segmen
PERCOBAAN 4
LCD Character
PERCOBAAN 5
ADC
PERCOBAAN 6
DAC
PERCOBAAN 7
Keypad
PERCOBAAN 8
Motor Stepper
PERCOBAAN 9
Timer Counter
PERCOBAAN 10
Komunikasi Serial
PERCOBAAN 11
Interupsi
PERCOBAAN 12
Keyboard PC
PERCOBAAN 13
Printer
Dot Matr.
PERCOBAAN 14
RTC12C887
PERCOBAAN 15
P W M
APLIKASI
|