|
Catatan (untuk pembelian online):
Tambahkan Rp. 50.000* untuk biaya pengiriman Luar P. Jawa
Tambahkan Rp. 40.000* untuk biaya pengiriman P. Jawa
*Pengiriman barang menggunakan Jasa TIKI, biaya jasa pengiriman tersebut
dapat berubah disesuaikan dengan KG barang + kemasan dan lokasi pemesan,
dengan waktu pengiriman paling lama 4 hari untuk Luar P.Jawa.
Dapatkan discount untuk pembelian
dengan jumlah 10 kit |
1.3.3 Instruksi Logika
Kelompok perintah ini dipakai untuk melakukan operasi
logika mikrokontroler MCS51, operasi logika yang bisa dilakukan adalah
operasi AND (kode operasi ANL), operasi OR (kode operasi ORL) dan operasi
Exclusive-OR (kode operasi XRL).
Data yang dipakai dalam operasi ini bisa berupa data yang berada dalam
Akumulator atau data yang berada dalam memori-data, hal ini sedikit
berlainan dengan operasi aritmatik yang harus melihatkan Akumulator
secara aktip.
Hasil operasi ditampung di sumber data yang pertama.
1. Operasi logika AND banyak dipakai untuk me-‘0’-kan
beberapa bit tertentu dari sebuah bilangan biner 8 bit, caranya dengan
membentuk sebuah bilangan biner 8 bit sebagai data konstan yang di-ANL-kan
bilangan asal. Bit yang ingin di-‘0’-kan diwakili dengan
‘0’ pada data konstan, sedangkan bit lainnya diberi nilai
‘1’, misalnya. Instruksi ANL P1,#%01111110 akan mengakibatkan
bit 0 dan bit 7 dari Port 1 (P1) bernilai ‘0’ sedangkan
bit-bit lainnya tetap tidak berubah nilai.
2. Operasi logika OR banyak dipakai untuk me-‘1’-kan
beberapa bit tertentu dari sebuah bilangan biner 8 bit, caranya dengan
membentuk sebuah bilangan biner 8 bit sebagai data konstan yang di-ORL-kan
bilangan asal. Bit yang ingin di-‘1’-kan diwakili dengan
‘1’ pada data konstan, sedangkan bit lainnya diberi nilai
‘0’, misalnya :Instruksi ORL A,#%01111110 akan mengakibatkan
bit 1 sampai dengan bit 6 dari Akumulator bernilai ‘1’ sedangkan
bit-bit lainnya tetap tidak berubah nilai.
3. Operasi logika Exclusive-OR banyak dipakai untuk membalik nilai (complement)
beberapa bit tertentu dari sebuah bilangan biner 8 bit, caranya dengan
membentuk sebuah bilangan biner 8 bit sebagai data konstan yang di-XRL-kan
bilangan asal. Bit yang ingin dibalik-nilai diwakili dengan ‘1’
pada data konstan, sedangkan bit lainnya diberi nilai ‘0’,
misalnya: Instruksi XRL A,#%01111110 akan mengakibatkan bit 1 sampai
dengan bit 6 dari Akumulator berbalik nilai, sedangkan bit-bit lainnya
tetap tidak berubah nilai.
Mnemonic
|
Operation
|
Addressing Mode |
Exect. |
Dir |
Ind |
Reg |
Imm |
Timer uS |
| Anl A,<byte> |
A=A and <byte> |
V |
V |
V |
V |
1 |
| Anl <byte>,A |
<byte>=<byte>anl A |
V |
V |
V |
V |
1 |
| Anl <byte>,#data |
<byte>=<byte>and #data |
V |
V |
V |
V |
1 |
| Orl A,<byte> |
A=A or <byte> |
Accumulator Only |
1 |
| Orl <byte>,A |
<byt>=<byt>orl A |
V |
V |
V |
|
1 |
| Orl <byte>,#data |
<byte>=<byte> or #data |
Data Pointer Only |
2 |
| Xrl A,<byte> |
A=A xor<byte> |
Accumulator Only |
1 |
| Xrl<byte>,A |
<byt>=<byt>xor A |
V |
V |
V |
|
1 |
| Xrl <byte>,#data |
<byte>=<byte>xor #data |
Accumulator and
B Only
|
4 |
| CLR A |
A=00h
|
Accumulator only |
1 |
| CPL A |
A= not A |
Accumulator only |
1 |
| RL A |
Rotate A left 1 bit |
Accumulator only |
1 |
| RLC A |
Rotate A left trough Carry |
Accumulator only |
1 |
| RR A |
Rotate A right 1 bit |
Accumulator only |
1 |
| RRC |
Rotate A right trough carry |
Accumulator only |
1 |
| SWAP A |
Swap nibbles in A |
Accumulator only |
1 |
Operasi logika pada umumnya mencakup empat hal, yaitu
operasi AND, operasi OR, operasi EX-OR dan operasi NOT. MCS51 hanya
bisa melaksanakan tiga jenis operasi logika yang ada, yakni intruksi
ANL (AND Logical) untuk operasi AND instruksi ORL (OR Logical) untuk
operasi OR, CPL (Complement bit) untuk operasi NOT.
Bit Carry pada PSW diperlakukan sebagai ‘akumulator bit’,
dengan demikian operasi AND dan operasi OR dilakukan antara bit yang
tersimpan pada bit Carry dengan salah satu dari 256 bit data yang dibahas
di atas. Contoh dari instruksi-instruksi ini adalah :
ANL C,P1.1
ANL C,/P1.2
Instruksi ANL C,P1.1 meng-AND-kan nilai pada bit Carry dengan nilai
Port 1 bit 1 (P1.1), dan hasil operasi tersebut ditampung pada bit Carry.
Instruksi ANL C,/P1.1 persis sama dengan instruksi sebelumnya, hanya
saja sebelum di-AND-kan, nilai P1.1 dibalik (complemented) lebih dulu,
jika nilai P1.1=‘0’ maka yang di-AND-kan dengan bit Carry
adalah ‘1’, demikian pula sebaliknya. Hal serupa berlaku
pada instruksi ORL.
Instruksi CPL dipakai untuk membalik (complement) nilai semua 256 bit
data yang dibahas di atas. Misalnya :
CPL C
CPL P1.0
CPL C akan membalik nilai biner dalam bit Carry (jangan
lupa bit Carry merupakan salah satu bit yang ada dalam 256 bit yang
dibahas di atas, yakni bit nomor $E7 atau PSW.7).
BACK
NEXT
|