Pengalamatan Bit Pengalamatan bit adalah penunjukan alamat lokasi
• Pengalamatan Bit Pengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte 32 H sampai dengan 47 H) atau bit perangkat keras. Untuk melakukan pengalamatan bit digunakan simbol titik (. ) misalnya PSW. 3 , PSW. 4 1
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama CY PSW. 7 D 7 H Carry Flag AC PSW. 6 D 6 H Auxiliary Carry Flag FO PSW. 5 D 5 H Flag 0 2
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama RS 1 PSW. 4 D 4 H Reg. Bank Select bit 1 RS 0 PSW. 3 D 3 H Reg. Bank Select bit 0 OV PSW. 2 D 2 H Overflow flag P PSW. 0 D 0 H Parity Flag 3
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama TF 1 TCON. 7 8 FH Timer 1 Overflow Flag TR 1 TCON. 6 8 EH Timer 1 Run Control Flag TF 0 TCON. 5 8 DH Timer 0 Overflow Flag TR 0 TCON. 4 8 CH Timer 0 Run Control Flag 4
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama IE 1 TCON. 3 8 BH Interrupt 1 Edge Flag IT 1 TCON. 2 8 AH Interrupt 1 Type Control IE 0 TCON. 1 89 H Interrupt 0 Edge Flag IT 0 TCON. 0 88 H Interrupt 0 Type Control 5
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama SM 0 SCON. 7 9 FH Serial Mode Control Bit 0 SM 1 SCON. 6 9 EH Serial Mode Control Bit 1 SM 2 SCON. 5 9 DH Serial Mode Control Bit 2 REN SCON. 4 9 CH Rceiver enable 6
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama TB 8 SCON. 3 9 BH Transmit bit 8 RB 8 SCON. 2 9 AH Receiver bit 8 T 1 SCON. 1 99 H Transmit Interrupt Flag R 1 SCON. 0 98 H Receiver Interrupt Flag 7
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama EA IE. 7 AFH Enable All Interrupt ES IE. 6 ACH Enable Serial Port Interrupt ET 1 IE. 5 ABH Enable Timer 1 Interrupt EX 1 IE. 4 AAH Enable External Int. 1 ET 0 IE. 1 A 9 H Enable Timer 0 Interrupt EX 0 IE. 0 A 8 H Enable External Int. 0 8
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama RD - B 7 H Read Data External Memory WR - B 6 H Write Data External Memory T 1 - B 5 H Timer/Counter 1 Ext. Flag T 0 - B 4 H Timer/Counter 0 Ext. Flag 9
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama INT 1 B 3 H Interrupt 1 Input Pin INT 0 B 2 H Interrupt 0 Input Pin Tx. D B 1 H Serial Port Transmit Pin Rx. D B 0 H Serial Port Receiver Pin 10
Tabel Pengalamatan Bit Simbol Posisi Bit Alamat Bit Nama PS IP. 4 BCH Serial Port Interrupt Priority PT 1 IP. 3 BBH Timer 1 Interrupt Priority PX 1 IP. 2 BAH External Interrupt 1 Priority PT 0 IP. 1 B 9 H Timer 0 Interrupt Priority PX 0 IP. 0 B 8 H External Interrupt 0 Priority 11
• Pengalamatan Kode Pengalamatan kode merupakan pengalamatan ketika operand merupakan alamat dari instruksi jump dan call ( ACALL, JMP, LJMP, dan LCALL ). Biasanya operand tersebut akan menunjuk ke suatu alamat yang telah diberi label sebelumnya seperti pada contoh berikut : ACALL Delay. . . . Delay: MOV Loop_Delay: DJNZ RET B, # 0 FFH B, Loop_Delay 12
• Pengalamatan Kode Pada Listing program diatas perintah ACALL Delay mempunyai operand yang menunjuk ke label Delay sehingga pada saat perintah ini dijalankan, program akan melompat ke lokasi memori yang diberi nama label/kode Delay. 13
b. Ekspresi Assembler Dalam memberikan sebuah nilai pada operand dapat dilakukan dengan langsung memberikan nilai yang diinginkan seperti pada perintah MOV 00 H, #05 H Instruksi diatas mempunyai arti memberikan nilai 05 H pada alamat 00 H. Cara lain, dengan menggunakan lambang yang telah ditentukan oleh assembler, seperti MOV R 0, #05 H Instruksi diatas juga mempunyai arti memberikan nilai 05 H pada register R 0. Register ini merupakan alamat 00 H pada bank 0. 14
Dan cara yang ketiga yaitu dengan menggunakan ekspresi assembler seperti yang akan dibahas berikut. Dengan ekspresi assembler, sebuah operand dapat diekspresikan dalam bermacam – macam bentuk sesuai keinginan pembuat program. Hal ini membuat pembuatan program dapat dilakukan lebih mudah. 15
Basis Bilangan Mikroprosesor Intel menggunakan akhiran “B” untuk ekspresi biner, “Q” untuk ekspresi oktal, “D” untuk ekspresi desimal dan “H” untuk ekspresi heksa. Oleh karena itu, sebuah bilangan 10 desimal dapat diekspresikan sebagai berikut : 00001010 B untuk biner 12 Q untuk oktal 10 D atau 10 (tanpa akhiran) untuk desimal 0 AH untuk heksa 16
Untuk perintah – perintah yang berhubungan dengan I/O penggunaan ekspresi biner akan lebih mempermudah karena kondisi setiap bit dari I/O terekspresi lebih jelas dalam bentuk ini. Contoh : Untuk mengaktifkan LED yang terhubung pada P 1. 5 dan P 1. 7 saja dengan mode aktif logika 0 dan nonaktif pada logika 1, perintah dapat dituliskan sebagai berikut : Mov P 1, # 11111010 B 17
Pada perintah – perintah ketika operand yang diekspresikan berupa bilangan yang harus dihitung secara visual oleh pembuat program, ekspresi dalam desimal akan lebih mempermudah. Contoh : Untuk membentuk penundaan dengan melakukan looping ( putaran ) sebanyak 10 kali di tempat sebelum meneruskan program, perintah dapat dituliskan sebagai berikut : MOV R 7, #10 D ; R 7 diisi dengan nilai yang ; diekspresikan dam bentuk ; desimal ; ( akhiran D tidak harus ; dituliskan dalam ; bentuk ini ) Loop: DJNZ R 7, Loop 18
Dalam penulisan ekspresi bentuk heksa, harus selalu diawali dengan bilangan seperti pada ekspresi A 5 H harus diawali dengan "0" sehingga menjadi 0 A 5 H. Hal ini dibuktikan oleh program assembly untuk membedakan apakah operand tersebut merupakan label ( yang harus diawali dengan karakter ) atau nilai ( yang harus diawali dengan bilangan ). 19
String Karakter Ekspresi string dilakukan dengan memberikan tanda ' ' di antara nilai yang diinginkan. Ekspresi ini sangat berguna jika pembuat program ingin menuliskan perintah yang membutuhkan nilai ASCII dari suatu operand. 20
Contoh : Jika pembuat program ingin menuliskan nilai ASCII dari karakter B ke dalam akumulator, perintah: MOV A, #'B’ akan lebih mudah ditulis daripada perintah MOV A, #41 H karena pembuat program masih harus melihat tabel ASCII terlebih dahulu. 21
• Operator Assembler Ada empat belas operator dalam assembler yang meliputi operator aritmatika, operator logika, operator khusus, dan operator hubungan (relasional) 22
Operator Aritmatika Ekspresi ini digunakan untuk mempermudah membuat program dalam pemberian nilai pada operand yang memerlukan proses perhitungan terlebih dahulu. Operator aritmatika terdiri atas : + * / MOD untuk penambahan untuk pengurangan untuk perkalian untuk pembagian untuk modular (mengekspresikan sisa setelah pembagian ) 23
Contoh : Mov A, #10+10 H dapat diekspresikan menjadi Mov A, #1 AH atau Mov A, 325 MOD 7 dapat diekspresikan menjadi Mov A, #4. 24
Operator Logika Ekspresi ini digunakan untuk mempermudah pembuat program dalam pemberian nilai pada operand yang memerlukan proses operasi logika terlebih dahulu. Operator – operator tersebut terdiri atas : OR AND XOR NOT untuk operasi logika OR untuk operasi logika AND untuk operasi logika EXOR untuk operasi logika komplemen 25
Contoh : Mov A, #39 AND 0 FH adalah sama dengan Mov A, # 9 Mov A, #-3 adalah sama dengan Mov A, # NOT 3 26
Operator Khusus Operator-operator ini terdiri atas : SHR untuk menggeser ke kanan Contoh : Mov A, #00001000 b SHR 1 adalah sama dengan Mov A, # 00000100 b 27
SHL untuk menggeser ke kiri Contoh : Mov A, #00001000 B SHL 1 adalah sama dengan Mov A, # 00010000 b 28
HIGH untuk mengambil nilai byte tinggi Contoh : Mov A, #HIGH 1234 H adalah sama dengan Mov A, # 12 H 29
LOW untuk mengambil nilai byte rendah Contoh : Mov A, #LOW 1234 H adalah sama dengan Mov A, # 34 H 30
( ) untuk operasi yang harus didahulukan Contoh : Mov A, #(10+4)*3 bilangan 10 desimal terlebih dahulu dijumlahkan dengan 4 sebelum dikali dengan 3 dengan adanya operator () 31
Operator-operator Relasional Operator-operator ini digunakan di antara dua buah operand dan hasilnya adalah 0000 H untuk salah serta FFFFH untuk benar. 32
Operator-operator Relasional ini terdiri atas ; EQ atau = untuk ekspresi sama dengan Contoh : Mov A, # 5=5 akan menghasilkan FFH, yaitu Mov A, #0 FFH karena hasilnya benar 33
NE atau < > untuk ekspresi tidak sama dengan Contoh : Mov A, #5 NE 4 akan menghasilkan FFH Yaitu Mov A, # 0 FFH karena hasilnya benar 34
LT atau < untuk lebih kecil Contoh : Mov A, #‘X’ LT ‘Z’ akan menghasilkan FFH, Yaitu Mov A, # 0 FFH karena hasilnya benar 35
LE atau <= untuk lebih kecil sama dengan Contoh : Mov A, #‘X’>=‘X’ akan menghasilkan FFH, Yaitu Mov A, #0 FFH karena hasilnya benar 36
GT atau > untuk lebih besar Contoh : Mov A, #5 > 6 akan menghasilkan 00 H, Yaitu: Mov A, # 00 H karena hasilnya salah 37
GE atau >= untuk lebih besar sama dengan Contoh : Mov A, #50 GE 100 akan menghasilkan 00 H Yaitu: Mov A, #00 H karena hasilnya salah 38
Prioritas Operator – operator ekspresi mempunyai urutan prioritas sebagai berikut, dan operator yang mempunyai prioritas tertinggi terlebih dahulu dilakukan : Tanda kurung ( ) HIGH LOW * / MOD SHL SHR + EQ NE LT LE GT GE NOT AND OR XOR 39
Contoh : LOW (‘A’ – 2), nilai ASCII karakter A, yaitu 0041 H dikurangi dengan 2 terlebih dahulu sehingga menjadi 003 FH dan diambil byte rendahnya, yaitu 3 FH. 40
- Slides: 40