You are on page 1of 40

• Pengalamatan Bit

Pengalamatan bit adalah penunjukan alamat


lokasi bit baik dalam RAM internal (byte 32H
sampai dengan 47H) 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 D7H Carry Flag

AC PSW.6 D6H Auxiliary Carry Flag

FO PSW.5 D5H Flag 0

2
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

RS1 PSW.4 D4H Reg. Bank Select bit 1

RS0 PSW.3 D3H Reg. Bank Select bit 0

OV PSW.2 D2H Overflow flag

P PSW.0 D0H Parity Flag

3
Tabel Pengalamatan Bit

Simbol Posisi Bit Alamat Bit Nama

TF1 TCON.7 8FH Timer 1 Overflow Flag

TR1 TCON.6 8EH Timer 1 Run Control Flag

TF0 TCON.5 8DH Timer 0 Overflow Flag

TR0 TCON.4 8CH Timer 0 Run Control Flag

4
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

IE1 TCON.3 8BH Interrupt 1 Edge Flag

IT1 TCON.2 8AH Interrupt 1 Type Control

IE0 TCON.1 89H Interrupt 0 Edge Flag

IT0 TCON.0 88H Interrupt 0 Type Control

5
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

SM0 SCON.7 9FH Serial Mode Control Bit 0

SM1 SCON.6 9EH Serial Mode Control Bit 1

SM2 SCON.5 9DH Serial Mode Control Bit 2

REN SCON.4 9CH Rceiver enable

6
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

TB8 SCON.3 9BH Transmit bit 8

RB8 SCON.2 9AH Receiver bit 8

T1 SCON.1 99H Transmit Interrupt Flag

R1 SCON.0 98H 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
ET1 IE.5 ABH Enable Timer 1 Interrupt

EX1 IE.4 AAH Enable External Int. 1

ET0 IE.1 A9H Enable Timer 0 Interrupt

EX0 IE.0 A8H Enable External Int. 0

8
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

RD - B7H Read Data External Memory

WR - B6H Write Data External Memory

T1 - B5H Timer/Counter 1 Ext. Flag

T0 - B4H Timer/Counter 0 Ext. Flag

9
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

INT 1 B3H Interrupt 1 Input Pin

INT 0 B2H Interrupt 0 Input Pin

TxD B1H Serial Port Transmit Pin

RxD B0H Serial Port Receiver Pin

10
Tabel Pengalamatan Bit
Simbol Posisi Bit Alamat Bit Nama

PS IP.4 BCH Serial Port Interrupt Priority

PT1 IP.3 BBH Timer 1 Interrupt Priority

PX1 IP.2 BAH External Interrupt 1 Priority

PT0 IP.1 B9H Timer 0 Interrupt Priority

PX0 IP.0 B8H 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 B, # 0FFH
Loop_Delay:
DJNZ B, Loop_Delay
RET 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 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

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,#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

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 untuk operasi logika OR


AND untuk operasi logika AND
XOR untuk operasi logika EXOR
NOT untuk operasi logika komplemen

25
Contoh :

Mov A,#39 OR 0FH


adalah sama dengan
Mov A,#47

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,#00001000b
SHR 1
adalah sama dengan
Mov A, # 00000100b

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

adalah sama dengan


Mov A, # 12H

29
LOW untuk mengambil nilai
byte rendah

Contoh :
Mov A,#LOW 1234H

adalah sama dengan


Mov A, # 34H

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 0000H
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,#0FFH karena hasilnya benar

33
NE atau < > untuk ekspresi tidak sama
dengan
Contoh :

Mov A,#5 NE 4 akan menghasilkan FFH

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 :

Mov A, #’X’ GT ‘p’ akan menghasilkan 00H,


Yaitu:
Mov A, # 00H karena hasilnya salah

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 :

LOW (‘A’ – 2), nilai ASCII karakter A,


yaitu 0041H dikurangi dengan 2 terlebih
dahulu sehingga menjadi 003FH dan
diambil byte rendahnya, yaitu 3FH.

40

You might also like