PENGENALAN BAHASA
ASSEMBLY
Apa itu
bahasa assembly
Adalah bahasa pemograman dengan korespondensi
satu-satu antara perintah-perintah/pernyataan dan bahasa mesin komputer. Bahasa
assembly tidak satu jenis sebagaimana CPU komputer yang bermacam-macam. Setiap
bahasa assembly secara langsung dipengaruhi oleh set intruksi mesin komputer
dan arsitektur HARDWARE. Misalnya, bahasa assembly IBM-PC adalah bahasa
assembly yang mengacu pada intruksi-intruksi yang dikenali oleh keluarga
microprosesor intel 8086-80486.
Apa itu
assembler?
Assembler
adalah program yang mengkonversi kode program sumber ke dalam bahasa assembly.
Tulisan ini mengacu pada assembler yang membuat instruksi mesin untuk
microkomputer IBM yang sesuai. Jadi bahasa assembly itu adalah kumpulan
instruksi yang spesifik untuk
sistem komputer tertentu. Dan assembler adalah programan
yang menerjemahkan program yang ditulis dalam bahasa assembly kedalam bahasa
mesin, yang depat dieksekusi oleh
komputer
Mengapa Mempelajari Bahasa Assembly
?
Alasan
mengapa mempelajari bahasa assembly:
1.
Untuk
mempelajari arsitektur komputer dan sistem operasi.
2.
Kegunaan
program tertentu sulit atau tidak mungkin dikerjakan oleh bahasa tingkat tinggi
3.
Membuat
programer dapat memngembangkan cara berpikir secara sistematis
Aplikasi Bahasa Assembly
Biasanya kita membuat subrutin datam bahasa assembly
dan memanggilnya dari program bahasatingkat tinggi. Keuntungan dapat diperoleh
karena ketanya bahasa tingkat tinggi, dengan menggunakan bahasa tingkat rendah
dalam membuat aplikasi. Subrutin bahasa assembly menangani operasi-operasi yang
tidak tersedia dalam bahasa tingkat tinggi. Misai kita menulis program aplikasi
bisnis dalam Cobol untuk IBM-PC, Kita memerlukan aplikasi untuk mengecek ruang
bebas disk, membuat subdirektory, menulis proteksi file, dan membuat window
yang overlap semuanya dalam satu program. Misal kompilator Cobol tidak dapat
melakukan semuanya, kita dapat membuat
subrutin bahasa assembly, untuk menangani tugas-tugas tersebut
Bahasa Mesin
Sebelum
lebih jauh secara rinci membahas bahasa assembly. Mari kita bahasa assembly.
Dia hanya mengikuti bahasa mesin. Bahasa mesin adalah bahasa yang dibangun Oleh
sejumlah angka yang dapat diinterprestasikan oleh CPU komputer. CPU biasanya
mempunyai program kecil yang ditambahkan langsung ke dalam chip, disebut
microcode. Bahasa mesin memungkinkan untuk melaksanakan tugas-tugas umum oleh
CPU, seperti pemindahan bilangan atau perhitungan aritmatik.
Contoh
intruksi bahasa mesin yang memindahkan angka 5 kedalam register AL
1011000000000101
Register
adalah memori kecepatan tinggi yang berada dalam CPU.
REPRENTASI DATA
Bilangan
Biner
Komputer menyimpan semua instruksi dan data
sebagai rangkaian digit biner, tanpa perbedaan antara keduanya. Contoh, tiga
huruf pertama alfabet akan disimpan dalam IBM-PC sebagai:
0100 0001 0100 0010 00011 = "ABC"
Pada saat yang sama, instruksi untuk menjumlahkan
dua buah bilangan akan disimpan di memori sebagai :
Setiap digit dalam angka biner disebut bit. Kemudian, 8 buah bit disebut byte, yang merupakan unit terkecil penyimpanan pada komputer saat ini. Setiap lokasi dalam komputer menyimpan 1 byte, atau 8 bit. Tipe penyimpan yang lebih besar adalah word yang panjangnya 16 bit (2 byte).
byte byte
1 0 1 1 0 1 0 1 1 0 1 1 0 1 0
word
Setiap
sistem penulisan angka mempuyai basis, yaitu jumlah maksimum nilai pada suatu
digit, yang disebut radix alau basis.
Tabel I.I sistem bilangan
Sistem
|
Basis/Radix
|
Digit Yang Mungkin
|
Biner
|
2
|
01
|
Oktal
|
8
|
01234567
|
Desimal
|
10
|
0123456789
|
Heksadesimal
|
16
|
0123456789ABCDEF
|
Dalam sistem bilangan heksadesimal, huruf
A sampai F mewakili nilai desimal 10 sampai 15.
Pada
saat mengacu pada bilangan biner, oktal atau heksadesimal, sebuah huruf kecil
akan ditambahkan pada akhir setiap bilangan untuk menunjukkan basisnya. Contoh
bilangan 45 heksadesimal akan ditulis sebagai 45h, 76 oktal akan ditulis 76o
atau 76q, dan biner 11010011 akan terlihat 11010011b.
Komputer
pribadi IBM disebut komputer 16-bit karena instruksinya dapat mengoperasikan
sejumlah 16-bit bilangan. Integer biasanya disimpan dalam memori sebagai byte,
word atau double word. Masing-masing mempunyai batasan bawah dan atas sebagai
berikut:
Tabel I.2 tipe penyimpan
Tipe Penyimpanan
|
Bit
|
Range (bawah-atas)
|
Byte
|
8
|
0-225
|
Word
|
16
|
0-65,535
|
Double word
|
32
|
0-4,294,967,295
|
Walaupun masing-masing bilangan membutuhkan
jumlah bit yang berbeda-beda, pada kenyataannya semua bilangan disimpan di
memori sebagai nilai biner karena arsitektur komputer adalah biner
Pengubahan Bilangan Biner ke Desimal
Oleh
karena berbagai keperluan, mungkin kita perlu mengubah bilangan dari biner ke
desimal. Setiap posisi bit dalam bilangan biner adalah pangkat dari 2, seperti
gambar berikut:
Nilai 27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Untuk
mendapatkan nilai desimal dari sebuah bilangan biner,kita harus menjumlahkan
nilai setiap bit yang bernilai 1 dan memperoleh jumlah keseluruhannya. Misalkan
terdapat bilangan biner 00001001:
0 0 0 0 1 0 0 1
Desimal 8 1 = 9 d
Bilangan Heksadesimal
Bilangan biner yang
banyak susah untuk dibaca sehingga biasanya
digunakan bilangan heksadesimal untuk menggambarkan memori komputer atau instruksi. Setiap digit
bilangan heksadesimal mewakili 4 bit
bilangan biner, dan 2 digit bilangan heksadesimal mewakili satu byte. pada contoh berikut terlihat bahwa bilangan
biner 0001011000000111 10010100
digambarkan oleh bilangan heksadesimal
160794
0001 0110 0000 0111
1001 0100
1 6
0 7 9
4
Sebuah digit
heksadesimal mungkin mempunyai nilai sampai 15
sehingga untuk angka 10-15 menggunakan huruf A-F. Tabel berikut menunjukkan bagaimana setiap 4 bit biner
diterjemahkan ke dalam desimal dan
heksadesimal:
Biner
|
Desimal
|
Heksadesimal
|
0000
|
0
|
0
|
0001
|
1
|
1
|
0010
|
2
|
2
|
0011
|
3
|
3
|
0100
|
4
|
4
|
0101
|
5
|
5
|
0110
|
6
|
6
|
0111
|
7
|
7
|
1000
|
8
|
8
|
1001
|
9
|
9
|
1010
|
10
|
A
|
1011
|
11
|
B
|
1100
|
12
|
C
|
1101
|
13
|
D
|
1110
|
14
|
E
|
1111
|
15
|
F
|
Setiap
posisi digit heksadesimal mewakili bilangan pangkat dari 16.
163 162 161 160
Nilai 4096 256 16 1
Bilangan
dapat dikonversi dari heksadesimal ke desimal dengan mengalikan masing-masing
digit dengan nilai posisinya. Misalnya, bilangan 3BA4h, hasilnya:
3 B A 4
Nilai
posisi 4096 256 16 1
Hasil
kali 12,288 2,816 160 4 = 15,268d
Bilangan Bertanda
Bilangan biner mungkin bertanda atau tidak bertanda . Byte bertanda
menggunakan 8 bit seluruhnya untuk nilai angkanya . Contoh , 11111111 = 255.
oleh karena itu , 255 adalah nilai tertinggi yang dapat disimpan dalam word tidak
bertanda adalah 65,535
One complement :Untuk menghitung bilangan One
complement dari suatu bilangan maka balikan seluruh nilai bitnya. Contoh, One
complement dari 11110000b adalah 00001111b
Twos complement :Untuk menyimpan nilai
negatif maka digunakan bilangan Twos complement. Twos complement diperoleh
dengan menambah satu pada bilangan ones complement
Nilai maksimum minimum :Oleh karna nilai paling
kiri pada bilangan bertanda digunakan
untuk tanda bilangan, maka ukuran
bilangan akan berkurang yang digunakan hanya. 7 Bit sehingga nilai paling besar yang bisa dicapai adalah +127.
Tabel berikut menunjukkan nilai
maksimum. Dan minimum untuk byte, word dan double word bertanda
Penyimpanan Karakter
Komputer hanya bisa menyimpan bilangan biner, jadi bagai mana menyimpan
karakter seperti “A” dan “$”? Telah di buat suatu sistem menerjemahkan karakter
ke dalam bilangan biner, yaitu ASCII dan EBCDIC.
Standar kode ASCII
hanya menggunakan 7-bit kode, sedangkan nilai
selebihnya yang mungkin 7Fh.
8-bit lainnya adalah pilihan di gunakan
oleh IBM-PC untuk memperluas kumpulan karakter. Nilai 80h-FFh menggambarkan
simbol grafik dan karakter Yunani. Nilai 0-1Fh adalah kode kendali untuk
printer, komunikasi dan keluaran layar.
Semua karakter,
termasuk bilangan dan hunif, dibuat unik pada kode ASCII. Contoh, kode untuk karakter
string"ABC123"adalah
Karakter
A B C 1
2 3
Kode
ASCII 41h 42h 43h 30h
31h 32h
ELEMEN DASAR ASSEMBLY
Intruksi Bahasa Assembly
Instruksi bahasa assembly adalah representasi simbolik
instruksi mesin tunggal. Dalam bentuknya
yang paling sederhana, yang terdiri dan satu
mnemonic, kode alfabet singkat yang secara harfiah"membantu
memori" dalam mengingat instruksi
CPU. Mnemonic mungkin diikuti oleh
operand contoh berikut :
clc ; hanya sebuah ninemonic
inc ax; operand tunggal
mov ax, bx ; dua operand
Elemen
Dasar Bahasa Assembly
Krakter-krakter tersebut digunakan
untuk membentuk nomor, nama, perintah dan parameter.
KARAKTER
KHUSUS
|
|
?
@
_
$
:
.
[]
()
<>
{}
+
-
/
*
|
,(KOMA)
“
&
%
!
‘
~
|
/
=
#
^
;
‘
|
Konstanta
Konstanta adalah nilai yang di
ketahui dan di kalkulasikan pada saat penyusunan program. Konstanta mungkin
nomor atau karakter string. Diaa tidak dapat di ubah saat program di jalankan.
Variable sebaliknya adalah lokasi
memori yang dapat berubah pada saat program dijalankan. Contoh berikut adalah
konstanta:
‘ABC’
2134
5*6
(1+2)/3
Integer
Dibangun
oleh digit – digit angka tanpa titik decimal, diikuti oleh karakter radix (d=
decimal,h= hexa, q= octal, b=biner)
CONTOH
|
RADIX
|
1111 0000b
200
300d
4A6Bh
2047q
2047o
|
Biner
Decimal
Decimal
Heksadecimal
Oktal
Oktal
|
Bilangan
Riil
Angka rill mengandung digit, titik desimal
tunggal, eksponen dan tanda awal.
syntax nya berupa: [{+/-}]
digit.digit[E{+/-}]digit
CONTOH:
2.3
+200.567E+05
0.243526E-5
6.08 e3
Notasi
Sintak
Dalam contoh sebelumnya dan pada contoh yang akan
datang, elemen opsional akan di tutup dengan kurung siku. Tanda kurang besar
mengidentifikasi pilihan yang di perlukan ,kata kunci yang diprlukan ditulis
dalam huruf kapital, kata dengan huruf kecil adalah istilah-istilah yang telah
di defenisikan sebelumnya .
Karakter
dan Konstanta String
Karakter ASCII tunggal atau string karakter yang
ditutup oleh tanda quotasi tunggal
(’ ’)/ganda(“ ”),
konstanta karakter panjangnya 1 byte, panjang sebuah string ditentukan
oleh jumlah karakter yang ada di dalamnya
contoh :
“a”
‘B’
“stack
overflow”
‘012#?%&’
Tidak ada komentar:
Posting Komentar