Anda di halaman 1dari 13

Laboratorium Digital

Departemen Teknik Elektro


Fakultas Teknik
Universitas Indonesia

MODUL PRAKTIKUM
MIKROPROSESOR
DAN
MIKROKONTROLER
Modul 2: Pemrograman Mikroprosesor
dengan Bahasa Assembly
Tujuan:
1.

Memahami hubungan antara bahasa Assembly


dengan arsitektur mikroprosesor.

2.

Mempelajari konsep pengolahan data dalam


memori.

3.

Memahami serta mempelajari cara memrogram


mikroprosesor dengan bahasa Assembly.

4.

Menganalisa proses manipulasi data pada


mikroprosesor dan memori.

Modul Praktikum Mikroprosesor dan Mikrokontroler

Laboratorium Digital, Departemen Teknik Elektro

Modul 2:
Pemrograman
Mikroprosesor dengan
Bahasa Assembly
1 | THE MICROPROCESSOR-BASED PC SYSTEM

2 | THE MICROPROCESSOR ARCHITECTURE 3


3 | DATA ADDRESSING MODES

4 | ASSEMBLY LANGUANGE PROGRAMMING


5 | DATA MOVEMENT INSTRUCTION
6 | HOW TO WRITE A PROGRAM
7 | REFERENCES

Copyright
2014

13

12

11

10

Modul Praktikum Mikroprosesor dan Mikrokontroler

MODUL 2:
PEMROGAMAN MIKROPROSESOR DENGAN
BAHASA ASSEMBLY
1 | THE MICROPROCESSOR-BASED PC SYSTEM
CPU (Central Processing Unit) sesuai dengan namanya merupakan otak pada
sebuah komputer. Semua kalkulasi, pengambilan keputusan, dan pemindahan data
dilakukan disini. CPU memiliki tempat penyimpanan yang disebut register. Dalam
sebuah CPU juga terdapat ALU (Arithmetic and Logic Unit) yang digunakan untuk
melakukan operasi operasi penjumlahan, pengurangan, inversi, OR, AND, dan
XOR. Proses yang dilakukan CPU secara umum adalah sebagai berikut, mengambil
data dari register, kemudian diproses, dan selanjutnya dikembalikan lagi ke register.

2 | THE MICROPROCESSOR ARCHITECTURE


Pada keluarga 80x86, mikroprosesor 8086 merupakan mikroprosesor generasi
pertama yang diperkenalkan pada tahun 1978. Generasi ini berkembang hingga saat
ini (Pentium II di tahun 1997). Banyak sekali perbedaan perbedaan yang terjadi
pada proses metamorfosa keluarga mikroprosesor ini. Tetapi perubahan yang terjadi
tetap selalu menjaga kompatibilitas mikroprosesor sebelumnya. Sehingga antara
generasi pertama hingga generasi saat ini masih memiliki kesamaan karakteristik
yang mendasar, kesamaan tersebut hanya terjadi bila mikroprosesor melakukan
operrasi - operasi 16-bit. Berikut adalah kesamaan yang dimiliki oleh keluarga 80x86.
! General Purpose Register
CPU memiliki 4 buah general purpose register yng selalu ditandai dengan akhiran
X, yaitu AX (Accumulator), BX (Base), CX (Count), dan DX (Data) dengan ukuran
masing-masing sebesar 16-bit. Register ini dapat dipisah menjadi dua bagian di
mana masing-masing bagian terdiri atas 8-bit. Bagian pertama disebut dengan H
(High) dan bagian yang lain sebagai L (Low). Register 8-bit ini dapat
menyimpan bilangan bulat posistif atara 0 sampai 127 dan bilangan bulat antara
128 sampai +127. Register digunakan sebagai referensi awal untuk lokasi
alamat pada RAM disebabkan transfer data antara RAM dengan CPU
membutuhkan waktu yang cukup lama.

+127. Register digunakan sebagai referensi awal untuk lokasi alamat pada RAM
bilangan bulat posistif atara 0 sampai 127 dan bilangan bulat antara 128 sampai
disebabkan transfer data antara RAM dengan CPU membutuhkan waktu yang
+127. Register digunakan sebagai referensi awal untuk lokasi alamat pada RAM
Modul Praktikum Mikroprosesor dan Mikrokontroler

disebabkan transfer
data7 antara RAM
dengan CPU membutuhkan waktu yang
15
0
15
Accumulator

AH

Accumulator
Base

AH
BH

Base
Count

BH
CH

Count
Data

CH
DH

Data

7
AX
AX
BX
BX
CX
CX
DX

0
AL
AL
BL
BL
CL
CL
DL

Multiply, devide, IO, dan fast arithmetic


Multiply,
IO, dan(data
fast segment)
arithmetic
Pointer
to devide,
base address
Pointer
base address
Count
fortoloops,
repeats,(data
shifts,segment)
dan rotates
Count fordevide,
loops, repeats,
Multiply,
dan IO shifts, dan rotates

Multiply, devide, dan IO


DX
DH
DLRegisters untuk mikroprosesor keluarga 80x86
Gambar 1 General-Purpose
Gambar 1 General-Purpose Registers untuk mikroprosesor keluarga 80x86

cukup lama.

Pada mikroprosesor
mikroprosesor 80386
80386 ke
ke atas
cukup
lama.
Pada
atas akan
akan mendapat
mendapat tambahan
tambahan register
register EAX
EAX
(Extended Accumulator),
Accumulator),EBX
EBX(Extended
(Extended
Base),
ECX
(Extended
Count),
(Extended
Base),
ECX
(Extended
Count),
dan dan
EDX
Pada mikroprosesor 80386 ke atas akan mendapat tambahan register EAX
EDX (Extended
(Extended
Data).Data).
(Extended Accumulator), EBX (Extended Base), ECX (Extended Count), dan EDX
! Index
IndexRegister
Register
(Extended
Data).
CPU juga
juga memiliki
memiliki 22 buah
buah index
CPU
index register
register yang
yang selalu
selalu ditandai
ditandai dengan
denganakhiran
akhiranI,I,
Index Register
yaitu SI
SI (Source
(Source Index)
Index) dan
dan DI
yaitu
DI (Destination
(Destination Index).
Index). Register
Register ini
inidapat
dapatdigunakan
digunakan
CPU juga memiliki 2 buah index register yang selalu ditandai dengan akhiran I,
untuk penyimpanan,
penyimpanan, tetapi
tetapi tidak
tidak dapat
dapat mengakses
untuk
mengakses 11 byte
byte pada
pada satu
satuwaktu
waktuyang
yang
yaitu SI (Source Index) dan DI (Destination Index). Register ini dapat digunakan
bersamaan, sehingga
sehingga membuat
membuat register
register ini
ini kurang
bersamaan,
kurang fleksibel.
fleksibel. Tetapi
Tetapi SI
SI dan
dan DI
DI
untuk penyimpanan, tetapi tidak dapat mengakses 1 byte pada satu waktu yang
memilikikekhususan
kekhususandalam
dalammenangani
menanganioperasi
operasistring.
string.
memiliki
bersamaan, sehingga membuat register ini kurang fleksibel. Tetapi SI dan DI

memiliki kekhususan dalam menangani operasi string.


Source string dan index pointer

Source Index

SI

Source Index
Destination
Index

SI
DI

Source string
dan dan
indexindex
pointer
Destination
string
pointer

Destination string dan index pointer


Destination Index
DI
Gambar 2 Index Registers untuk mikroprosesor keluarga 80x86.
Gambar 2 Index Registers untuk mikroprosesor keluarga 80x86.

Pada mikroprosesor
mikroprosesor 80386
80386 ke atas akan
Pada
akan mendapat
mendapat tambahan
tambahan register
register ESI
ESI
(ExtendedSource
SourceIndex)
Index)dan
danEDI
EDI(Extended
(ExtendedDestination
DestinationIndex).
Index).
(Extended
Pada mikroprosesor 80386 ke atas akan mendapat tambahan register ESI
! Pointer
PointerRegister
Register
(Extended
Source Index) dan EDI (Extended Destination Index).
Didalam
dalam CPU
CPU mengenal
mengenal 3 buah pointer
Di
pointer register
register yang
yang juga
jugaselalu
selaluditandai
ditandaidengan
dengan
Pointer Register
akhiran P,
P, yaitu
yaitu IP,
IP, SP, dan BP. Pada
akhiran
Pada mikroprosesor
mikroprosesor 80386
80386 ke
ke atas
atas akan
akan
Di dalam CPU mengenal 3 buah pointer register yang juga selalu ditandai dengan
mendapat tambahan register EIP (Extended Instruction Pointer), ESP (Extended
akhiran P, yaitu IP, SP, dan BP. Pada mikroprosesor 80386 ke atas akan
Stack Pointer), dan EBP (Extended Base Pointer).
Percobaan
I - Sistem Kerja
Mikroprosesor
" IP (Instruction
Pointer)

Register menunjukan alamat di memori tempat dari intruksi selanjutnya akan

Percobaan I - Sistem Kerja Mikroprosesor

dieksekusi. Ketika eksekusi selesai, IP bertambah ke instruksi berikutnya.

Modul
Praktikum
Mikroprosesor
dan MESP
ikrokontroler
mendapat tambahan register EIP
(Extended
Instruction
Pointer),
(Extended

Stack Pointer), dan EBP (Extended Base Pointer).


Instruksi Jump, nilai IP berubah mengikuti arah Jump. Sedangkan untuk
IP (Instruction Pointer)
instruksi Call, nilai IP akan berubah kembali setelah dikembalikan dari stack.
Register menunjukan alamat di memori tempat dari intruksi selanjutnya akan
" SP (Stack Pointer)
dieksekusi. Ketika eksekusi selesai, IP bertambah ke instruksi berikutnya.
Stack menggunakan aturan sistem penyimpanan secara LIFO (Last In First
Instruksi Jump, nilai IP berubah mengikuti arah Jump. Sedangkan untuk
Out). Stack digunakan untuk menyimpan penunjukan alamat yang akan
instruksi Call, nilai IP akan berubah kembali setelah dikembalikan dari stack.
terpakai kemudian, dan penunjukan alamat tersebut dapat dikeluarkan dari
SP (Stack Pointer)
stack pada saat akan digunakan. SP berpasangan dengan segment register
Stack menggunakan aturan sistem penyimpanan secara LIFO (Last In First
SS (SS:SP).
Out). Stack digunakan untuk menyimpan penunjukan alamat yang akan
" BP (Base Pointer)
terpakai kemudian, dan penunjukan alamat tersebut dapat dikeluarkan dari
BP digunakan sebagai pencatat suatu alamat di memori tempat data. BP ini
stack pada saat akan digunakan. SP berpasangan dengan segment register SS
berpasangan dengan segment register SS (SS:BP).
(SS:SP).
Pointer to base address (stack segment)

Base Pointer

BP

Stack Pointer

SP

Instruction Pointer

IP

Pointer top of stack

Gambar 3 Pointer Registers untuk mikroprosesor keluarga 80x86

! Segmented
BP (BaseAddressing
Pointer) dan Segment Register
Segmented
Addressing
sebuah
internal tempat
yang mengijinkan
BP digunakan
sebagaiadalah
pencatat
suatumekanisme
alamat di memori
data. BP ini
mikroprosesor
untuk
melakukan
pengalamatan
sebesar
1
Mbyte
pada
memori
berpasangan dengan segment register SS (SS:BP).
utama. Dengan mekanisme ini mikroprosesor dapat mengakses memori utama
Segmented Addressing dan Segment Register
dengan cara mengkombinasikan 2 buah alamat 16-bit. Dua buah alamat tersebut
Segmented Addressing adalah sebuah mekanisme internal yang mengijinkan
dapat di representasikan di dalam program sebagai berikut :
mikroprosesor untuk melakukan pengalamatan sebesar 1 Mbyte pada memori

utama 1. Dengan mekanisme inisegmen:offset


mikroprosesor dapat mengakses memori utama
dengan16-bit
cara alamat
mengkombinasikan
2 buah alamat
16-bit.
Dua buah
alamat alamat
tersebut
Pada
pertama, merupakan
alamat
segmen.
Sedangkan
dapat di representasikan
di dalam
sebagai
berikut alamat
:
berikutnya
adalah alamat
offset. program
Kerja yang
dilakukan
segmen yaitu
segmen:offset
memilih 64K area memori, dan alamat
offset bekerja sebagai pemilih byte di
dalam
area. Berikut
akanmerupakan
dijelaskan mengenai
cara kerjanya:
Pada sebuah
16-bit alamat
pertama,
alamat segmen.
Sedangkan alamat

berikutnya adalah alamat offset. Kerja yang dilakukan alamat segmen yaitu memilih
1. Alamat segmen akan digeser oleh mikroprosesor sebanyak 4-bit ke kiri,
64K area memori, dan alamat offset bekerja sebagai pemilih byte di dalam sebuah
sehingga akan menghasilkan alamat 20-bit dengan akhiran 0. Operasi ini
area. Berikut akan dijelaskan mengenai cara kerjanya:
sama dengan efek pada perkalian 16.
2. Mikroprosesor akan menambahkan alamat 20-bit ini dengan alamat offset 16bit. Dimana alamat offset tidak mengalami pergeseran.

Percobaan I - Sistem Kerja Mikroprosesor

10

sehingga akan menghasilkan alamat 20-bit dengan akhiran 0. Operasi ini sama
dengan efek pada perkalian 16.

Modul Praktikum
ikroprosesor
dan alamat
Mikrokontroler
2. Mikroprosesor akan menambahkan
alamat M
20-bit
ini dengan
offset 16-

bit. Dimana alamat offset tidak mengalami pergeseran.


3. Mikroprosesor menggunakan hasil dari alamat 20-bit ini yang disebut dengan
3. Mikroprosesor menggunakan hasil dari alamat 20-bit ini yang disebut dengan
alamat fisik / physical Address yang digunakan untuk mengakses lokasi
alamat fisik / physical Address yang digunakan untuk mengakses lokasi alamat
alamat yang sebenarnya pada ukuran 1 Mbyte.
yang sebenarnya pada ukuran 1 Mbyte.
Gambar 4 merupakan ilustrasi proses Segmented Addressing. Sebenarnya
Gambar 4 merupakan ilustrasi proses Segmented Addressing. Sebenarnya
mikroprosesor keluarga 80x86 hanya dapat menangani pengalamatan 64K pada
mikroprosesor keluarga 80x86 hanya dapat menangani pengalamatan 64K pada
satu waktu (karena ukuran register yang dipergunakan hanya sebesar 16-bit).
satu waktu (karena ukuran register yang dipergunakan hanya sebesar 16-bit).
Dengan penggunaan mekanisme ini, mikroprosesor keluarga 80x86 mampu
Dengan penggunaan mekanisme ini, mikroprosesor keluarga 80x86 mampu untuk
untuk menjangkau seluruh alamat sebesar 1 Mbyte.
menjangkau seluruh alamat sebesar 1 Mbyte.
15

16-bit segment register

15

Segment register shifted left 4 bits


15

16-bit offset
19

20-bit physical address


Gambar 4
Mengilustrasikan bagaimana mikroprosesor keluarga 80x86 menghitung alamat fisik

Ada 44 buah
buah segment
CS,
DS,
Ada
segment register
register yang
yang selalu
selaluditandai
ditandaidengan
denganakhiran
akhiranS,S,yaitu
yaitu
CS,
SS, dan
pada mikroprosesor
80386 ke
atas ke
terdapat
tambahan
DS,
SS, ES.
dan Sedangkan
ES. Sedangkan
pada mikroprosesor
80386
atas terdapat
register segmen
16-bit,
yaitu FS
(Extra
Segment)
dan GS
(Extra Segment).
tambahan
register
segmen
16-bit,
yaitu
FS (Extra
Segment)
dan GS (Extra
Segment).
CS (Code Segment)

CS (Code
(Code Segment)
Segment) selalu digunakan oleh mikroprosesor untuk menunjukan
" ClS
tempat
dari
segmenselalu
alamat
yang instruksi
berikutnya akan
diproses
oleh IP
CS
(Code
Segment)
digunakan
oleh mikroprosesor
untuk
menunjukan
(Instruction
Pointer).alamat
IP merupakan
alamat
offset. CS:IP
tempat
dari segmen
yang instruksi
berikutnya
akan merepresentasikan
diproses oleh IP
instruksi berikutnya
jangkauan alamat
alamat memori
penuh.merepresentasikan
(Instruction
Pointer).pada
IP merupakan
offset. CS:IP
instruksi berikutnya pada jangkauan alamat memori penuh.
" DS (Data Segment)
1

Register DS (Data Segment) biasanya digunakan untuk menunjukan tempat

Lihat percobaan III

segmen di mana data-data program disimpan. Umumnya isi dari register ini

Percobaan
Sistem
Kerjakecuali
Mikroprosesor
tidakI -perlu
diubah
pada program residen.

11

DS (Data Segment)
Register DS (Data Segment) biasanya digunakan untuk menunjukan tempat
segmen di mana data-data program disimpan. Umumnya isi dari register ini
Modul Praktikum Mikroprosesor dan Mikrokontroler

tidak perlu diubah kecuali pada program residen.

Code Segment

CS

Data Segment

DS

Stack Segment

SS

Extra Segment

ES

Gambar 5
Segment Register untuk mikroprosesor keluarga 80x86

" SS
SS(Stack
(StackSegment)
Segment)
Ketika
data pada
pada stack,
stack, proses
proses tersebut
tersebut
Ketika mikroprosesor
mikroprosesor mengakses
mengakses data
menggunakan
Segment).
SS:SP
selalu
menunjuk
pada pada
suatu alamat
menggunakanSS
SS(Stack
(Stack
Segment).
SS:SP
selalu
menunjuk
suatu

dialamat
memori
yang merupakan
posisi dari
stack.
di memori
yang merupakan
posisi
dari stack.
" ES
ES(Extra
(ExtraSegment)
Segment)

Register
Register ES
ES (Extra
(Extra Segment),
Segment),
bonus
bonus yang
yang tidak
tidak mempunyai
mempunyai

sesuai dengan
dengan namanya
namanya adalah
adalah suatu
suaturegister
register
sesuai

suatu
tugas khusus.
khusus. Register
Register ES
ES ini
inibiasanya
biasanya
suatu tugas
digunakan
alamat di
di memori
memori yang
yang berada
berada diluar
diluar
digunakan untuk
untuk menunjukan
menunjukan suatu
suatu alamat
daerah
daerahstandar.
standar.
ES
dalam
instruksi
string.
Dengan
caracara
ini, register
DI selalu
ESsangat
sangatberperan
berperandi di
dalam
instruksi
string.
Dengan
ini, register
DI
relatif
alamat
segmensegmen
ES.
selaluke
relatif
ke alamat
ES.
! Flag
FlagRegister
Register
2
Register
Adapunflag
flag
Registerini
iniberisikan
berisikan flag
flag yang
yang merupakan
merupakan laporan
laporan status
status dari
dari CPU
CPU. .Adapun

yang
yangdigunakan
digunakanpada
padamikroprosesor
mikroprosesor8086
8086keatas
keatasadalah
adalah::
O

O
D

OverFlow
Direction

besar untuk
ditempatkan
didalam
register
Digunakan
pada
operasi string
untuk
menunjukan arah
proses

Digunakan pada operasi string untuk menunjukan


arah proses

CPU akan mengabaikan interupsi jika flag ini disable

Direction

Trap

Digunakan untuk proses instrusi secara bertahap

Sign

Flag
mencatat
jika hasilinterupsi
kalkulasi jika
bernilai
CPUakan
akan
mengabaikan
flagnegatif.
ini disable

Zero

Flag akan mencatat jika hasil kalkulasi bernilai 0.

Interrupt Enable

Flag akan mencatat jika hasil yang didapat terlalu besar


Flag ditempatkan
akan mencatat
jika
hasil yang didapat terlalu
untuk
didalam
register

D
SI

OverFlow

Interrupt Enable
Trap

S Sign
Lihat percobaan
III

Digunakan untuk proses instrusi secara bertahap


Flag akan mencatat jika hasil kalkulasi bernilai negatif.

Z IZero
Flag akan mencatat jika hasil kalkulasi bernilai 0.
Percobaan
- Sistem Kerja Mikroprosesor
A

Auxiliary Carry

12

Flag akan mencatat jika operasi menghasilkan carry

Modul Praktikum Mikroprosesor dan Mikrokontroler


atau borrow pada 4-bit bagian rendah. Flag ini
Flag akan mencatat
jika operasi
digunakan
pada operasi
BCD. menghasilkan carry atau
A

borrow pada 4-bit bagian rendah. Flag ini digunakan pada


operasi
BCD.mencatat jika bilangan yang dihasilkan
Flag
akan

Auxiliary Carry

Parity

Parity

C
C

Carry Carry

Flag akan
mencatat
jika bilangan yang dihasilkan adalah
adalah
bilangan
genap
bilangan genap

Jika
terjadicarry
carryatau
atau
borrow
pada
operasi
aritmatika
Jika terjadi
borrow
pada
operasi
aritmatika
maka
maka
akan dicatat
oleh flag.
akan dicatat
oleh flag.

3
1.
Tabel
flagyang
yangdigunakan
digunakan
pada
mikroprosesor
8086
atas
.
Tabel 11 SSusunan
usunan flag
pada
mikroprosesor
8086
ke ke
atas

NT
15

IOPL

7
Gambar 6 Model flag untuk mikroprosesor keluarga 80x86

C
0

Sedangkan flag lain yang berlaku pada keluarga 80x86 ini adalah:
Sedangkan flag lain yang berlaku pada keluarga 80x86 ini adalah :
Flag yang berfungsi untuk menjaga jalannya
Flag yang berfungsi untuk menjaga jalannya
*
*
Nested
T
ask

NT
NT
Nested Task
interupsi
yang terjadi secara berurutan
interupsi yang terjadi secara berurutan
IOPL

IOPL
PE

PE

IO Protection Level

IO Protection Level

Flag ini terdiri atas 2 bit digunakan untuk mode

Flag ini terdiri atas 2 bit digunakan untuk


proteksi
mode proteksi

Protection Enable

Flag akan mencatat jika mode proteksi


digunakan
sebaliknya
berada
pada
Flag
akandan
mencatat
jikaakan
mode
proteksi
mode real dan sebaliknya akan berada
digunakan

Protection Enable *

MP

Monitor Coprosessor

MP
EM

*
Emulate
Coprosessor
Monitor
Coprosessor

TS

EM
ET

TS

RF

ET
VF

RF

Task Switched

Emulate Coprosessor *
*

Extention Type

Virtual 8086 mode

Resume Flag **

Digunakan
bersamauntuk
flag mengemulasikan
trap untuk
Flag ini digunakan
prosesor
matematik
x87
menangani terjadinya instruksi WAIT
Flag
untuk mengemulasikan
80286ini
ke digunakan
atas
prosesor
Flag ini matematik
digunakan x87
untuk menentukan jenis
prosesor matematik 80287 atau 80387

Flag ini dapat dijumpai pada mikroprosesor


Flag ini dapat dijumpai pada mikroprosesor
80286 ke atas

*
**
Task SResume
witched Flag

terjadinya instruksi WAIT

Flag ini dapat dijumpai pada mikroprosesor

Extention Type

Digunakan
flag trap untuk menangani
pada
modebersama
real

80386 ke atas

**

Flag iniakan
mencatat
mode proteksi
Flag
digunakan
untukjikamenentukan
jenis
digunakan,
sehingga
memungkinkan
prosesor matematik 80287 atau 80387
menggunakan mode real pada saat mode
proteksi
Flag
ini digunakan.
dapat dijumpai pada mikroprosesor

ke atas pada mikroprosesor 80286 dan 80386


Tabel 2 Susunan flag tambahan yang 80386
dapat digunakan

Penamaan flag ini digunakan oleh Microsoft, sedangkan Intel menambahkannya dengan akhiran F
pada tiap susunan.
*3
Penamaanpada
flagmikroprosesor
ini digunakan 80286
oleh Microsoft
Terdapat
ke atas , sedangkan Intel menambahkannya dengan akhiran F
**
pada
tiap susunan.
Terdapat
pada mikroprosesor 80386 ke atas
*
Terdapat pada mikroprosesor 80286 ke atas
**
Terdapat pada mikroprosesor 80386 ke atas

Percobaan I - Sistem Kerja Mikroprosesor

13

Modul Praktikum Mikroprosesor dan Mikrokontroler

VF

Flag akan mencatat jika mode proteksi


digunakan,
sehingga
memungkinkan
menggunakan mode real pada saat mode
proteksi digunakan.

Virtual 8086 mode **

Tabel 2 Susunan flag tambahan yang dapat digunakan pada mikroprosesor 80286 dan 80386

3 | DATA ADDRESSING MODES


# MOV Instruction
MOV merupakan instruksi (dalam Assembly disebut sebagai opcodeoperation
code) mendasar dari pemroraman Assembly. Opcode ini menyalin (copy)
sebuah data

dari

sumber

ke tujuan

(source ke

destination).

Karena

fungsinya adalah menyalin, maka data di tempat sumber akan tetap tersimpan.
Secara umum penulisan intruksi ini adalah sebagai berikut:

MOV dapat digunakan untuk menyalin data antara register ke register, register
ke memori atau sebaliknya. MOV tidak dapat digunakan untuk menyalin data
dari memori ke memori.
# Register Addressing
Jenis pengalamatan ini adalah untuk menyalin data dari sebuah register
ke register lainnya. Pada prinsipnya seluruh register yang termasuk dalam
program visible register dapat digunakan sebagai source dan destination dari
mode pengalamatan ini. Namun, ukuran (jumlah bit) dari kedua source dan
destination haruslah sama. Contoh:
MOV CX,DX
MOV ECX,EDI
Segment register dapat pula menjadi source dan destination pada instruksi
ini tetapi penyalinan data dari sebuah segment register ke segment register
lainnya tidak dapat dilakukan secara langsung. Sehingga instruksi MOV DS,CS
dikatakan sebagai instruksi illegal.

Modul Praktikum Mikroprosesor dan Mikrokontroler


# Base-plus-index Addressing
Merupakan pengalamatan yang menyalin byte atau word antara sebuah
register dan lokasi memori yang dialamatkan oleh base register (BP atau BX)
ditambah index register (DI atau SI). Contoh:
MOV [BX+DI], CL
Instruksi tersebut mengkopi isi dari CL ke data segmen yang dialamatkan
oleh penjumlahan BX dan DI.
# Base-relative-plus-index Addressing
Merupakan pengalamatan yang menyalin byte atau word antara register dan
lokasi memori yang dialamatkan oleh base dan index register ditambah
displacement. Contoh:
MOV AX,ARRAY[BX+DI]
MOV AX,[BX+DI+4]
Instruksi tersebut mengisi AX dari lokasi memori data segment. Instruksi
pertama menggunakan alamat yang dibentuk dari penjumlahan ARRAY, BX dan
DI dan instruksi kedua dengan penjumlahan BX, DI dan 4.
# Scaled-index Addressing
Merupakan pengalamatan dimana register kedua yang merupakan

register

operand dimodifikasi dengan faktor perkalian dari x2, x4 atau x8 untuk mengubah
alamat operand. Contoh:
MOV EDX,[EAX+4*EBX]

4 | ASSEMBLY LANGUANGE PROGRAMMING


# Memory Organization
Sebuah assembler menggunakan 2 format dasar dalam mendevelop program.
Salah satu method menggunakan model, yang lainnya menggunakan fullsegment.

Model

memori

menggunakan

sebuah

assembler

MASM.

TASM assembler juga menggunakan model memori tetapi berbeda dengan


MASM. Full- segment digunakan oleh kebanyakan assembler, termasuk Intel
assembler, dan sering digunakan untuk mendevelop software.

# Assembly Program Structure


Format umum penulisan tiap baris pada pemrograman tingkat rendah adalah
sebagai berikut :
[label :]

Mnemonic [operand1] , [operand2]

[;comment]

Pada bagian mnemonic ada assembler command yang tidak akan di eksekusi oleh
mikroprosesor, yang disebut Assembler Directives. Assembler directives hanya
merupakan instruksi bagi program tingkat rendah. Contohnya yang sering
digunakan ialah ORG, EQU, END, DB, DW, DS.

5 | DATA MOVEMENT INSTRUCTION


# PUSH & POP Instruction
" PUSH
Merupakan instruksi yang mentransfer 2 byte data ke stack.
Contoh:

PUSH AX

Instuksi tersebut memindahkan data dari register AX ke dalam stack.


" POP
Merupakan instruksi yang menghapus dan memindahkan data dari stack ke
sebuah register 16-bit, segment register, atau 16-bit memory location.
Contoh:

POP BX

Instruksi tersebut menghapus data dari stack dan menempatkannya pada


register BX.
# Load-Effectice Address
" LEA
Merupakan instruksi yang mengisi 16- atau 32-bit register dengan offset
address dari data yang ditunjukkan oleh operand.
Contoh:

LEA BX,[DI]

" LDS
LDS, LES, LFS, LGS, dan LSS adalah instruksi yang mengisi 16- atau 32-bit
register dengan offset address dan DS, ES, FS, GS atau SS segment register
dengan sebuah segment address.

Modul Praktikum Mikroprosesor dan Mikrokontroler



# String Data Transfers
Terdapat 5 jenis instruksi untuk string data transfer, yaitu LODS, STOS,
MOVS,

INS

dan

OUTS.

Masing-masing

dari

instruksi

string

ini

memperbolehkan data transfer yang mempunyai jenis byte, word atau double
word. Pada string data transfer digunakan register SI dan DI.
# Miscellaneous Data Transfer Instructions
Instruksi transfer data lainnya adalah XCHG, LAHF, SAHF, XLAT, IN, OUT,
BSWAP, MOVSX, MOVZX dan CMOV.

6 | HOW TO WRITE A PROGRAM


Untuk membuat program dalam bahasa assembly, ada beberapa hal yang harus
diperhatikan, salah satunya adalah struktur program tersebut. Dari gambar dibawah ini
dapat dilihat struktur untuk program bahasa assembly menggunakan emu8086.

Gambar 6 Salah satu contoh struktur dan program sederhana

Modul Praktikum Mikroprosesor dan Mikrokontroler



Setelah menjalankan program diatas, dengan mengklik ikon emulate. Maka akan munjul
kotak dialog yang memunculkan isi register dan RAM (Gambar 6).

Gambar 7 Kotak dialog yang menerangkan isi register & ram yang dijalankan setiap baris

Kemudian, ketika program telah selesai di eksekusi, program ini akan menampilkan
string Hello! seperti pada Gambar 8.

Gambar 8 Hasil keluaran dari program

7 | REFERENCES
Brey, Barry B. 2006. The Intel Microprocessors Architecture, Programming, and
Interfacing. New Jersey: Pearson Prentice Hall.

Anda mungkin juga menyukai