Assembler 1
Assembler 1
BAHASA RAKITAN
RAKITAN
Universitas
UniversitasGunadarma
Gunadarma
Kuliah
Kuliah II :: Pengenalan
Pengenalan
Bahasa Rakitan
I. Pengenalan (contd)
I.1. Bahasa
Komputer bicara/berkomunikasi dgn suatu bahasa
Bahasa-2 pemrograman menyediakan tools u/ mengekspresikan
pemrosesan data secara simbolik
Setiap bahasa memiliki sintaks dan grammar yang dirumuskan
dgn baik
I. Pengenalan (contd)
I.3. Bahasa-2 Rakitan
Bahasa Rakitan
I. Pengenalan (contd)
Hirarki
Hirarki bahasa-2
bahasa-2 diatas
diatas sbb:
sbb:
Bahasa Rakitan
I. Pengenalan (contd)
Catatan:
Bahasa
Bahasa rakitan
rakitan membuka
membuka rahasia
rahasia HW
HW dan
dan SW
SW komputer
komputer
Mempelajari/menganalisa
Mempelajari/menganalisa ::
Tidak
Tidak terdapat
terdapat bahasa
bahasa rakitan
rakitan tunggal.
tunggal.
Setiap
Setiap komputer
komputer atau
atau family
family komputer
komputer menggunakan
menggunakan set
set instruksi
instruksi mesin
mesin yang
yang
berbeda
berbeda dan
dan bahasa
bahasa rakitan
rakitan yang
yang berbeda
berbeda
tentang
tentang cara
cara HW
HW komputer
komputer dan
dan Sistem
Sistem operasi
operasi bekerja
bekerja sama;
sama;
bagaimana
bagaimana program
program aplikasi
aplikasi berkomunikasi
berkomunikasi dgn
dgn sistem
sistem operasi
operasi
Bahasa
Bahasa rakitan
rakitan IBM-PC
IBM-PC mengandung
mengandung hanya
hanya set
set instruksi
instruksi intel
intel 8086/8088,
8086/8088, dgn
dgn
enhancement
u/
80186/286/386
(instruksi
set
8088
dapat
digunakan
tanpa
enhancement u/ 80186/286/386 (instruksi set 8088 dapat digunakan tanpa modifikasi
modifikasi
yang
signifikan)
yang signifikan)
Assembler:
Assembler: suatu
suatu program
program yang
yang mengkonversi
mengkonversi program
program source-code
source-code ke
ke
bahasa
bahasa mesin:
mesin:
IBM-PC
IBM-PC
Microsoft
Microsoft Macro
Macro Assembler
Assembler (MASM),
(MASM), Borlands
Borlands Turbo
Turbo Assembler
Assembler
Focus
Focus
MASM
MASM (mengenal
(mengenal lebih
lebih dari
dari 50
50 directives)
directives)
Jadi
Jadi bahasa
bahasa rakitan
rakitan IBM-PC
IBM-PC merujuk
merujuk set
set instruksi
instruksi 8086/8088
8086/8088 dan
dan set
set komplit
komplit dari
dari
directives
directives MASM
MASM
Bahasa Rakitan
I. Pengenalan (contd)
Mengetahui Bahasa Rakitan perlukah?
Dipelajari dgn berbagai alasan:
Mengetahui lebih dalam tentang arsitektur komputer dan sistem
operasi
Mengetahui lebih lanjut tentang komputer dan bagaimana bahasa
komputer membangkitkan kode mesin
Jelas: karena bhs rakitan mempunyai hubungan yang dekat dgn
bhs mesin
Mempelajari utilitasnya.
Tipe
Tipe pemrogramman
pemrogramman tertentu
tertentu sulit
sulit atau
atau tidak
tidak mungkin
mungkin dilakukan
dilakukan dgn
dgn
bhs
bhs tingkat
tingkat tinggi.
tinggi. Contoh:
Contoh:
Komunikasi
Komunikasi langsung
langsung dgn
dgn SO
SO komputer
komputer
Program
Program color
color high-speed
high-speed graphics
graphics dgn
dgn memori
memori rendah
rendah
Program
Program interfacing
interfacing
Program
Program telekomunikasi
telekomunikasi
Bahasa Rakitan
I. Pengenalan (contd)
Sebagai Solusi akibat batasan-2 pada bhs tingkat tinggi.
Contoh:
Contoh:
Bhs
Bhs tingkat
tingkat tinggi:
tinggi: tidak
tidak diizinkan
diizinkan pengerjaan
pengerjaan (assigning)
(assigning) sebuah
sebuah nilai
nilai
karakter
karakter ke
ke variabel
variabel integer.
integer. (buat
(buat programmer
programmer yang
yang expert
expert no
no problem,
problem,
namun
namun programnya
programnya tidak
tidak kompetibel)
kompetibel)
Bhs
Bhs rakitan
rakitan batasan
batasan atau
atau aturannya
aturannya sangat
sangat sedikit
sedikit
Contoh:
Contoh: Program
Program COBOL;
COBOL; andikan
andikan compilernya
compilernya tidak
tidak mendukung
mendukung akan
akan
kebutuhan
kebutuhan mis:
mis: u/pengecekan
u/pengecekan harddisk,
harddisk, pembuatan
pembuatan subdirektori,
subdirektori, proteski
proteski
file,
file, dll.
dll.
Tugas
Tugas ini
ini dapat
dapat diatasi
diatasi dgn
dgn membuat
membuat subroutine
subroutine bhs
bhs rakitan
rakitan
Bahasa Rakitan
I. Pengenalan (contd)
I.5. Instruksi-2 bahasa rakitan
Tipe instruksi dasar memiliki 3 komponen (4 komponen dalam
mesin MIPS):
Nama
Nama operator
operator
Tempat
Tempat menyimpan
menyimpan (store)
(store) hasil
hasil
Operand
Operand 11
Operand
Operand 22 (dalam
(dalam MIPS)
MIPS)
Contoh:
Contoh: mov
mov al,5
al,5 (intel)
(intel)
add
add a,b,c
a,b,c (MIPS)
(MIPS)
Bahasa Rakitan
I. Pengenalan (contd)
I.5.1.
I.5.1. Mnemonic
Mnemonic
Merupakan
Merupakan kode
kode alphabet
alphabet pendek
pendek yang
yang membantu
membantu memori
memori dalam
dalam
mengingat
mengingat suatu
suatu instruksi
instruksi CPU.
CPU.
Dapat
Dapat berupa:
berupa: instruksi
instruksi atau
atau directive
directive
Contoh:
(move)
Contoh: instruksi:
instruksi: mov
mov
(move)
directive:
(define
directive: DB
DB
(define byte)
byte)
I.5.2.
I.5.2. Operand
Operand
Sebuah
Sebuah instruksi
instruksi bisa
bisa berisi
berisi nol,
nol, satu
satu atau
atau dua
dua operand
operand
Sebuah
register, variabel
variabel memori,
memori, atau
atau immediate
immediate
Sebuah Operand
Operand bisa
bisa berupa:
berupa: register,
value
value
Contoh:
Contoh:
I.5.3
I.5.3 Komentar
Komentar
10
10
count
count
AX
AX
Tanda
Tanda #
# dalam
dalam MIPS
MIPS
Tanda
Tanda ;; dalam
dalam intel
intel
Bahasa Rakitan
(immediate
(immediate value)
value)
(variabel
(variabel memori)
memori)
(register)
(register)
I. Pengenalan (contd)
I.6. Unsur-2 Dasar Bhs Rakitan
Set karakter dasar (pada MASM)
Letter:
Letter: A-Z,
A-Z, a-z
a-z
Digits
Digits:: 0-9
0-9
Karakters
Karakters khusus:
khusus:
??
@
@
.. (period)
[[ ]]
(period)
(double
(double quotes)
quotes) &
&
||
\\
__
(( ))
%
%
=
=
$$
<>
<>
!!
{{ }}
::
,(comma)
,(comma)
(appostrope)
(appostrope)
#
+
#
+
Konstanta
Konstanta (nilai
(nilai yg
yg tidak
tidak berubah
berubah saat
saat runtime)
runtime)
bilangan
bilangan atau
atau karakter
karakter
Variabel
Variabel (lokasi
(lokasi penyimpanan
penyimpanan yg
yg dapat
dapat berubah
berubah saat
saat runtime)
runtime)
Name
Name
mengidentifikasikan
mengidentifikasikan label,
label, variabel,
variabel, simbol
simbol atau
atau reserved
reserved word
word
Mnemonic
Mnemonic
Operands
Operands
Kommentar
Kommentar
Bahasa Rakitan
I. Pengenalan (contd)
Format
Format Statement
Statement (pada
(pada MASM)
MASM)
Instruksi
Instruksi :: executable
executable statement
statement
Directive
Directive :: statement
statement yang
yang menyediakn
menyediakn informasi
informasi untuk
untuk membantu
membantu assembler
assembler
dalam
dalam menghasil
menghasil executable
executable code.
code.
Statement
Statement bersifat
bersifat free-form
free-form
Ditulis
Ditulis dalam
dalam suatu
suatu kolom
kolom dgn
dgn sejumlah
sejumlah spaces
spaces antar
antar setiap
setiap operands
operands
Blank
Blank lines
lines diizinkan
diizinkan
Dapat
Dapat ditulis
ditulis dalam
dalam suatu
suatu baris
baris tunggal
tunggal (max.
(max. 128
128 kolom)
kolom)
Catatan:
Catatan:
Directives:
Directives: statement
statement yang
yang mempengaruhi
mempengaruhi baik
baik listing
listing program
program maupun
maupun cara
cara kode
kode
mesin
mesin dibangkitkan
dibangkitkan
Contoh:
Contoh: DB
DB directive
directive
memerintahkan
memerintahkan MASM
MASM u/
u/ meng-create
meng-create storage
storage untuk
untuk variabel
variabel
bernama
bernama count
count dan
dan menginisialisasikan
menginisialisasikan dgn
dgn 50
50
count
count db
db 50
50
Instruksi:
Instruksi: dieksekusi
dieksekusi oleh
oleh Mikroprosessor
Mikroprosessor saat
saat runtime.
runtime.
Tipe
Tipe umum:
umum: program
program control,
control, data
data transfer,
transfer, arithmetic,
arithmetic, logical,
logical, dan
dan I/O
I/O
Bahasa Rakitan
I. Pengenalan (contd)
I.6 Operator Aritmatik
Misalkan dalam C, operasi penjumlahan:
a=b+c;
a=b+c;
add
add b,c
b,c
mov
mov a,b
a,b
sub
sub b,c
b,c
move
move a,b
a,b
t0,b,c
t0,b,c
t1,t0,d
t1,t0,d
a,t1,c
a,t1,c
Bahasa Rakitan
#t0=b+c
#t0=b+c
#t1=t0+d
#t1=t0+d
#a=t1-e
#a=t1-e
Catatan
Kompiler-kompiler biasanya
menggunakan variabel-2 temporal
Ketika membangkitan kode
I. Pengenalan (contd)
I.8. Representasi data
Bits: 0 dan 1
Bit string (sederetan dari bits (sequence of bits))
88 bits
bits
11 Byte
Byte
16
16 bits
bits
half-word
half-word
32
32 bits
bits
word
word
64
64 bits
bits
double-word
double-word
ekponensial
(m
(m xx 22ee))
Bahasa Rakitan
I. Pengenalan (contd)
I.9. Penyimpan Data (data Storage)
Disk
Disk
Random
Random Access
Access Memory
Memory (RAM)
(RAM)
Cache
Cache (RAM
(RAM atai
atai disk)
disk)
Registers
Registers
Bahasa Rakitan
I. Pengenalan (contd)
I.10. Organisasi Register
Organisasi register merupakan satu aspek yang
menentukan tentang Arsitektur Prosessor tertentu
Tiga mekanisme dasar untuk Operator/operand
Akkumulator
Akkumulator :: arsitektur
arsitektur yang
yang menggunakan
menggunakan suatu
suatu register
register
tunggal
tunggal u/
u/ satu
satu dari
dari sources
sources dan
dan destination
destination (contoh
(contoh 8088)
8088)
Stack
Stack :: operand
operand dipushed
dipushed dan
dan di-pop
di-pop (contoh
(contoh java
java machine)
machine)
General
General purpose
purpose :: sejumlah
sejumlah terbatas
terbatas register
register digunakan
digunakan u/
u/
menyimpan
menyimpan data
data u/
u/ setiap
setiap maksud/tujuan
maksud/tujuan (purpose)
(purpose)
(kebanyakan
(kebanyakan sistem
sistem saat
saat ini)
ini)
Register: blok memori kecil kecepatan tinggi (small highspeed) yang digunakan u/ menyimpan data
Focus general purpose register
Bahasa Rakitan
I. Pengenalan (contd)
Contoh Akkumulator
Misalkan: A=B+C;
Dalam arsitektur berbasis-akkumulator, menjadi:
load
load addressB
addressB
add
addressC
add
addressC
store
store addressA
addressA
Contoh Stack
Misalkan: a=b+c;
Dalam Javacode
iload
iload
iload
iload
iadd
iadd
istore
istore
Bahasa Rakitan
aa
cc
aa
#load
#load bb ke
ke stack
stack
#load
#load cc ke
ke stack
stack
#add
#add dan
dan puts
puts hasil
hasil ke
ke stack
stack
#store
#store ke
ke aa
I. Pengenalan (contd)
Register General Purpose (GP)
Pada arsitektur yang menggunakn register GP, data dapat diakses
dalam cara-cara yang berbeda
Load/Store
Load/Store (L/S)
(L/S) data
data disimpan
disimpan ke
ke register-register,
register-register, dioperasikan
dioperasikan
di
di dalamnya,
dalamnya, dan
dan simpan
simpan balik
balik ke
ke memori
memori (contoh.
(contoh. Seluruh
Seluruh set-set
set-set
instruksi
instruksi RISC)
RISC)
Hardware
Hardware u/operand-2
u/operand-2
sederhana
sederhana
Semakin
Semakin kecil
kecil semakin
semakin cepat,
cepat, karena
karena clock
clock cycle
cycle dapat
dapat
menjadi
menjadi dan
dan dipertahankan
dipertahankan lebih
lebih cepat
cepat
Penekanan
Penekanan pada
pada Efisiensi
Efisiensi
Memori-Memori
Memori-Memori
operand-2
operand-2 dapat
dapat menggunakan
menggunakan alamat
alamat memori
memori
(memori
(memori addresses)
addresses) sebagai
sebagai keduanya
keduanya sources
sources dan
dan destination
destination
(contoh
(contoh INTEL)
INTEL)
Bahasa Rakitan