WELCOME TO MY BLOG

Selasa, 27 Agustus 2019

Pengenalan Bahasa Assembly


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 :
0000 0100 0000 0101

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