Anda di halaman 1dari 57

MIkroprosesor

PENDAHULUAN MIKROKONTROLER

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menjelaskan perkembangan mikroprosesor, dan aplikasi mikroprosesor
Soft skill/karakter: berpikir kritis

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.

Dan bagaimana dengan sejarahnya, semuanya pasti ada sejarahnya mengapa


mikroprosesor muncul , berikut sejarahnya:
Th. 1948 : Transistor pertama dibuat di Bell Labs, USA.
Th. 1958 : IC (Integrated Circuit) pertama dibuat oleh Jack Kilby dari Texas
Instrument, USA.Penemuan IC ini mendorong pengembangan IC Digital

1
MIkroprosesor

(1960), dan mikroprosesor pertama oleh Intel (1971).Mikroprosesor


pertama di dunia adalah Intel 4004 merupakan prosesor 4-bit,
Kebanyakan Kalkulator masih berbasis mikroprosesor 4-bit.

Th. 1971 : Intel mengeluarkan mikroprosesor 8-bit yaitu Intel 8008.


Th. 1973 : Intel memperkenalkan mikroprosesor 8-bit modern pertama Intel 8080
(10x lebih cepat dari 8008), dan diikuti Motorola MC6800.
Th. 1977 : Intel memperkenalkan 8085 yang merupakan mikroprosesor 8-bit terakhir
yang dibuat Intel dengan frek.clock dan kecepatan lebih tinggi.Perusahaan
lain yang mampu menyaingi Intel 8085 adalah Zilog Corporation dengan
Z80.
Th. 1978 : Intel mengeluarkan mikroprosesor 16-bit yaitu 8086, setahun kemudian
mengeluarkan 8088 dengan kecepatan eksekusi dan memori lebih besar
dari 8085, serta mulai digunakannya cache memori (sistem antrian yang
mengatur pemberian instruksi sebelum menjalankannya).Intel 8086/8088
disebut juga CISC (Complex Instruction Set Computer) karena jumlah
dan kompleksitas instruksinya.
Th. 1981 : IBM membuat PC menggunakan mikroprosesor 8088 untuk menjalankan
aplikasi seperti spreadsheet dan pengolah kata.
Th. 1983 : Intel mengeluarkan mikroprosesor 16-bit 80286, dengan kemampuan
memori 16 MB.
Th. 1986 : Intel mengeluarkan mikroprosesor 32-bit pertama 80386, dengan
kemampuan memori 4 GB.
Th. 1989 : Intel mengeluarkan mikroprosesor 32-bit 80486, dengan kemampuan
memori 4 GB + 8K Cache.
1993: Intel® Pentium® Processor
Processor generasi baru yang mampu menangani berbagai jenis data seperti
suara, bunyi, tulisan tangan, dan foto.
1995: Intel® Pentium® Pro Processor

2
MIkroprosesor

Processor yang dirancang untuk digunakan pada aplikasi server dan


workstation, yang dibuat untuk memproses data secara cepat, processor ini
mempunyai 5,5 jt transistor yang tertanam.
1997: Intel® Pentium® II Processor
• Processor Pentium II merupakan processor yang menggabungkan Intel MMX
yang dirancang secara khusus untuk mengolah data video, audio, dan grafik
secara efisien. Terdapat 7.5 juta transistor terintegrasi di dalamnya sehingga
dengan processor ini pengguna PC dapat mengolah berbagai data dan
menggunakan internet dengan lebih baik.
1998: Intel® Pentium II Xeon® Processor
• Processor yang dibuat untuk kebutuhan pada aplikasi server. Intel saat itu
ingin memenuhi strateginya yang ingin memberikan sebuah processor unik
untuk sebuah pasar tertentu.
1999: Intel® Celeron® Processor
• Processor Intel Celeron merupakan processor yang dikeluarkan sebagai
processor yang ditujukan untuk pengguna yang tidak terlalu membutuhkan
kinerja processor yang lebih cepat bagi pengguna yang ingin membangun
sebuah system computer dengan budget (harga) yang tidak terlalu besar.
Processor Intel Celeron ini memiliki bentuk dan formfactor yang sama dengan
processor Intel jenis Pentium, tetapi hanya dengan instruksi-instruksi yang
lebih sedikit, L2 cache-nya lebih kecil, kecepatan (clock speed) yang lebih
lambat, dan harga yang lebih murah daripada processor Intel jenis Pentium.
Dengan keluarnya processor Celeron ini maka Intel kembali memberikan
sebuah processor untuk sebuah pasaran tertentu.
1999: Intel® Pentium® III Processor
• Processor Pentium III merupakan processor yang diberi tambahan 70 instruksi
baru yang secara dramatis memperkaya kemampuan pencitraan tingkat tinggi,
tiga dimensi, audio streaming, dan aplikasi-aplikasi video serta pengenalan
suara.
1999: Intel® Pentium® III Xeon® Processor
• Intel kembali merambah pasaran server dan workstation dengan mengeluarkan
seri Xeon tetapi jenis Pentium III yang mempunyai 70 perintah SIMD.
Keunggulan processor ini adalah ia dapat mempercepat pengolahan informasi
dari system bus ke processor , yang juga mendongkrak performa secara
3
MIkroprosesor

signifikan. Processor ini juga dirancang untuk dipadukan dengan processor


lain yang sejenis.
2000: Intel® Pentium® 4 Processor
Processor Pentium IV merupakan produk Intel yang kecepatan prosesnya
mampu menembus kecepatan hingga 3.06 GHz. Pertama kali keluar processor
ini berkecepatan 1.5GHz dengan formafactor pin 423, setelah itu intel
merubah formfactor processor Intel Pentium 4 menjadi pin 478 yang dimulai
dari processor Intel Pentium 4 berkecepatan 1.3 GHz sampai yang terbaru
yang saat ini mampu menembus kecepatannya hingga 3.4 GHz.
2001: Intel® Xeon® Processor
• Processor Intel Pentium 4 Xeon merupakan processor Intel Pentium 4 yang
ditujukan khusus untuk berperan sebagai computer server. Processor ini
memiliki jumlah pin lebih banyak dari processor Intel Pentium 4 serta dengan
memory L2 cache yang lebih besar pula.
2001: Intel® Itanium® Processor
• Itanium adalah processor pertama berbasis 64 bit yang ditujukan bagi
pemakain pada server dan workstation serta pemakai tertentu. Processor ini
sudah dibuat dengan struktur yang benar-benar berbeda dari sebelumnya yang
didasarkan pada desain dan teknologi Intel’s Explicitly Parallel Instruction
Computing ( EPIC ).
2002: Intel® Itanium® 2 Processor
• Itanium 2 adalah generasi kedua dari keluarga Itanium
2003: Intel® Pentium® M Processor
• Chipset 855, dan Intel® PRO/WIRELESS 2100 adalah komponen dari Intel®
Centrino™. Intel Centrino dibuat untuk memenuhi kebutuhan pasar akan
keberadaan sebuah komputer yang mudah dibawa kemana-mana.
2004: Intel Pentium M 735/745/755 processors
• Dilengkapi dengan chipset 855 dengan fitur baru 2Mb L2 Cache 400MHz
system bus dan kecocokan dengan soket processor dengan seri-seri Pentium M
sebelumnya.
2004: Intel E7520/E7320 Chipsets
7320/7520 dapat digunakan untuk dual processor dengan konfigurasi 800MHz
FSB, DDR2 400 memory, and PCI Express peripheral interfaces.
2005: Intel Pentium 4 Extreme Edition 3.73GHz
4
MIkroprosesor

• Sebuah processor yang ditujukan untuk pasar pengguna komputer yang


menginginkan sesuatu yang lebih dari komputernya, processor ini
menggunakan konfigurasi 3.73GHz frequency, 1.066GHz FSB, EM64T, 2MB
L2 cache, dan HyperThreading.
2005: Intel Pentium D 820/830/840
• Processor berbasis 64 bit dan disebut dual core karena menggunakan 2 buah
inti, dengan konfigurasi 1MB L2 cache pada tiap core, 800MHz FSB, dan bisa
beroperasi pada frekuensi 2.8GHz, 3.0GHz, dan 3.2GHz. Pada processor jenis
ini juga disertakan dukungan HyperThreading.
2006: Intel Core 2 Quad Q6600
• Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan
lebih dari komputer yang ia miliki memiliki 2 buah core dengan konfigurasi
2.4GHz dengan 8MB L2

II. Filosof Perkembangan

 Optimalisasi Ukuran kecil


Sedapat mungkin mengintegrasikan modul luar ke dalam chip prosesor yang
berukuran kecil melalui teknologi embedded system. Tujuan paling penting
bentuknya kecil tapi dapat mengelola banyak fungsi.

 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

Sehingga, satu instruksi memerlukan banyak waktu untuk pemrosesan


2. RISC: Reduced Instruction Set Computer
 Sedikit instruksi dan mudah
 Instruksi yang rumit dibentuk dari kumpulan instruksi yang mudah
 Sedikit jenis/metode pengalamatan
 Penghitungan alamat yang besar dibuat melalui beberapa instruksi
 Instruksi diimplementasikan dalam Hardware
 Pengelolaan lebih cepat, karena tidak ada micro code
Sehingga, satu instruksi memerlukan waktu sedikit untuk pemrosesan.
Standar Prestasi CPU diukur dari Jumlah Instruksi yang diproses dalam satu detik
(MIPS)  Millions Instruction per Second

III. Kronologi Perkembangan

Prosesor Th.Keluar Jml. Micron Clock Speed Data Width MIPS


Transistor

8080 1974 6000 6 2 MHz 8 bits 0,64

8088 1979 29000 3 5 MHz 16 bits, 8bit bus 0,33

80286 1982 134000 1,5 6 MHz 16 bits 1

80386 1985 275000 1,5 16 MHz 32 bits 5

80486 1989 1.200.000 1 25 MHz 32 bits 20

Pentium 1993 3.100.000 0,8 60 MHz 32 bits, 64 bit bus 100

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

1. Jelaskan yang melatarbelakangi perkembangan mikroprosesor


2. Jeleaskan pengertian mikroprosesor dan fungsinya

6
MIkroprosesor

Arsitektur Dasar Komputer dan Mikroproseor

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menjelaskan arsitektur dasar mikroprosesor dan komputer

Soft skill/karakter: : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian,


dan Percaya diri dalam pembelajaran mikroprosesor

I. Komputer
Bagian fungsional utama sebuah komputer adalah
– Central Processing Unit/Unit PemrosesUtama,
– Memori
– Sistem Input-Output.

Gambar berikut memperlihatkan bagian fungsional utama komputer



Gambar 1. Bagian fungsional utama komputer

1. Central Processing Unit/Unit Pemroses Utama ( Mikroprosesor)


CPU diangap sebagai otak sebauah sistem komputer , mengorganisasikan semua
operasi yang terjadi didalam komputer, operasi-operasi perpindahan data,operasi
aritmatika dan logika, dan pengendalian piranti masukan dan keluaran

7
MIkroprosesor

2. Memory Unit (Unit Penyimpan)


Memori digunakan untuk menyimpan data maupun instruksi-instruksi program
ada 2 jenis memori yang digunakan dalam komputer, yaitu RAM (random accress
memory) dan ROM (read only memory)

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).

II. Arsitektur dasar mikroprosessor


1. ALU (arithmetic and Logical Unit)
Unit ini berfungsi untuk menangani operasi-operasi aritmatika ( penjumlahan,
perkalian, pembagian) dan operasi –operasi logika(AND, OR, EXOr, dll).
2. CU ( Control Unit/unit kendali)

8
MIkroprosesor

Berfungsi untuk mengatur semua proses internal (perpindahan data, penanganan


interupsi, pengendalian jalannya program, pengendalian piranti masukan dan
keluaran beserta seluruh sumber daya pada mikroprosessor
3. Register
Register adalah memori yang dapat diakses dengan sangat cepat oleh
mikroprosessor.Register merupakan tempat penyimpanan sementara dari
tahapan operasi-operasi aritmatika dan logika yang kompleks.

Gambar 2. Arsitektur dasar mikroprosesor

Gambar berikut memperlihatkan blok diagran dan konfigurasi pin 8088

2.a. Register 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

sebagai kaki dan tangannya mikroprosesor.Register yang digunakan oleh


mikroprosesor dibagi menjadi 5 bagian dengan tugasnya yang berbeda-beda pula,
yaitu :

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

General Purpose Register terdiri dari :

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.

• AX (accumulator) : Sebagai akumulator


10
MIkroprosesor

• BX (base) : Sebagai basis pengalamatan register


• CX (count) : Sebagai Counter dalam bentuk operasi
• DX (data) : Sebagai pusat data pada operasi I/O

• 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.

Register AX (Accumulator register) berfungsi sebagai accumulator dan berhubungan


dengan operasi- operasi khusus seperti IN , OUT , perkalian , pembagian dan lain-
lain.
a. Tempat penyimpanan sementara hasil suatu operasi aritmatika atau logika (register
AL,AH,AX, dan EAX)
Contoh 1 :
ADD AX, DX ; menjumlahkan isi register AX dengan DX, hasilnya disimpan
diregister AX
XOR AX,AX ; isi register AX di-XOR kan dengan dirinya sendiri (untuk
mengosongkan isi register AX
b. Tempat memasukan nomor layanan interupsi, untuk keperluan pemesanan sebuah
layanan interupsi (register AH)
Contoh 2 :
mov DL, ‘A’: mengisi register DL dengan karakter yang akan
dicetak
mov AH, 02H ; memasukan layanan nomor 2 interrupt 21h(memesan layanan
pencetakan karakter)
int 21H ; mencetak karakter yang ada pada register DL

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

Mul CL ; mengalikan isi register AL dengan CL, hasilnya disimpan


diregister AX
Mul CX ; mengalikan isi register AX dengan CX, hasilnya disimpan
diregister DX dan AX
d. Tempat menyimpan setengah bagian terkecil sebuah bilangan yang akan dibagi
(register DX-AX dan EDX-EAX) dan hasil bagi suatu pembagian (register
(AL,AX dan EAX)
Contoh 5:
DIV BL ; isi register AX dibagi dengan isi register BL, hasilnya disimpan
diregister AL dan sisanya diregister AH
DIV BX ; isi register DX-AX dibagi dengan isi register BX, hasilnya disimpan
diregister AX dan sisanya diregister DX

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]

Register CX (Counter register) berfungsi sebagai register pencacah/counter


a. pencacah untuk operasi loop/kalang register (CX dan ECX)
Contoh 7:
UL : MOV CX, 03h ; mengeset pencacah=3
MOV BX, 05h ;mengisi register BX dengan 5
ADD BX,02h : menjumlahkan isis register BX dengan
2, hasilnya disimpan diregister BX
Loop UL ; mengulangi proses penjumlahan 2x lagi
b. pencacah untuk operasi shift dan rotate (register CL)
Contoh 8:
mov CL, 04h ; mengisi register CL dengan 04h
mov AX, 88h; mengisi regiter AX dengan 88h

12
MIkroprosesor

SHL AX,CL ; isi register AX digeser sebanyak langkah yang


ditunjukan oleh register CL
c. Pencacah (counter) untuk operasi string(CX)
Register DX (data register) adalah register serbaguna yang berfungsi sebagai:
a. Tempat penyimpanan setengah bagian terbesar (most significant part) hasil suatu
perkalian bilangan 16 bit (register DX-AX) dan 32 bit (register EDX-EAX)
Contoh 9 :
MUL CX : mengalikan isi register AX dengan isi register CX, hasilnya
disimpan di register DX-AX
MUL ECX : mengalikan isi register EAX dengan isi register ECX,
hasilnya disimpan di register EDX-EAX
b. Tempat penyimpanan setengah bagian terbesar (most significant part) suatu
bilangan yang akan dikenai operasi pembagian (register DX-AX) dan (register
EDX-EAX) serta sisa suatu pembagian (register DX dan EDX)
Contoh 10 :
DIV BX : membagi isi register DX-AX dengan isi register BX, hasilnya
disimpan di register AX , sisanya diregister DX
DIV EBX: membagi isi register EDX-AX dengan isi register EBX,
hasilnya disimpan di register EAX , sisanya diregister EDX

Pointer register (register pointer)


• Pointer register lebih sering digunakan untuk menunjukkan alamat sebuah data
di lokasi memori.
• Penunjukan alamat ini dibutuhkan saat operasi perpindahan data (dari atau ke
memori), operasi stack (PUSH dan POP) dan penunjukan alamat suatu
instruksi yang akan dieksekusi (saat sebuah program sedang dijalankan) 1.
Stack Pointer Register (SP dan ESP)
Berpasangan dengan register SS, ditulis ‘SS:SP, berfungsi sebagai :
a. menunjukkan alamat stack memory pada operasi PUSH dan POP
Contoh 11:
PUSH AX : isi register AX dikopikan ke tumpukan stack paling atas (
dialamati oleh SS:SP-2)
POP BX : isi tumpukan stack paling atas ( dialamati oleh SS:SP)
dipindahkan ke register BX
13
MIkroprosesor

b. Menyimpan alamat instruksi berikutnya ketika memanggil suatu prosedur (CALL)


dan mengarahkan kembali Control unit ketika prosedur yang dipanggil telah
selesai dieksekusi (RET)

Base Pointer Register (BP)


Berpasangan dengan register SS, ditulis sebagai “SS:BP”, berfungsi untuk
menunjukkan alamat sebuah data disuatu lokasi memori.
Contoh 12 :
MOV AX,[BX] : data pada lokasi memori yang alamat offsetnya ditunjukan
oleh isi register BX dikopikan ke register AX
MOV [BX],DX : isi register DX dikopikan ke lokasi memori yang alamat
offsetnya ditunjukan oleh isi register BX

Instruction Pointer Register (IP)


Berpasangan dengan register CS(CS:IP) berfungsi untuk menunjukkan alamat
berikutnya yang akan dieksekusi.
Index Register (Register Indeks)
• Lebih sering digunakan menunjukkan alamat sebuah data di lokasi memori
pada opersi-operasi string
• Register yang termasuk dalam kelompok ini adalah register SP,BP,SI dan DI
yang masing-masing terdiri atas 16 bit. Register- register dalam kelompok ini
secara umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi
di memory.
• Register SP(Stack Pointer) yang berpasangan dengan register segment
SS(SS:SP) digunakan untuk mununjukkan alamat dari stack, sedangkan
register BP(Base Pointer)yang berpasangan dengan register SS(SS:BP)
mencatat suatu alamat di memory tempat data.
1. Source Index (SI)
Biasanya digunakan pada operasi string untuk mengakses alamat suatu data
di dalam memori secara langsung
Contoh 13 : Mov SI, Offset TBL1 ; mengambil alamat TBL1
2. Destination Index (DI)

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

Segmen Register (register Segmen)


• segmen register (bersama dengan register register tertentu) membentuk
alamat memori bagi suatu data.
• Register yang termasuk dalam kelompok ini terdiri atas register CS,DS,ES dan
SS yang masing-masingnya merupakan register 16 bit. Register-register dalam
kelompok ini secara umum digunakan untuk menunjukkan alamat dari suatu
segmen.

1. Register CS(Code Segment) digunakan untuk menunjukkan tempat dari segmen


yang sedang aktif, sedangkan register SS(Stack Segment) menunjukkan letak dari
segmen yang digunakan oleh stack. Kedua register ini sebaiknya tidak sembarang
diubah karena akan menyebabkan kekacauan pada program anda nantinya.
CS berpasangan dengan register IP (CS:IP) berfungsi untuk menunjukkan alamat
instruksi berikutnya.
2. Register DS(Data Segment) biasanya digunakan untuk menunjukkan tempat
segmen dimana data-data pada program disimpan. Umumnya isi dari register ini tidak
perlu diubah kecuali pada program residen. Data segment register berpasangan
dengan register-register lain (DS:reg) berfungsi untuk menunjukkan alamat data pada
operasi perpindahanh data
Contoh 15:
MOV [BX],AX ; isi register AX dikopikan ke lokasi memori yang alamat
offsetnya ditunjukkan oleh register BX atau alamat absolut
yang ditunjukkan oleh isi register ( DSx10h + isi register
BX)
MOV CX,[DX] ; isi lokasi memori yang alamat offsetnya ditunjukkan oleh
register ( DSx10h + isi register DX) dikopikan ke register CX
3. Register ES(Extra Segment), sesuai dengan namanya adalah suatu register bonus
yang tidak mempunyai suatu tugas khusus. Register ES ini biasanya digunakan untuk
menunjukkan suatu alamat di memory, misalkan alamat memory video.

15
MIkroprosesor

– Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaitu


FS<Extra Segment> dan GS<Extra Segment>.
– Register segment tambahan yang digunakan pada operasi-operasi string.
4. Stack Segment Register (SS)
– berpasangan dengan register SP(SS:SP) stack segment register berfungsi
untuk :
a. menunjukkan alamat stack memory pada opersai PUSH dan POP
b. menyimpan alamat instruksi berikutnya ketika memanggil suatu prosedur
(CALL) dan mengarahkan kembali eksekusi ke program utama (RET)

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 :

Register pelengkap (Flag)

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

a. Tanda akibat operasi aritmatika dan logika


- Carry flag
Jika ada carry atau borrow CF = 1 , jk tdk ada CF = 0
- Parity flag
Jumlah bit 1, genap(parity even), PF = 1
Jumlah bit 1, ganjil(parity odd) , PF = 0
- Auxiliary flag
Instruksi pengaturan desimal dengan carry, AF = 1
Instruksi pengaturan desimal tanpa carry, AF = 0

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.

Gambar 6. Flag Register

Segmen dan offset pada real mode memory


– Alamat suatu data pada lokasi memori ditentukan oleh alamat segmen dan
alamat offset
– Biasanya dilambangkan dengan Segmen : offset

17
MIkroprosesor

– Alamat yang sebenarnya (absolut) dari suatu data beralamat segmen :


offset adalah segment x 10h + offset
Tabel 2. Segmen dan offset pada real mode memory
Alamat relatif segment offset Alamat absolut
1000 : 0250 1000h 0250 h 10250h
0200 : 02FF 0200h 02FFh 22FFh

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

2.b. Memori dan mikroprosessor

Ruang memori dalam suatu sistem mikroprosessor dapat diperlihatkan sebagai


memori fisik dan memori secara logika
A. Memori secara logika (logical memory)
memori yang dilihat dari sudut padang pemogram. Struktur memori secara
logika pada dasarnya sama untuk semua mikroprosessor Intel.Perbedaannya
hanya pada kapasitas memori yang berbeda-beda untuk setiap generasi
mikroprosessor . contoh : memori logika 8086, 8088 dan 80186 dimulai dari
alamat 00000h sampai FFFFFh

B.Memori secara fisik


Memori yang berwujud fisik (hardware). Memori fisik mikroprosessor
keluarga intel berbeda-beda lebarnya.
Contoh 17 : memori untuk 8088 lebarnya 8 bit, untuk 8086, 80186
lebarnya 16 bit , dan 80386DX lebarnya 32 bit, dll
Memori logika adalah system memori yang dilihat dari sudut programmer.
memori logika biasanya diberikan nomor dalam format Hexadecimal.

18
MIkroprosesor

Gambar 6. Memori 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

Read Only Memory (ROM)


 Diprogram oleh pabrik pembuat IC ROM
 Tidak ada data yang dapat ditulis ke dalam ROM
 Data hanya dapat dibaca dan digunakan untuk program yang permanen
 Data tidak akan hilang meskipun tegangan listrik dihilangkan (bersifat non-
Volatile)
 Misalnya : sistem BIOS, printer, CD-ROM, dll.

PROM, EPROM & EEPROM

 Isi memori dapat diganti atau diprogram


 PROM hanya dapat diprogram sekali

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.

Random Access Memory (RAM)


 Untuk menyimpan data sementara
 Hanya berfungsi jika ada tegangan listrik (Volatile)
 Data akan hilang jika listrik dihilangkan
 Termasuk di dalamnya Static RAM, Dynamic RAM, Synchronous DRAM,
Rambus DRAM, dll.
 Misalnya : Computer RAM, printer, dll.

2.c. Interaksi mikroprosesor dengan memori

1. mengambil (membaca) informasi dari memori.


2. menyimpan (menulis) informasi ke memori

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)

Gambar 8.Interaksi mikroprosesor dan 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:

Gambar 9. Proses penulisan data oleh µP ke memori

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.

Contoh 18. Realisasi Rangkaian Elektronik mikroprosesor

21
MIkroprosesor

Gambar 10. Contoh aplikasi mikroprosesor

III. Tugas
1. Jelaskan aritektur dasar mikroprosesor

2. Jelaskan arsitektur dasar mikrokomputer


3. Jelaskan pengertian memori secara phisik dan logika

4. Jelaskan jenis dan kegunaan register pada mikroprosesor

5. Jelaskan perbedaan ROM dan RAM

22
MIkroprosesor

Instruksi Mode Pengalamatan Data

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menjelaskan dan menggunakan jenis-jenis pengalamatan data dalam
pemograman mikroprosesor

Soft skill/karakter: : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian,


dan Percaya diri dalam pembelajaran mikroprosesor

I. Instruksi mode pengalamatan data

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

Perhatikan perubahan isi register ax dan bx


Ada 3 pengecualian dalam register Addessing

1. Perpindahan data antar register segmen


Contoh 3 : MOV ES, DS ; menyalin isi register DS ke register ES
MOV SS,CS
2. Perpindahan data antar register yang berbeda ukuran
Contoh 4 : MOV AX,CL :menyalin isi register CL ke register SX
MOV DH,BX :menyalin isi register BX ke register DH
3. Perpindahan data menuju register CS
Contoh 5 : MOV CS,BX :menyalin isi register BXL ke register CS
MOV CS,AX :menyalin isi register AX ke register CS

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

Perhatikan perubahan isi register AX,BX dan CX

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.

Perhatikan perubahan isi register AX dan DS

D. Direct Addressing with displacement


Pada dasarnya sama dengan direct addressing, tetapi register yang terlibat tidak hanya
accumulator
Sintaks : MOV reg,[alamat]
MOV [alamat], reg
Contoh 9: MOV DL,[0100h] ; menyalin data dari lokasi memori beralamat [
DS X 10h +100h] ke registerDL
MOV [0200h],CX : menyalin data dari register CX ke lokasi
memori beralamat [ DS X 10h +200h]

25
MIkroprosesor

Contoh 10. Direct Addresing With Displacement

Perhatikan perubahan isi register BX , DS dan CX

Ilustrasikan menggunakan peta register

EAX

EBX 01 07
01 3301
ECX 56 78 07 3300
EDX .

.
DS 03 00
56 3201
78 3200

a. Register indirect Addressing

Register indirect Addressing merupakan penyalinan data :


a. Dari lokasi memori yang alamatnya ditunjukkan oleh isi register penunjuk alamat
( BP,BX, DI atau SI) ke suatu register
b. Dari suatu alamat asal ke lokasi memori yang alamatnya ditunjukkan oleh isi
register penunjuk alamat ( BP,BX, DI atau SI)

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

b. Register Relative Addressing


Register indirect Addressing merupakan penyalinan data :
a. dari lokasi memori yang alamatnya ditunjukkan oleh base register ( BP,BX)
atau index register (DI atau SI) yang kemudian ditambah dengan
displacement, ke suatu register tujuan , atau
b. Suatu register ke lokasi memori yang alamatnya ditunjukkan oleh isi base
register ( BP,BX) atau index register (DI atau SI) yang kemudian
ditambah dengan displacement
Sintaks : MOV reg,[base+disp]
MOV reg, [index+disp]
MOV [base + disp], reg
MOV [index+ disp], reg
Contoh 13 :MOV AX,[BX+10h] ; menyalin data dari lokasi memori
beralamat [ DS X 10h +BX+10h] ke register AX
MOV CX,[SI+20h] : menyalin data dari lokasi memori
beralamat [ DS X 10h +SI+20h] ke CX
MOV [BP+30h],CH ; menyalin data dari CH ke lokasi
memori beralamat [ SS X 10h +BP+30h]

27
MIkroprosesor

MOV [DI+40h],DL : menyalin data dari DH ke lokasi memori


beralamat [ DS X 10h +DI+40h]
Contoh 14. Register Relative Addressing

c. Base Plus Index Addressing


Register indirect Addressing merupakan penyalinan data :
a. dari lokasi memori yang alamatnya ditunjukkan oleh isi base register ( BP,atau
BX) + isi index register (SI atau DI)ke suatu register tujuan
b. dari suatu register asal ke lokasi memori yang alamatnya ditunjukkan oleh
isi base register ( BP atau BX) + isi index register (SI atau DI) Sintaks : MOV
reg,[base+index]
MOV [base + index], reg

Contoh 15 : MOV DX,[BX+SI] ; menyalin data dari lokasi memori beralamat


DS X 10h +BX+SI] ke register DX
MOV [BP+DI],AX ; menyalin data dari AX ke lokasi memori
beralamat [ SS X 10h +BP+DI]
Contoh 16.

d. Base Relative Plus Index Addressing


Register indirect Addressing merupakan penyalinan data :
a. dari lokasi memori yang alamatnya ditunjukkan oleh isi base register (
BP,atau BX) + isi index register (SI atau DI) + displacement ke suatu
register tujuan

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

1. Jelaskan jenis-jenis mode pengalamatan data

2. Berikan contoh Direct Addressing with displacement dan Ilustrasikan


menggunakan peta register
3. Buat contoh program dan ilustrasikan menggunakan peta register untuk:
a. Register Addressing

b. Immediate Addressing

c. Direct Addressing

d. Direct Addressing with displacement

29
MIkroprosesor

Operasi perpindahan data

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menggunakan instruksi perpindahan data dalam pemograman mikroprosesor

Soft skill/karakter : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian, dan
Percaya diri dalam pembelajaran mikroprosesor

I. Instruksi perpindahan data


a. Push
Instruksi untuk memasukkan (menyimpan ) sebuah data ke dalam tumpukan
(stack).
Data asal berupa isi dari sebuah register , atau isi dari suatu lokasi memori,
atau data langsung (mentah). Ukuran data mentah 8, 16 atau 32 bit.
• Sintaks : PUSH REG
PUSH [alamat]
PUSH data
Contoh 1.
PUSH BX ; menyimpan isi register BX ke stack
PUSH [DI] ; menyimpan isi lokasi memori beralamat (DSx10
+DI) ke stack
PUSH 12h ; menyimpan data 12h ke stack

Alamat stack dibentuk oleh register SS dan SP (SS:SP)


Contoh 2. program operasi PUSH

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

• Sintaks : POP REG


POP [alamat]
POPF
Contoh 3.
POP BX; mengambil isi stack paling atas dan meletakkannya di register BX
POP [DI] ; mengambil isi stack paling atas dan meletakkannya di lokasi
memori beralamat (DS:DI)
POP [ESI] ; mengambil isi stack paling atas dan meletakkannya dilokasi
memori yang beralamat [DS:ESI]
Alamat stack dibentuk oleh register SS dan SP (SS:SP)
Contoh 4. Program operasi PUSH &POP

Contoh 5. Program memakai operasi stack untuk mencetak huruf dari A –Z

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.

d. LEA (Load Effective Address)

• 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.

e. LODS (Load string)

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.

f. STOS (STORE string)

Instruksi STOS akan memindahkan string ke accumulator (AL,AX, EAX) ke


extra segmen yang alamat offsetnya ditunjukkan oleh isi register DI (ES:DI).
Contoh 12.
• STOSB ; isi register AL dipindahkan ke lokasi memori
beralamat (ESx10+DI) ; DI=DI+-1
• STOSW ; isi register AX dipindahkan ke lokasi memori
beralamat (ESx10+DI) ; DI=DI+-2
• STOSW ; isi register EAX dipindahkan ke lokasi memori
beralamat (ESx10+DI) ; DI=DI+-4
Contoh 13.

33
MIkroprosesor

g. MOVS (MOVE STRING)

Instruksi MOVS akan memindahkan string ke suatu lokasi memori lain


instruksi ini memindahkan sebuah byte, word, double word dari suatu segmen
beralamat offset si ke extra segmen DI .
Contoh 14.
MOVSB ; isi lokasi memori beralamat (ESX10+DI) dipindahkan ke
alamat (ESX10+DI) ; DI=DI+-1, SI= SI+-1
MOVSW ; isi lokasi memori beralamat (ESX10+DI) dipindahkan ke
alamat (ESX10+DI) ; DI=DI+-2, SI= SI+-2
MOVSW ; isi lokasi memori beralamat (esx10+di) dipindahkan ke alamat
(ESX10+DI) ; DI=DI+-4, SI= SI+-4
Contoh 15.

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

– MOVSW; isi lokasi memori beralamat [ES X1OH + DI] dipindahkan


ke alamat [ES X1OH + DI], DI=DI +2, SI=SI +2
Contoh 16.

II. Tugas
1. Jelaskan jenis-jenis instruksi perpindahan data

2. Berikan contoh penggunaan instruksi push dan pop


3. Buat contoh program dan ilustrasikan menggunakan peta register untuk:
a. Instruksi PUSH dan POP

b. Instruksi XCHG

c. Instruksi STOS dan LODS

Operasi Aritmatika
35
MIkroprosesor

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menggunakan operasi aritmatika dalam pemograman

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.

2. Penjumlahan dengan data langsung


• Adalah penjumlahan yang terjadi antara isi suatu register dengan suatu data
(mentah). Hasilnya disimpan di register tersebut
• Sintaks;
– ADD REG,DATA

• 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

3. Penjumlahan memori register

• 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

5. ADC (ADD WITH CARRY)

• 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

2. Pengurangan dengan data langsung

• 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)

• Decrement(pengurangan 1) menyebabkan data pada suatu lokasi memori atau


suatu register berkurang 1
• SINTAKS;
– DEC REG
– DEC [ALAMAT]
• Contoh 17.
• DC DL ; isi register dl dikurangi 1
• DC [SI]; isi lokasi memori beralamat [DS X 10H+SI] dikurangi 1
Contoh 18.

5. SBB (SUB WITH BORROW)

• 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:

MUL DL ; isi register AL dikalikan dengan isi register DL, hasilnya


disimpan di regiser AX

Contoh 24.

2. Perkalian 16 bit

• Merupakan perkalian antara sebuah (bilangan yang akan dikalikan , yang


tersimpan di register ax) dengan sebuah (bilangan pengali, yang dapat
merupakan isi sebuah register 16 bit, atau data pada lokasi memori tertentu,
atau sebuah variabel ) hasil perkalian disimpan di register DX-AX ( perkalian
16 bit menghasilkan bilangan 32 bit)
• SINTAKS ; MUL REG
• MUL [ALAMAT]
• Contoh 25 ;

• MUL BX ; isi register ax dikalikan dengan isi register BX, hasilnya


disimpan di regiser DX-AX

Contoh 26

E . Pembagian

42
MIkroprosesor

1. Pembagian 8 bit

• Merupakan pembagian antara sebuah (bilangan yang akan dibagi , yang


tersimpan di register AX) dengan sebuah (bilangan pembagi, yang dapat
merupakan isi sebuah register 8 bit, atau data pada lokasi memori tertentu,
atau sebuah variabel ) hasil pembagian disimpan di register AL dan sisanya di
AH
• Sintaks ; DIV reg
• DIV [alamat]
• Contoh 27;
DIV DL ; isi register AX dibagi dengan isi register DL, hasilnya disimpan
di regiser AL sisanya diregister AH

Contoh 28.

2. Pembagian 16 bit

• Merupakan pembagian antara sebuah (bilangan yang akan dibagi , yang


tersimpan di register DX-AX) dengan sebuah (bilangan pembagi, yang dapat
merupakan isi sebuah register 16 bit, atau data pada lokasi memori tertentu,
atau sebuah variabel ) hasil pembagian disimpan di register AX dan sisanya di
DX
• Sintaks ; DIV reg
• DIV [alamat]
• Contoh 29;

DIV BX ; isi register DX-AX dibagi dengan isi register BX,


hasilnya disimpan di regiser AX dan sisanya gi register DX

Contoh 30.

43
MIkroprosesor

III. Tugas

1. Jelaskan jenis-jenis operasi aritmatika

2. Berikan contoh penggunaan instruksi ADD, ADC, MUL, dan DIV


3. Buat contoh program dan ilustrasikan menggunakan peta register untuk:
a. Instruksi ADD dan ADC

b. Instruksi SUB dan SBB

c. Instruksi INC dan DEC

d. Instruksi MUL dan DIV

Operasi Logika

44
MIkroprosesor

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menggunakan operasi logika, pergeseran dan rotasi dalam pemograman

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

– OR DH,25h ; isi register DH di-OR-kan dengan 25h,


hasilnya disimpan di register DH
– OR AX, BX ; Isi register AX di-OR-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
• 41 hexa = 0100 0001b
• 20 hexa = 0010 0000 b OR
• 0110 0001b = 61 hexa
Contoh 5

C.Operasi EXCLUSIVE-OR (XOR)

• 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

– XOR [SP], DX ; isi register DX di-OR-kan dengan data di


lokasi memori beralamat [SS:BP] , hasilnya disimpan di lokasi
memori tersebut
• 9F hexa = 10011111b
• 55 hexa = 0 1 0 1 0 1 0 1 b XOR
1 1 0 0 1 0 1 0 b = CA hexa
Contoh 7.

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

E. Operasi NOT dan NEG

• 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.

II. Pergeseran (shift)

• Operasi pergeseran atas sebuah operand(register atau lokasi memori atau


variabel) akan menggeser bit-bit operand tersebut ke kiri atau kekanan.
• 1. Pergeseran secara logika dibedakan atas 2 jenis, yaitu geser kiri logika
(SHL) dan geser kanan secara logika (SHR). Untuk setiap langkah
pergeseran dilakukan hal berikut:

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;

• SHL AH,CL ; isi register ah digeser (secara logika) ke kiri 2 langkah


• SHR AH,CL ; isi register ah digeser (secara logika) ke kanan 2 langkah
• SAL AH,CL ; isi register ah digeser (secara aritmatika) ke kiri 2 langkah
• SAR AH,CL ; isi register ah digeser (secara aritmatika) ke kanan 2 langkah

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

1. Jelaskan jenis-jenis operasi logika


2. Jelaskan jenis-jenis operasi pergeseran
3. Jelaskan jenis-jenis operasi rotasi

4. Buat contoh program dan ilustrasikan menggunakan peta register untuk:


a. Operasi logika

b. Operasi pergeseran

c. Operasi rotasi

52
MIkroprosesor

Instruksi Kendali

Learning outcomes (capaian Pembelajaran) Mata Kuliah Terkait KKNI:


Mampu menjelaskan dan menggunakan jenis-jenis instruksi kendali

Soft skill/karakter: : Berpikir kritis, Disiplin, Tekun, Tanggung jawab, Ketelitian,


dan Percaya diri dalam pembelajaran mikroprosesor

I. Instruksi Kendali Program


Yaitu Instruksi Yang Berfungsi Untuk Mengatur Dan Mengarahkan Alur Program .
Beberapa Instruksi Kendali Yang Sering Digunakan Dalam Program
1. Jmp (Lompat)
2. Loop (Kalang)
3. Call ( Memanggil Prosedur)
4. Ret ( Kembali Ke Program Utama)
5. Int (Interupsi)

A. Pengertian Operasi Jump


Instruksi lompatan pada suatu program akan menyebabkan program melompati
bagian tertentu dan mengeksekusi instruksi yang dikehendaki. Ada 2 jenis instruksi
dalam operasi jump yaitu: lompat tak bersyarat dan lompat bersyarat.

a. Lompatan tak bersyarat


Instruksi lompatan ini langsung menuju ke alamat memori yang dituju tanpa syarat
apapun, sehingga program langsung dapat kita arahkan menuju lokasi memori atau
label dengan perintah atau instruksi JMP
Aturan penulisannya : JMP lokasi memori/label
Contoh :

Ada 3 jenis instruksi lompatan tak bersyarat yaitu:

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

 JL (Jump if Less) ; lompat bila operand 1 < operand2 (bilangan


bertanda)
 JLE (Jump if Less or Equal) ; lompat bila operand 1 <= operand2 (bilangan
bertanda)
 JC (Jump if Carry) ; lompat bila ada bawaan
 JNC (Jump if No Carry) ; lompat bila tidak ada bawaan
 JE atau JZ (Jump if Equal)/(Jump if Zerro) ; lompat bila operand 1 =
operand 2
 JNE atau JNZ (Jump if Not Equal)/(Jump if Not Zero); lompat bila operand
1 <> operand 2
 JO (Jump on Overflow) ; lompat bila terjadi overflow
 JNO (Jump if No Overflow); lompat bila tidak terjadi overflow
 JS (Jump On Sign) ; lompat bila negatif
 JNS (Jump if No Sign) ; lompat bila positif
 JP atau JPE (Jump on Parity)/(Jump if ParityEven) ; lompat bila berparitas
genap
 JNP atau JPO (Jump if No Parity)/(Jump if Parity Odd); lompat bila
berparitas ganjil
 JCXZ (Jump if CX is Zero) ; lompat bila CX=0
 JECXZ (Jump if Equal CX is Zero); lompat bila ECX=0 (khusus 80486 ke
atas)
Penulisan instruksi lompat bersyarat yang diawali dengan instruksi CMP yang
berguna untuk membandingkan isi register untuk dilompati sesuai kondisi.
Contoh :

MOV AX, 0010h ;isi AX dengan 10h


MOV BX, 0012h ;isi BX dengan 12h
106: CMP AX,BX ;bandingkan isi AX dengan BX
JE 10D ;bila sama lompat ke alamat 10D
INC AX ;bila tidak tambahkan isi AX dengan 1
JMP 106 ;kembali ke alamat 106
10D: ADD AX,3 ;tambahkan isi AX dengan 3
INT 20h ;kembali ke prompt DOS
Kita tinggal mengganti instruksi lompat sesuai kebutuhan, apakah memenuhi syarat
(Y) atau tidak memenuhi syarat (T).

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)

 Operasi Loop Digunakan Untuk Mengulangi Proses Tertentu Sebanyak Cacah


Tertentu.
 Jumlah Cacah Perulangan Diletakkan Di Register Counter ( Cx Atau Ecx).
 Operasi Loop Akan Mengurangi Isi Register Counter Dengan 1, Dan Bila Isi
Register Bernilai ‘0’ Maka Perulangan Akan Dihentikan
 Contoh

56
MIkroprosesor

C. Memanggil Prosedur (Call) Dan Kembali ke Program Utama Ret

 Instruksi Call Akan Mengarahkan Pogram Ke Suatu Prosedur Tertentu


 Call Menyimpan Alamat Instruksi Berikutnya Ke Dalam Stack, Dan Alamat
Tersebut Dikembalikan Pada Saat Instruksi Ret( Kembali Ke Program Utama)
 Contoh

II. Tugas

1. Jelaskan jenis-jenis instruksi kendali


2. Jelaskan penggunaan loop, call dan ret

3. Buat contoh program dan ilustrasikan menggunakan peta register untuk:


a. Instruksi JMP

b. Instruksi LOOP

c. Instruksi Call dan RET

57

Anda mungkin juga menyukai