You are on page 1of 17

BAHASA

BAHASA RAKITAN
RAKITAN
Universitas
UniversitasGunadarma
Gunadarma

Kuliah
Kuliah II :: Pengenalan
Pengenalan

Bahasa Rakitan
I. Pengenalan (cont’d)
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.2. Bahasa-2 Pemrograman
• Terdapat banyak bahasa pemrograman Æ tergolong menjadi 2:
– Bahasa Tingkat Tinggi: (C, C++
++, Pascal, Basic)

•• Machine-independent
Machine-independent dan
dan instruksinya
instruksinya lebih
lebih ekspresif
ekspresif (spt
(spt bhs
bhs
manusia)
manusia)
– Bahasa Tingkat-rendah: (bahasa rakitan)
•• Machine-specific;
Machine-specific; dan
dan instruksinya
instruksinya lebih
lebih halus-kecil
halus-kecil (finer-grained)
(finer-grained)
yang
yang terkait
terkait erat
erat dgn
dgn bahasa
bahasa mesin
mesin dari
dari prosessor
prosessor target.
target.

Bahasa Rakitan
I. Pengenalan (cont’d)

I.3. Bahasa-2 Rakitan


– Bahasa-2 rakitan Æ representasi teks dari bahasa mesin
– Satu statement merepresentasikan satu instruksi mesin
– Lapisan abstraksi antara program-2 tingkat tinggi dan kode mesin

I.4. Bahasa Mesin


– Merupakan bahasa ibu/alamiah dari komputer
– Kata-2 (WORDS) Æ instruksi-2
– Vocabulary Æ set instruksi
– Representasi bit dari operasi mesin dieksekusi oleh hardware

Bahasa Rakitan
I. Pengenalan (cont’d)
•• Hirarki
Hirarki bahasa-2
bahasa-2 diatas
diatas sbb:
sbb:

Bahasa Rakitan
I. Pengenalan (cont’d)
Catatan:
•• Bahasa
Bahasa rakitan
rakitan membuka
membuka rahasia
rahasia HW
HW dan
dan SW
SW komputer
komputer
–– Mempelajari/menganalisa
Mempelajari/menganalisa ::
•• 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
•• 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
•• 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
enhancement u/ 80186/286/386 (instruksi set 8088 dapat digunakan tanpa modifikasi
u/ 80186/286/386 (instruksi set 8088 dapat digunakan tanpa 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), Borland’s
Borland’s 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 (cont’d)
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 (cont’d)
– 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
– Sebagai alat belajar (learning tool) Æ terutama menyakut kerja
OS
Aplikasi bhs. Rakitan
• Program subroutine: aplikasi spesifik (short program)
–– Program
Program subroutine
subroutine (dpt
(dpt dipanggil
dipanggil oleh
oleh bhs
bhs tingkat
tingkat tinggi)
tinggi)
•• Kombinasi
Kombinasi ini Æ diperoleh
ini Æ diperoleh kekuatan
kekuatan bhs
bhs tingkat
tingkat tinggi
tinggi
–– Contoh:
Contoh: Program
Program COBOL;
COBOL; andikan
andikan compilernya
compilernya tidak
tidak mendukung
mendukung akanakan
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 (cont’d)
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)
– Format-format yang fix dan sederhana Æ membuat implementasi
HW lebih sederhana (“simplicity favors regularity”)
– Pada kebanyakan arsitektur, tidak ada batasan akan elemen-2
yang muncul lebih dari satu

Bahasa Rakitan
I. Pengenalan (cont’d)
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 berupa: instruksi
Dapat berupa: atau directive
instruksi atau directive
–– Contoh:
Contoh: instruksi:
instruksi: mov
mov (move)
(move)
directive:
directive: DB
DB (define
(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
Sebuah Operand
Operand bisa berupa: register,
bisa berupa: register, variabel
variabel memori,
memori, atau
atau immediate
immediate
value
value
–– Contoh:
Contoh:
10
10 (immediate
(immediate value)
value)
count
count (variabel
(variabel memori)
memori)
AX
AX (register)
(register)
I.5.3
I.5.3 Komentar
Komentar
–– Tanda
Tanda ## dalam
dalam MIPS
MIPS
–– Tanda
Tanda ;; dalam
dalam intel
intel

Bahasa Rakitan
I. Pengenalan (cont’d)
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) [[ ]] (( )) <>
<> ,(comma)
,(comma)
“(double
“(double quotes)
quotes) && %% !! ‘‘ (appostrope)
(appostrope)
|| \\ == {{ }} ## +
+
• Pembangun dasar statemen bhs rakitan ::
–– Konstanta
Konstanta (nilai
(nilai yg
yg tidak
tidak berubah
berubah saat
saat runtime) Æ bilangan
runtime) Æ 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 (cont’d)
•• Format
Format Statement
Statement (pada
(pada MASM)
MASM)
[name] [mnemonic] [operands] [;comments]
Statement
Statement dibagi
dibagi menjadi
menjadi 2
2 kelas:
kelas:
–– Instruksi
Instruksi :: executable
executable statement
statement
–– Directive
Directive :: statement
statement yang
yang menyediakn
menyediakn informasi
informasi untuk
untuk membantu
membantu assembler
assembler
dalam menghasil executable
dalam menghasil executable code.
code.
Statement bersifat free-form
Statement bersifat 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 Æ memerintahkan
directive Æ memerintahkan MASMMASM 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 dbdb 50
50
–– Instruksi:
Instruksi: dieksekusi
dieksekusi oleh
oleh Mikroprosessor
Mikroprosessor saat
saat runtime.
runtime.
•• Tipe umum: program
Tipe umum: program control,
control, data
data transfer,
transfer, arithmetic,
arithmetic, logical,
logical, dan
dan I/O
I/O
Bahasa Rakitan
I. Pengenalan (cont’d)
I.6 Operator Aritmatik
– Misalkan dalam C, operasi penjumlahan:
a=b+c;
a=b+c;
– Operasi penjumlahan dalam MIPS dan intel:
add
add a,b,c
a,b,c add
add b,c
b,c
mov
mov a,b
a,b
– Operasi pengurangan (a = b – c) dalam MIPS dan intel:
sub
sub a,b,c
a,b,c sub
sub b,c
b,c
move
move a,b
a,b
I.7 Operasi-operasi kompleks
– Misalkan: a=b+c+d-e;
– Menjadi (dlm MIPS) Catatan
add t0,b,c #t0=b+c Kompiler-kompiler biasanya
add t0,b,c #t0=b+c
menggunakan variabel-2 temporal
add
add t1,t0,d
t1,t0,d #t1=t0+d
#t1=t0+d
Ketika membangkitan kode
sub
sub a,t1,c
a,t1,c #a=t1-e
#a=t1-e

Bahasa Rakitan
I. Pengenalan (cont’d)

I.8. Representasi data


– Bits: 0 dan 1
– Bit string (sederetan dari bits (sequence of bits))
ƒƒ 88 bits Æ 11 Byte
bits Æ Byte
ƒƒ 16
16 bits Æ half-word
bits Æ half-word
ƒƒ 32
32 bits Æ word
bits Æ word
ƒƒ 64
64 bits Æ double-word
bits Æ double-word
– Karakter-2 – satu byte, biasanya menggunakan ASCII
– Bilangan integer – disimpan 2’s complement
– Floating point – menggunakan suatu mantissa dan
ekponensial
(m
(m xx 22ee))

Bahasa Rakitan
I. Pengenalan (cont’d)

I.9. Penyimpan Data (data Storage)


– Pada Bahasa tingkat tinggi, data disimpan dalam variabel
– Dalam prakteknya, data disimpan pada banyak
tempat/media yang berbeda:
•• Disk
Disk
•• Random
Random Access
Access Memory
Memory (RAM)
(RAM)
•• Cache
Cache (RAM
(RAM atai
atai disk)
disk)
•• Registers
Registers

Bahasa Rakitan
I. Pengenalan (cont’d)
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 suatusuatu register
register
tunggal
tunggal u/
u/ satu
satu dari
dari sources
sources dandan destination
destination (contoh
(contoh 8088)
8088)
•• Stack
Stack :: operand
operand dipushed
dipushed dandan 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 high-
speed) yang digunakan u/ menyimpan data
– Focus Æ general purpose register

Bahasa Rakitan
I. Pengenalan (cont’d)
Contoh Akkumulator
– Misalkan: A=B+C;
– Dalam arsitektur berbasis-akkumulator, menjadi:
load
load addressB
addressB
add
add addressC
addressC
store
store addressA
addressA
Contoh Stack
– Misalkan: a=b+c;
– Dalam Javacode
iload
iload aa #load
#load bb ke
ke stack
stack
iload
iload cc #load
#load cc ke
ke stack
stack
iadd
iadd #add
#add dan
dan puts
puts hasil
hasil ke
ke stack
stack
istore
istore aa #store
#store ke
ke aa

Bahasa Rakitan
I. Pengenalan (cont’d)

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

You might also like