You are on page 1of 12

Reference:

Pemrograman Bahasa Assembly Konsep Dasar dan Implementasi, Mmaman


Abdurohman, Penerbit: Andi Offset,Yogyakarta, 2010.

Assembler (Bahasa Rakitan), Syahrul, Penerbit: Informatika Bandung, 2012

SAP/RPS
BAB I
PENGENALAN BAHASA ASSEMBLY

1.1 Tentang bahasa Assembly

Bahasa assembly (bahasa asing assembly language), artinya


bahasa rakitan adalah bahasa pemrograman komputer tingkat
rendah (low-level), karena dalam struktur dan fungsi
menggunakan bahasa primitif yaitu bahasa pemrograman yang
lebih mendekati kepada bahasa mesin. Sebaliknya bahasa
tingkat tinggi seperti Pascal, Basic, dan Cobol mempunyai
perintah yang diterjemahkan ke dalam berbagai instruksi mesin
oleh kompiler. Bahasa assembly dipelajari secara
kontekstual/keterkaitan langsung, relevan sehingga interaksi
perangkat keras dan perangkat lunak komputer dapat lebih
dipahami. Pada bab yang lain akan dibahas perangkat keras
komputer, bahasa mesin konsep sistem operasi dan struktur
pemrograman.
Apa itu bahasa assembly?
Adalah bahasa pemrograman dengan korespondensi satu-satu antara
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 instruksi mesin
komputer dan arsitektur perangkat keras. Contoh disini bahasa assembly
IBM-PC adalah bahasa assembly yang mengacu pada instruksi-instruksi
yang dikenal oleh keluarga mikroprosesor Intel 8086-80486.

Apa itu assembler?


Assembler adalah program yang mengonversi kode program sumber ke dalam
bahasa mesin. Pembahasan ini akan mengacu pada assembler yang membuat
instruksi mesin untuk mikrokomputer IBM yang sesuai dimana komputer
tersebut menggunakan mikroprosesor keluaran Intel. Program akan berjalan di
bawah sistem operasi PC-DOS/MS-DOS. Terdapat dua assembler yang
dikenal yaitu Microsoft assembler/MASM dan TASM (Turbo Assembler).
Bahasa assembly adalah kumpulan instruksi yang spesifik untuk sistem
komputer tertentu. Assembler adalah program yang menerjemahkan progam
yang ditulis dalam bahasa assembly ke dalam bahasa mesin, yang dapat
dieksekusi oleh komputer. Setiap tipe komputer memiliki bahasa assembly yang
berbeda, karena rancangan komputer mempengaruhi instruksi yang dapat
dieksekusi.
Mengapa mempelajari bahasa assembly (bahasa rakitan)?
Ada berbagai alasan mengapa kita mempelajari bahasa assembly. Salah
satunya adalah untuk mempelajari arsitektur komputer dan sistem operasi.
Alasan lain adalah kegunaan pemrograman tertentu sulit atau tidak mungkin
dikerjakan oleh bahasa tingkat tinggi. Contoh, komunikasi langsung dengan
sistem operasi komputer mungkin diperlukan, program khusus mungkin
diperlukan sebagai penghubung antara printer dengan komputer

BAHASA MESIN
Disini dikatakan bahwa komputer, kenyataannya tidak mengerti bahasa assembly,
tetapi hanya mengikuti bahasa mesin. Bahasa adalah bahasa yang dibangun oleh
sejumlah angka yang dapat di interpretasikan oleh CPU komputer. CPU biasanya
mempunyai program kecil yang ditambahkan langsung ke dalam chip, disebut
microcode. Penerjemah microcode mengubah langsung instruksi-instruksi mesin ke
dalam sinyal perangkat keras. Bahasa mesin memungkinkan untuk melaksanakan
tugas-tugas umum oleh CPU, seperti pemindahan bilangan atau perhitungan
aritmatik. Contoh instruksi bahasa mesin yang memindahkan angka 5 ke dalam
register AL. 1011000000000101
Deretan angka tersebut ditulis dalam biner, sistem penomoran yang dibangun
hanya angka 1 dan 0. Delapan bit pertama adalah kode operasi (opcode) yang
menunjukkan sebagai instruksi yang memindahkan angka 8 bit ke register AL.
Delapan bit kedua adalah operand. Instruksi secara keseluruhan memindahkan
angka 5 ke dalam register AL.
Register adalah memori yang dapat diakses dengan kecepatan tinggi yang berada di
dalam CPU. Register diidentifikasikan oleh nama 2 huruf, seperti AH, AL, atau AX.
Kumpulan instruksi (instruction set) CPU adalah sekumpulan instruksi mesin yang
dapat dieksekusi oleh CPU. Untuk keluarga CPU intel, set instruksi adalah down-word-
compatible, artinya bahwa instruksi yang bekerja pada prosesor level yang lebih rendah
akan bekerja juga pada prosesor yang lebih tinggi. Contoh, instruksi MOV bekerja pada
8088 dan oleh karena itu harus bekerja pula pada 80286. Akan tetapi, terdapat instruksi
yang lebih maju dalam 80286 yang tidak dapat bekerja pada 8088. Dahulu semua
program ditulis dalam bahasa mesin, hal ini menyulitkan bagi pemrogram baik dalam
membacanya maupun menulisnya. Inilah sebabnya mengapa dibuat assembler dan
kompiler yang akan mengonversi instruksi yang mudah dibaca, dibuat dalam editor teks
ke dalam bahasa mesin. Contoh instruksi di atas adalah MOV AL,5.

1.2 REPRESENTASI DATA


Komputer yang ada saat ini adalah komputer biner yang sistem bilangannya terdiri
angka 1 dan 0, yang dikenal dengan istilah logic digital.
Bilangan Biner
Komputer menyimpan semua isntruksi dan data sebagai rangkaian digit biner, tanpa
perbedaan antara keduanya. 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 penyimpanan
yang lebih besar adalah word yang panjangnya 16 bit (2 byte).
101101011011010
Setiap sistem penulisan angka mempunyai basis, yaitu jumlah maksimum
nilai pada suatu digit yang disebut radix atau basis.

Sistem Basis/radix Digit yang mungkin


Biner 2 01
Oktal 8 01234567
Desimal 10 0123456789
Hexadesimal 16 0123456789ABCDEF

Dalam sistem bilangan hexadesimal, huruf A sampai F mewakili nilai


desimal 10 sampai 15. Pada saat mengacu pada bilangan biner, oktal
atau hexadesimal sebuah huruf kecil akan ditambahkan pada akhir setiap
bilangan untuk menunjukkan basisnya. Contoh bilangan 45 hexadesimal
akan ditulis sebagai 45h, 76 oktal akan ditulis 76o atau 76q, dan biner
11010011 akan terlihat 11010011b.
Integer biasanya disimpan dalam memori sebagai byte, word, atau
double word, masing-masing mempunyai batas bawah dan atas
sebagai berikut :

Type penyimpanan Basis/radix Digit yang mungkin


Byte 8 0-255
Word 16 0-65,535
Double word 32 0-4,294,967,295
PENGUBAHAN BILANGAN BINER KE DESIMAL

Oleh karena berbagai keperluan, biasanya dilakukan konversi bilangan


dari biner ke desimal. Setiap posisi bit dalam biner adalah pangkat dari
2, seperti dibawah ini.

27 26 25 24 23 22 21 20
Nilai
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. Misalnya terdapat bilangan biner 00001001:

0 0 0 0 1 0 0 1
Desimal 8 1 = 9d
BILANGAN HEXADESIMAL

Bilangan biner yang banyak, susah untuk dibaca sehingga biasanya


digunakan bilangan hexadesimal untuk menggambarkan memori komputer
atau instruksi. Setiap digit bilangan hexadesimal mewakili 4 bit bilangan
biner, dan 2 digit bilangan hexadesimal mewakili satu byte. Pada contoh
dibawah ini terlihat bahwa bilangan biner 000101100000011110010100
digambarkan oleh bilangan hexadesimal 160794.

0001 0110 0000 0111 1001 0100


1 6 0 7 9 4

Sebuah digit hexadesimal 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
hexadesimal.
Biner Desimal Hexadesimal
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 hexadesimal mewakili bilangan pangkat
dari 16
163 16 2 161 16 0
Nilai
4096 256 16 1
Bilangan dapat dikonversi dari hexadesimal 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

Pada saat perkalian huruf B dan A diganti dengan nilai berdasarkan


nilainya sendiri.
SEKIAN dan
Terima kasih
‫وسالم‬

You might also like