PENDAHULUAN MIKROKONTROLER
I. Sejarah Mikroprosesor.
Mikroprosesor adalah singkatan dari prosesor biasa juga disebut CPU dan
mengintegrasikan fungsi-fungsi dari unit pemprosesan sentral (central processing
unit). Komponen ini merupakan sebuah cip. Cip (chip atau IC/Integrated circuit)
adalah sekeping silikon berukuran beberapa milimeter persegi yang
mengandung puluhan ribu transistor dan komponen elektronik lain. Mikroprosesor
memiliki elemen inti dari sistem komputer, yaitu mesin komputasi dan kontrol.
Hanya beberapa alat seperti power supply, memori, peripheral interface IC, dan
beberapa periferal lain (biasanya alat input/output dan media penyimpanan) yang
perlu ditambahkan untuk membuat sebuah sistem komputer yang utuh. Prosesor juga
merupakan salah satu komponen terpenting dalam sistem komputer. Prosesor
seringkali disebut sebagai otak komputer, meski sebutan ini tidak tepat sepenuhnya.
Prosesor hanya bertindak sebagai mesin pemroses tetapi tidak berfungsi sebagai
pengingat. Fungsi pengingat ditangani oleh komponen lain yang dinamakan memori.
1
MIkroprosesor
2
MIkroprosesor
Optimalisasi kecepatan
1. Memperbesar lebar bus data, sehingga dapat mengolah data yang besar
dalam satu kali akses. Saat ini prosesor sudah mampu mengolah data
bus sebesar 64 bit (Core Duo Two) dengan telah mengimplementasikan 2
ALU.
2. Peningkatan frekuensi signal Takt Clock
Pengelolaan Set Instruksi
1. CISC: Complete Instruction Set Computer
Banyak instruksi dan rumit
Operasi yang komplex memiliki kode
Banyak jenis/metode pengalamatan
Menghemat penghitungan alamat
Instruksi diimplementasikan dalam Micro code (yang tersimpan di fix
memori ROM)
Implementasi menghemat tempat
5
MIkroprosesor
Pentium II 1997 7.500.000 0,35 233 MHz 32 bits, 64 bit bus 400
Pentium III 1999 9.500.000 0,25 450 MHz 32 bits, 64 bit bus 1000
Sumber : www.intel.com
Micron : Ukuran kabel halus di chip mikroprosesor
MIPS : Millions Instructions per second
II. Tugas
6
MIkroprosesor
I. Komputer
Bagian fungsional utama sebuah komputer adalah
– Central Processing Unit/Unit PemrosesUtama,
– Memori
– Sistem Input-Output.
•
Gambar 1. Bagian fungsional utama komputer
7
MIkroprosesor
RAM: menyimpan data dan instruksi program yang sedang dijalankan oleh
komputer dan bersifat sementara. Yang berarti isinya akan hilang begitu
catu daya dimatikan.
ROM: bersifat permanen, data-data pada ROM tidak akan hilang begitu catu
dayanya dimatikan
3. Piranti I/O (Unit Pengontrol Masukan dan Pengeluaran)
Adalah piranti-piranti eksternal yang dibutuhkan oleh komputer untuk
berhubungan dengan dunia luar (layar monitor, keyboard, mouse printer , dll)
Ketiga komponen utama (CPU,memori dan piranti I/O) saling dihubungkan denga 3
buah bus (jalur penghubung),yaitu bus data, (data bus), bus kendali(control bus) dan
bus alamat (address bus)
Bus menghubungkan semua komponen dalam unit mikrokomputer. Ada tiga
tipe bus yaitu:
- Data Bus (bus-D) : bus dengan delapan penghantar, data dapat diteruskan dalam
arah bolak-balik (lebar data 8 bit) yaitu dari mikroprosesor ke unit memori atau
modul I/O dan sebaliknya.
- Control Bus (bus-C) : meneruskan sinyal-sinyal yang mengatur masa aktif odul
mikrokomputer yang sesuai dengan yang diinginkan menurut kondisi kerja.
- Address Bus (bus-A) : meneruskan data alamat (misal alamat 16 bit), dari
penyimpan atau dari saluran masukan/keluaran yang diaktifkan pada saat
tertentu. Hubungan dalam masing-masing bus berupa kabel paralel 8 bit (jalur)
maupum 16 bit (jalur).
8
MIkroprosesor
Register merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan
kecepatan yang sangat tinggi. Dalam melakukan pekerjaannya mikroprosesor selalu
menggunakan register-register sebagai perantaranya, jadi register dapat diibaratkan
9
MIkroprosesor
AX AH AL
BX BH BL General
CX CH CL Purpose register
DX DH DL
SP
Pointer register
BP
IP
DI
Index register
SI
FLAGS
FLAGS
CS
DS
ES
SS Segmen Register
FS
GS
Gambar 4. Register
Data Register
Data register terdiri dari 4 register 16 bit, dimana tiap register dapat dipisah
menjadi dua register 8 bit. Adapun register-register tersebut adalah:
Register AX, secara khusus digunakan pada operasi aritmatika terutama dalam
operasi pembagian dan pengurangan.
Register BX, biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu
segmen.
Register CX, digunakan secara khusus pada operasi looping dimana register ini
menentukan berapa banyaknya looping yang akan terjadi.
Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit. Pada prosesor
80386 terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX dan EDX.
• 4 registers (AX, BX, CX, DX) dapat diakses terpisah menjadi register 8 bit,
sebagai contoh jika AX= 0011000000111001b, kemudian AH=00110000b
dan AL=00111001b.
• Jika AX berisikan 1234h, maka AH berisi 12h dan AL berisi 34h, hal ini juga
berlaku untuk register BX,CX,DX.
c. Tempat menyimpan bilangan yang dikalikan (register AL, AX, EAX ) dan setengah
bagian terkecil dari hasil perkalian (register (DX-AX) dan EDX-EAX)
Contoh 3:
11
MIkroprosesor
Register BX (base register) sering digunakan untuk menyimpan alamat offset data
yang terletak dimemori (register BL,BH,BX dan EBX)
Contoh 6:
mov AX, [BX]; mengkopikan data pada lokasi memori yang alamat offsetnya
ditunjukan oleh isi register BX ke register AX
MOV [BX+DI],DX ; mengkopikan data pada register DX ke lokasi memori
yang alamat offsetnya ditunjukan oleh isi register [BX+DI]
12
MIkroprosesor
14
MIkroprosesor
biasanya digunakan pada operasi string untuk mengakses alamat suatu data
di dalam memori secara langsung
Contoh 14 : Mov DI, Offset TBL2 ; mengambil alamat TBL2
15
MIkroprosesor
Flags Register.
– Sesuai dengan namanya Flags(Bendera) register ini menunjukkan kondisi dari
suatu keadaan< ya atau tidak >. Karena setiap keadaan dapat digunakan 1 bit
saja, maka sesuai dengan jumlah bitnya, Flags register ini mampu memcatat
sampai 16 keadaan. Adapun flag yang terdapat pada mikroprosesor 8088 keatas
adalah :
0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
+---+---+------+-------+----+-----+----+----+----+----+---+----+---+----+---+----+
| │ | INT | IOPL | OF | DF | IF | TF | SF | ZF | | AF | | PF | | CF |
+---+---+------+-------+----+-----+----+----+----+----+---+----+---+----+---+----+
Gambar 5. Susunan Flags Register
16
MIkroprosesor
- Zero Flag
Jika hasil operasi = 0 maka ZF = 1
Jika hasil operasi tidak sama dgn 0 maka ZF = 0
- Sign flag
Bit tanda hasil ops. aritmatika positif, SF = 0
Bit tanda hasil ops. Aritmatika negatif, SF = 1
b. Tanda yg berkaitan khusus dg kerja prosesor
- Trap flag, jalannya program normal TF = 0. Program
dijalankan per instruksi TF = 1
- Interrupt flag, di-set jk melakkan interupsi
- Direction flag,di-set jk pd operasi string reg SI & DI
melakukan increment, jk decrement DF = 0
- Overflow flag, OF = 1 jk hasil dari suatu operasi tidak benar
- NT <Nested Task>. Digunakan pada prosesor 80286 dan 80386 untuk
menjaga jalannya interupsi yang terjadi secara beruntun.
- IOPL <I/O Protection level>. Flag ini terdiri atas 2 bit dan digunakan
pada prosesor 80286 dan 80386 untuk mode proteksi.
Adapun susunan dari masing-masing flag didalam flags register dapat anda lihat pada
gambar 5. Pada prosesor 80286 dan 80386 keatas terdapat beberapa tambahan pada
flags register, yaitu : PE <Protection Enable>. Digunakan untuk mengaktifkan mode
proteksi. flag ini akan bernilai 1 pada mode proteksi dan 0 pada mode real.
17
MIkroprosesor
Contoh 16 :
Diketahui : Nilai alamat logika adalah 0220:1234
Ditanyakan : Berapa nilai alamat fisiknya ?
Jawab:
Nilai segment : 0220
Geser satu digit menjadi : 02200
Nilai offset : 1234
02200
1234
------- +
03434
18
MIkroprosesor
Jenis-jenis memori
Untuk menyimpan Firmware:
Read Only Memory (ROM) : Fixed program
Programmable ROM (PROM) : One time rogrammable
Erasable and Programmable ROM (EPROM) : Erasable with
Ultraviolet light
Electrically Erasable PROM (EEPROM) : Erasable with electricity
Untuk menyimpan Software :
Random Access Memory (RAM) : Read/write memory
19
MIkroprosesor
EPROM dan EEPROM dapat diprogram kembali setelah isi memori dihapus
oleh sinar ultraviolet atau tegangan listrik, seperti Flash memory
Misalnya Flash media, cell phone, home appliances, dll.
Seperti halnya manusia yg ingin menulis pada suatu buku dan membaca suatu
informasi dari buku, pertama-tama manusia harus dapat menentukan dimana lokasi
informasi tersebut berada (i.e. nomor halaman, alinea, baris, etc.). Baru setelah itu
dapat menuliskan informasinya atau membaca informasinya.
Hal yg sama juga berlaku di uP, dimana :
• sebelum uP dapat membaca data dari memori, pertama-tama uP harus
menyediakan informasi mengenai dimana data tersebut berada.
• Sebelum uP dapat menuliskan suatu data ke memori, pertama-tama uP harus
menyediakan informasi mengenai dimana data tersebut akan ditulis.
• Informasi mengenai ‘dimana data tersebut’ disebut dengan Alamat.
• Proses pembacaan data oleh uP dari memori (arah data : uP memori)
20
MIkroprosesor
Urutan kerja :
1. µP8088 mempersiapkan alamat (lokasi) dari data yg akan dibaca
2. µP8088 mengirimkan sinyal read ke memori
3. Setelah menerima sinyal read, memori mencari data yg diinginkan µP8088 sesuai
dgn alamat yg diberikan
4. data yg sesuai dikirimkan oleh memori ke µP8088
Proses penulisan data oleh µP ke memori seperti gambar berikut:
Urutan kerja :
1. µP8088 mempersiapkan alamat (lokasi) dimana data akan ditulis (diletakkan)
2. µP8088 mempersiapkan data yg akan ditulis
3. µP8088 mengirimkan sinyal write ke memori
4. setelah menerima sinyal write, memori membaca data yg diberikan oleh µP8088
dan meletakkannya sesuai dgn alamat yg ditentukan
Pada proses penulisan dan pembacaan data, uP8088 menggunakan 3 (tiga) buah
saluran khusus untuk mengirimkan (1) alamat, (2) data, dan (3) kontrol baca/tulis.
Ketiga saluran ini disebut sebagai (1) bus alamat, (2) bus data, dan (3) bus kontrol.
21
MIkroprosesor
III. Tugas
1. Jelaskan aritektur dasar mikroprosesor
22
MIkroprosesor
Pengalamatan data (addressing mode) sebagai perpindahan data dari lokasi asal ke
lokasi tujuan
Lokasi asal dapat berupa register, daerah memori atau data mentah sedangkan lokasi
tujuan dapat berupa register atau daerah memori saja.
MOV lokasi tujuan, lokasi asal
A. Register Addressing
Merupakan penyalinan data antar register , yaitu dari suatu register asal ke
register tujuan.
Sintaks : MOV reg1,reg2
Contoh 1. : MOV AX,BX ; menyalin isi register BX ke AX
MOV BL,DH :
MOV SI,DI
Contoh 2.
23
MIkroprosesor
B. Immediate Addressing
Merupakan penyalinan suatu data(mentah) ke suatu register
Sintaks : MOV reg,data
Contoh 6 : MOV BL,2Ah ; menyalin 2AH ke BL
MOV CH,’A’ : menyalin karakter ASCI A ke CH
MOV AX,’AB’
24
MIkroprosesor
C. Direct Addressing
Merupakan penyalinan data(mentah) dari lokasi memori tertentu ke
accumulator(AX,AH atau AL) atau sebaliknya (dari accumulator ke lokasi memori
tertentu)
Sintaks : MOV reg_A,[alamat]
MOV [alamat], reg_A ; reg_A = accumulator
Contoh 7: MOV AL,[0100h] ; menyalin data dari lokasi memori beralamat [
DS X 10h +100h] ke register AL
MOV [0200h],AX : menyalin data dari register AX ke lokasi
memori beralamat [ DS X 10h +200h]
Contoh 8.
25
MIkroprosesor
EAX
EBX 01 07
01 3301
ECX 56 78 07 3300
EDX .
.
DS 03 00
56 3201
78 3200
26
MIkroprosesor
c. Antar lokasi memori yang masing-masing alamatnya ditunjukkan oleh isi register
penunjuk alamat ( BP,BX, DI atau SI)
Sintaks : MOV reg,[reg]
MOV [reg], reg
MOV reg], [reg]
Contoh 11 : MOV EAX,[BX] ; menyalin data dari lokasi memori beralamat
[ DS X 10h +100h] ke register EAX
MOV [CX],AX : menyalin data dari register AX ke lokasi memori
beralamat [ DS X 10h +CX]
Contoh 12. Register Indirect Addresing
27
MIkroprosesor
28
MIkroprosesor
b. dari suatu register asal ke lokasi memori yang alamatnya ditunjukkan oleh
isi base register ( BP atau BX) + isi index register (SI atau DI) +
displacement
Sintaks : MOV reg,[base+index +disp]
MOV [base + index+disp, reg
Contoh 17 : MOV DX,[BX+SI+10h] ; menyalin data dari lokasi memori
beralamat [ DS X 10h +BX+SI+10h] ke register DX
MOV [BP+DI+20h],AX ; menyalin data dari AX ke lokasi
memori beralamat [ SS X 10h +BP+DI+20h]
Contoh 18
II. Tugas
b. Immediate Addressing
c. Direct Addressing
29
MIkroprosesor
Soft skill/karakter : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian, dan
Percaya diri dalam pembelajaran mikroprosesor
b. POP
• Instruksi untuk mengambil kembali sebuah data dari dalam tumpukan (stack)
untuk diletakkan kembali kedalam suatu register 16 bit atau ke lokasi memori
16 bit tertentu
30
MIkroprosesor
Hasil Program
Penjelasan program:
Baris MOV BL,DL di baris kelima diatas diganti dengan PUSH DX yang berarti
melakukan operasi penyimpanan register stack , dan baris MOV DL,BL diganti
dengan POP DX yang berarti mengambil isi stack .
c. XCHG (EXCHANGE)
• Instruksi XCHG berfungsi untuk menukarkan isi suatu register dengan register
lainnya atau isi suatu register dengan isi suatu memori
31
MIkroprosesor
• Sintaks
XCHG reg, reg
XCHG reg, [almat]
Contoh 6.
XCHG AX,BX ; menukarkan isi register AX dan BX
XCHG DX,[DI] ; menukarkan isi register DX dan isi lokasi
memori beralamat (DSx10 +DI)
XCHG [SI],CH ; menukarkan isi lokasi memori yang beralamat (DSx10
+SI) dengan isi register CH
Contoh 7.
• Instruksi LEA akan mengambil alamat suatu data pada lokasi memori tertentu
dan meletakkannya di suatu register 16 bit
• Sintaks
LEA reg, reg
LEA reg, [almat]
Contoh 8.
LEA BX,BX ; menukarkan isi register AX dan BX
LEA BX,[DI] ; alamat offset yang ditunjukkan oleh DI (isi register DI )
diambil dan diletakkan di BX
LEA AX,[SI] ; alamat offset yang ditunjukkan oleh SI (isi register SI )
diambil dan diletakkan di AX
Contoh 9.
32
MIkroprosesor
a. Instruksi lods akan memindahkan data string pada segmen data yang
alamat offsetnya ditunjukkan oleh isi register SI ke accumulator (AL,AX).
Setelah memindahkan data isi register SI akan diincrement ( bila D=0)
atau decerement (D=1)
Contoh 10
LODSB ; data pada lokasi memori beralamat (DSx10+SI) dipindahkan ke
register AL ; SI=SI+1
LODSW ; data pada lokasi memori beralamat (DSx10+SI) dipindahkan ke
register AX ; SI=SI+2
LODSW ; data pada lokasi memori beralamat (DSx10+SI) dipindahkan ke
register EAX ; SI=SI+4
Contoh 11.
33
MIkroprosesor
h. MOVS(MOVE STRING)
• Instruksi MOVS memindahkan string dari suatu lokasi memori yang lain.
Instruksi ini memindahkan sebuah byte ,word, atau double word dari data
segment beralamat offset si ke extra segment DI
• Pemakaian instruksi MOVS
– MOVSB ; isi lokasi memori beralamat [ESX1OH+DI]
dipindahkan ke alamat [ES X1OH + DI], DI=DI +1, SI=SI +1,
34
MIkroprosesor
II. Tugas
1. Jelaskan jenis-jenis instruksi perpindahan data
b. Instruksi XCHG
Operasi Aritmatika
35
MIkroprosesor
Soft skill/karakter : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian, dan
Percaya diri dalam pembelajaran mikroprosesor
I. Operasi aritmatika
A. Penjumlahan
1. Penjumlahan register
– Adalah penjumlahan yang terjadi antara data suatu register asal dan
suatu register tujuan
– Sintaks;
• ADD REG_TUJUAN, REG_ASAL
• Contoh 1;
ADD BL, CL ; menjumlahkan isi register BL dan CL ,
hasilnya disimpan di reg. BL
ADD CX,BX ; menjumlahkan isi egister CX dan BX,
hasilnya disimpan di CX
Contoh 2.
• Contoh 3;
• ADD AH, 80H ; menjumlahkan isi register AH dengan 80H, hasilnya
disimpan di AH
• ADD BX,100H; menjumlahkan isi register BX dengan 100H, hasilnya
dismpan di BX
Contoh 4.
36
MIkroprosesor
• Penjumlahan memori register terjadi antara data suatu lokasi memori (asal) ke
suatu register (tujuan ) atau sebaliknya . Hasil penjumlahannya disimpan di
register tujuan tsb.
• Sintaks;
– ADD REG, [ALAMAT]
– ADD [ALAMAT], REG
• Contoh 5;
• ADD AH, [AL] ; isi register ah dijumlahkan dengan data pada lokasi memori
beralamat [DS X 10H +AL], hasilnya disimpan diregister AH
• ADD [AL], AH ; data pada lokasi memori beralamat [DS X 10H +AL]
dijumlahkan dengan isi register ah hasilnya disimpan dimemori tersebut
Contoh 6.
4. INC (INCREMENT)
• Increment (penambahan 1) menyebabkan data pada suatu lokasi memori atau
suatu register bertambah
• Sintaks;
– INC REG
– INC [ALAMAT]
• Contoh 7.
• INC DL ; isi register DL ditambah 1
• INC [SI]; isi lokasi memori beralamat [DS X 10H +SI]
ditambah 1
Contoh 8.
37
MIkroprosesor
• Pada dasarnya mirip add, bedanya pada operasi ADC, BIT CARRY (C) turut
dijumlahkan.
• Sintaks ; ADC
• Contoh 9 ;
• ADC AH,AL ; AH = AH + AL + CARRY, hasilnya disimpan di register
AH
• ADC [DI],CH; Menjumlahkan data pada lokasi memori beralamat [DS X
10H + DI] dengan isi register ch dan bit carry, hasilnya disimpan di lokasi
memori itu sendiri
Contoh 10.
B. Pengurangan
1. Pengurangan register
– Merupakan pengurangan data suatu register asal oleh isi register tujuan
– SINTAKS ; SUB REG_TUJUAN , REG_ASAL
– Contoh 11.
– SUB BL,CL ; mengurangkan isi register BL dengan CL, hasilnya
disimpan di register BL
– SUB CX,BX ; mengurangkan isi register CX dengan BX, hasilnya
disimpan di register CX
Contoh 12.
38
MIkroprosesor
• Merupakan pengurangan isi suatu register oleh suatu data (mentah). Hasilnya
disimpan di register tersebut
• SINTAKS ; SUB REG, DATA
• Contoh 13.
SUB AH,80H ; mengurangkan isi register AH dengan 80 H dan hasilnya
disimpan di register AH
SUB BX,100H ; mengurangkan isi register BX dengan 100H dan
hasilnya disimpan di register BX
Contoh 14.
3. Pengurangan memori-register
• Pengurangan memori register terjadi antara data suatu lokasi memori (asal) ke
suatu register (tujuan ) atau sebaliknya . Hasil penjumlahannya disimpan di
register tujuan tsb.
• SINTAKS;
• SUB REG, [ALAMAT]
• SUB [ALAMAT], REG
• Contoh 15;
SUB AH, [AL] ; isi register ah dikurangkan dengan data pada lokasi
memori beralamat [DS X 10H +AL], hasilnya disimpan diregister AH
• SUB [AL], AH ; data pada lokasi memori beralamat [DS X 10H +AL]
dikurangkan dengan isi register ah hasilnya disimpan dimemori tersebut
39
MIkroprosesor
Contoh 16.
4. DEC (DECREMENT)
• Pada dasarnya mirip sub, bedanya pada operasi sbb, bit carry (c) turut
dikurangkan.
• SINTAKS ; SBB
• Contoh 19 ;
• SBB AH,AL ; AH = AH - AL - CARRY, hasilnya disimpan di register AH
• SBB[DI],CH; mengurangkan data pada lokasi memori beralamat [DS X 10H
+ DI] dengan isi register CH dan BIT carry , hasilnya
disimpan di lokasi memori itu sendiri
Contoh 20.
40
MIkroprosesor
Contoh 21
C. Pembandingan
• Merupakan operasi pengurangan tetapi tidak mengubah isi lokasi memori atau
register tujuan
• SINTAKS ; CMP REG,REG
» CMP REG,DATA
» CMP REG, [ALAMAT]
» CMP [ALAMAT],REG
• Contoh 22.
• CMP DL,BL ; DL = DL – BL, tanpa mengubah isi DL maupun BL
• CMP BX,[SI] ; isi register bx dikurangi dengan isi lokasi memori
beralamat [ DS :SI] tanpa mengubah isi BX maupun isi memori
tersebut
Contoh 23.
D. Perkalian
41
MIkroprosesor
1. Perkalian 8 bit
Merupakan perkalian antara sebuah (bilangan yang akan dikalikan , yang
tersimpan di register al) dengan sebuah (bilangan pengali, yang dapat
merupakan isi sebuah register 8 bit, atau data pada lokasi memori tertentu,
atau sebuah variabel ) hasil perkalian disimpan di register AX ( perkalian 8 bit
menghasilkan bilangan 16 bit)
SINTAKS ; MUL REG
MUL [ALAMAT]
Contoh 23:
Contoh 24.
2. Perkalian 16 bit
Contoh 26
E . Pembagian
42
MIkroprosesor
1. Pembagian 8 bit
Contoh 28.
2. Pembagian 16 bit
Contoh 30.
43
MIkroprosesor
III. Tugas
Operasi Logika
44
MIkroprosesor
Soft skill/karakter : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian, dan
Percaya diri dalam pembelajaran mikroprosesor
I. Operasi Logika
a. Operasi AND
• Bila 2 buah operand(register atau lokasi memori atau variabel) dikenai operasi
and , maka maka setiap bit yang bersesuaian dari kedua operand akan di AND-
kan. Operasi AND akan menghasilkan nilai ‘1’ bila kedua bit operand bernilai
‘1’.
• SINTAKS : AND REG,REG
» AND REG, [ALAMAT]
» AND [ALAMAT], REG
• Contoh 1
– AND CL,65h ; isi register CL di-AND-kan dengan 65h, hasilnya
disimpan di register CL
– AND AX, BX ; isi register AX DI-AND-kan dengan isi
register BX , hasilnya disimpan di register AX
– AND DX, [BP] ; isi register DX di-AND-kan dengan data di
lokasi memori beralamat [SSX10h + BP] , hasilnya disimpan di
register DX
– AND [BP], DX ; isi register dx di-AND-kan dengan data di lokasi
memori beralamat [SSX10h + BP] , hasilnya disimpan di lokasi
memori tersebut
• 61 hexa = 0110 0001b
• DF hexa= 1101 1111 b AND
• 0100 0001b = 41 hexa
Contoh 2.
45
MIkroprosesor
b. Operasi OR
• Bila 2 buah operand(register atau lokasi memori atau variabel) dikenai operasi
OR , maka maka setiap bit yang bersesuaian dari kedua operand akan di OR-
KAN. Operasi OR akan menghasilkan bit ‘1’ bila setidaknya salah satu dari
kedua bit operand bernilai ‘1’
• SINTAKS : OR REG,REG
OR REG, [ALAMAT]
OR [ALAMAT], REG
• Contoh 3
– OR DH,25h ; isi register DH di-OR-kan dengan 25h,
hasilnya disimpan di register DH
– OR AX, BX ;isi register AX diOR-kan dengan isi register BX ,
hasilnya disimpan di register AX
– OR DX, [SP] ; isi register DX di-OR-kan dengan data di lokasi
memori beralamat [DS:BP] , hasilnya disimpan di register DX
– OR [SP], DX ; isi register DX di-OR-kan dengan data di
lokasi memori beralamat [SS:BP] , hasilnya disimpan di lokasi
memori tersebut
• Bila 2 buah operand(register atau lokasi memori atau variabel) dikenai operasi
OR , maka maka setiap bit yang bersesuaian dari kedua operand akan di OR-
kan. Operasi OR akan menghasilkan bit ‘1’ bila setidaknya salah satu dari
kedua bit operand bernilai ‘1’
• SINTAKS : OR REG,REG
» OR REG, [ALAMAT]
» OR [ALAMAT], REG
• Contoh 4.
46
MIkroprosesor
• Bila 2 buah operand(register atau lokasi memori atau variabel) dikenai operasi
xor , setiap bit yang bersesuaian dari kedua operand akan di XOR-kan, operasi
xor akan menghasilkan bit ‘1’ bila bit-bit yg bersesuaian dari kedua operand
berbeda
• SINTAKS : OR REG,REG
OR REG, [ALAMAT]
OR [ALAMAT], REG
• Contoh 6.
– XOR DH,25h ; isi register DH di-XOR-kan dengan 25h,
hasilnya disimpan di register DH
– XOR AX,BX ; Isi register AX di-XOR-kan dengan isi
register BX , hasilnya disimpan di register AX
– XOR DX, [SP] ; isi register DX di-XOR-kan dengan data di lokasi
memori beralamat [DS:BP] , hasilnya disimpan di register DX
47
MIkroprosesor
D. Operasi test
• Mirip opersai AND. Bila 2 buah operand(register atau lokasi memori atau
variabel) dikenai operasi TEST, kedua operand tidak ada yang berubah, yang
berubah hanya bit flag register analog dengan operasi CMP terhadap SUB.
• SINTAKS : TEST REG,REG
» TEST REG, [ALAMAT]
» TEST [ALAMAT], REG
• Contoh 8
– TEST CL,25h ; isi register CL di-AND-kan dengan 25h, tanpa
mengubah isi register CL
– TEST AX, BX ; isi register AX DI-and-kan dengan isi
register BX , tanpa mengubah isi register AX
– TEST DX, [BP] ; isi register DX di-and-kan dengan data di
lokasi memori beralamat [SSX10h + BP] , tanpa mengubah isi
register DX
– TEST [BP], DX ; isi register DX di-AND-kan dengan data di
lokasi memori beralamat [SSX10h + BP] , tanpa mengubah isi DX
dan lokasi memori tersebut
Contoh 9.
48
MIkroprosesor
• Bila operasi NOT dikenakan pada sebuah operand(register atau lokasi memori
atau variabel) seluruh bit operand tersebut akan dikenai operasi komplemen-1.
Bila operasi neg dikenakan pada sebuah operand , seluruh bit operand
tersebut akan dikenai operasi k0mplemen-2 ( inversi aritmatika)
• Ctt; komplemen-2 = komplemen-1+1
• SINTAKS : NOT/NEG REG
NOT /NEG [ALAMAT]
NOT/NEG VAR1
• Contoh 10.
– NOT CL ; ISI register CL dikenai komplemen-1,
– NEG CL ; isi register CL dikenai komplemen-2,
– NOT [BP] ; lokasi memoriberalamat [DSX10H+BP] dikenai
komplemen-1,
– NEG [BP] ; lokasi memoriberalamat [DSX10H+BP] dikenai
komplemen-2,
Contoh 11.
49
MIkroprosesor
A. Geser kiri secara logika (SHL) akan memberikan nilai ‘0’ pada bit
paling kanan dan memindahkan bit paling kiri ke bit carry flag (C)
B. Geser kanani secara logika (SHR) akan memberikan nilai ‘0’ pada
bit paling kiri dan memindahkan bit paling kanan ke bit carry flag (C)
2. Pergeseran secara aritmatika dibedakan atas 2 jenis, yaitu geser kiri secara
aritmatik(SAL) dan geser secara aritmatika (SAR).
SINTAKS
• SHL REG,CL
• SHR REG,CL
• SAL REG,CL
• SAR REG,CL
Contoh 12;
ILUSTRASI
Contoh 13
50
MIkroprosesor
III. Rotasi
Operasi rotasi atas sebuah operand (register atau lokasi memori atau variabel) akan
merotasi bit-bit operand tersebut ke kiri atau kekanan.
1. Rotasi dibedakan atas 2 jenis, yaitu rotasi kiri (ROL) dan rotasi kekanan (ROR).
Untuk setiap langkah rotasi dilakukan hal berikut:
A. Rotasi ke kiri (ROL) akan menggeser bit paling kiri ke bit paling kanan dan
menyalinnya ke bit carry flag (C)
B. Rotasi ke kanan (ror) akan menggeser bit paling kanan ke bit paling kiri dan juga
menyalinnya ke bit carry flag (C)
• Rotasi melalui carry dibedakan atas 2 jenis, yaitu rotasi kiri (RCL) dan
rotasi kekanan (RCR). Untuk setiap langkah rotasi dilakukan hal berikut:
– A. Rotasi ke kiri melalui carry (RCL) akan menggeser bit paling kiri ke
carry (C) dan menggeser carry (C) ke bit paling kanan
– B rotasi ke kanan melalui carry (RCR) akan menggeser bit paling kanan
ke carry (C) dan menggeser carry (C) ke bit paling kiri
Sintak:
• ROL REG,CL
• ROR REG,CL
• RCL REG,CL
• RCR REG,CL
• Contoh 14 ;
• ROL AH,2H ; isi register AH dirotasikan ke kiri 2 langkah
• ROR AH,2H ; isi register AH dirotasikan ke kanan 2 langkah
• RCL AH,2H ; isi register AH dirotasikan melalui carry ke kiri 2 langkah
• RCR AH,2H ; isi register AH dirotasikan melalui carry ke kanan 2 langkah
51
MIkroprosesor
ILUSTRASI
Contoh 14
IV. Tugas
b. Operasi pergeseran
c. Operasi rotasi
52
MIkroprosesor
Instruksi Kendali
53
MIkroprosesor
Lompatan pendek (short jump) -> JMP SHORT disp yaitu melakukan
lompatan maksimal sejauh 127 byte.
Contoh:
JMP SHORT 04h ;melakukan lompatan sejauh 4 byte
Lompatan dekat (near jump) -> JMP disp_low disp_high yaitu melakukan
lompatan lebih panjang maksimal 32 Kb.
Contoh:
JMP 0200h ;melakukan lompatan ke lokasi memori 200h
Lompatan jauh (far jump) -> JMP FAR iplow Cslow Cshigh yaitu melakukan
lompatan ke seluruh daerah memori.
Contoh:
JMP FAR nH ;melakukan lompatan jauh ke lokasi tertentu
b. Lompatan bersyarat
Yaitu lompatan pendek yang dilakukan ke seluruh daerah memori dalam segmen
memori yang sama dan terjangkau oleh operasi ini. Instruksi ini menggunakan CMP
untuk membandingkan kondisi yang dicek, sehingga akan melompat ke alamat yang
dituju sesuai instruksi lompatan bersyarat, dimana instruksi lompatan bersyarat antara
lain :
JA (Jump if Above) ; lompat bila operand 1 > operand2 (bilangan tak
bertanda)
JAE (Jump if Above or Equal); lompat bila operand 1 >= operand2
(bilangan tak bertanda)
JB (Jump if Below) ; lompat bila operand 1 < operand2 (bilangan tak
bertanda)
JBE (Jump if Below or Equal); lompat bila operand 1 <= operand2
(bilangan tak bertanda)
JG (Jump if Greater); lompat bila operand 1 > operand2 (bilangan
bertanda)
JGE (Jump if Greater or Equal) ; lompat bila operand 1 >= operand2
(bilangan bertanda)
54
MIkroprosesor
55
MIkroprosesor
Contoh :
.model small
.code
org 100h
MULAI: MOV BX, 0000H
ULANG3: MOV DL, 41H
ULANG2: MOV CX,0003H
ULANG1: MOV AH,02H
INT 21H
LOOP ULANG1
INC DL
CMP DL,5BH
JNE ULANG2
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
INT 21H
INC BX
CMP BX,000BH
JLE ULANG3
INT 20H
END MULAI
B. Kalang (Loop)
56
MIkroprosesor
II. Tugas
b. Instruksi LOOP
57