Anda di halaman 1dari 17

BAHASA

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.2. Bahasa-2 Pemrograman

Terdapat banyak bahasa pemrograman tergolong menjadi 2:


++, Pascal, Basic)
Bahasa Tingkat Tinggi: (C, C++
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 (contd)
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 (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

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
ini
diperoleh
diperoleh kekuatan
kekuatan bhs
bhs tingkat
tingkat tinggi
tinggi

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)

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 (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)
#
+
#
+

Pembangun dasar statemen bhs rakitan ::

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)

[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
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;

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)
add
add
add
add
sub
sub

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

Karakter-2 satu byte, biasanya menggunakan ASCII


Bilangan integer disimpan 2s complement
Floating point menggunakan suatu mantissa dan

ekponensial
(m
(m xx 22ee))

Bahasa Rakitan

I. Pengenalan (contd)
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 (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

Anda mungkin juga menyukai