Professional Documents
Culture Documents
1
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
2
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
3
Tabel Pengalamatan Bit
4
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
5
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
6
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
7
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
8
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
9
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
10
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama
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 B, # 0FFH
Loop_Delay:
DJNZ B, Loop_Delay
RET 12
• Pengalamatan Kode
13
b. Ekspresi Assembler
Dalam memberikan sebuah nilai pada operand dapat
dilakukan dengan langsung memberikan nilai yang
diinginkan seperti pada perintah
MOV 00H,#05H
Instruksi diatas mempunyai arti memberikan nilai 05H
pada alamat 00H.
Cara lain, dengan menggunakan lambang yang telah
ditentukan oleh assembler, seperti
MOV R0,#05H
Instruksi diatas juga mempunyai arti memberikan nilai
05H pada register R0. Register ini merupakan alamat
00H 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 :
00001010B untuk biner
12Q untuk oktal
10D atau 10 (tanpa akhiran)
untuk desimal
0AH 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
P1.5 dan P1.7 saja dengan mode aktif logika 0
dan nonaktif pada logika 1, perintah dapat
dituliskan sebagai berikut :
Mov P1, # 01011111B
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 R7,#10D ; R7 diisi dengan nilai yang
; diekspresikan dam bentuk
; desimal
; ( akhiran D tidak harus
; dituliskan dalam ; bentuk ini )
Loop: DJNZ R7, Loop
18
Dalam penulisan ekspresi bentuk heksa, harus
selalu diawali dengan bilangan seperti pada
ekspresi A5H harus diawali dengan "0"
sehingga menjadi 0A5H. 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
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,#42H
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 :
+ untuk penambahan
- untuk pengurangan
* untuk perkalian
/ untuk pembagian
MOD untuk modulo (mengekspresikan
sisa setelah pembagian )
23
Contoh :
Mov A, #10+10H
dapat diekspresikan menjadi
Mov A,#1AH
atau
Mov A,325 MOD 7
dapat diekspresikan menjadi
Mov A,#3.
24
Operator Logika
25
Contoh :
Mov A,#-3
adalah sama dengan
Mov A,# NOT 3
26
Operator Khusus
27
SHL untuk menggeser ke kiri
Contoh :
Mov A,#00001000B
SHL 1
adalah sama dengan
Mov A, # 00010000b
28
HIGH untuk mengambil nilai
byte tinggi
Contoh :
Mov A,#HIGH 1234H
29
LOW untuk mengambil nilai
byte rendah
Contoh :
Mov A,#LOW 1234H
30
( ) untuk operasi yang harus
didahulukan
Contoh :
Mov A,#(10+4)*3
32
Operator-operator Relasional ini terdiri
atas ;
33
NE atau < > untuk ekspresi tidak sama
dengan
Contoh :
Yaitu
Mov A, # 0FFH karena hasilnya benar
34
LT atau < untuk lebih kecil
Contoh :
Mov A,#‘X’ LT ‘Z’ akan menghasilkan FFH,
Yaitu
Mov A, # 0FFH karena hasilnya benar
35
LE atau <= untuk lebih kecil sama
dengan
Contoh :
Mov A,#‘X’ LE ‘Z’ akan menghasilkan FFH,
Yaitu
Mov A,#0FFH karena hasilnya benar
36
GT atau > untuk lebih besar
Contoh :
37
GE atau >= untuk lebih besar sama
dengan
Contoh :
Mov A,#50 GE 100 akan menghasilkan 00H
Yaitu:
Mov A,#00H karena hasilnya salah
38
Prioritas Operator
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 :
40