Anda di halaman 1dari 23

MAKALAH

ARSITEKTUR DAN ORGANISASI KOMPUTER

ASSEMBLY LANGUAGE PROGRAMING (PEMROGRAMAN BAHASA


RAKITAN)

Oleh

FIRMANSYAH LAHABU
NIM. 521417042

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS NEGERI GORONTALO

2023
KATA PENGANTAR
Assalamualaikum wr.wb.
Puji syukur diucapkan kehadirat Allah Swt. atas segala rahmat-Nya sehingga
makalah ini yang berjudul “Assembly Language Programing (Pemrograman Bahasa
Rakitan) dapat tersusun sampai selesai. Tidak lupa kami mengucapkan terima kasih
terhadap bantuan dari pihak yang telah berkontribusi dengan memberikan
sumbangan baik pikiran maupun materi.
Makalah ini disusun untuk memenuhi tugas dari mata kuliah “Arsitektur dan
Organisasi Komputer”. Penulis berharap semoga makalah ini dapat menambah
pengetahuan dan pengalaman bagi pembaca. Bahkan kami berharap lebih jauh lagi
agar makalah ini bisa pembaca praktikkan dan dijadikan dasar dalam pembelajaran.
Bagi kami sebagai penyusun merasa bahwa masih banyak kekurangan dalam
penyusunan makalah ini karena keterbatasan pengetahuan dan pengalaman kami.
Untuk itu kami sangat mengharapkan kritik dan saran yang membangun dari
pembaca demi kesempurnaan makalah ini.
Gorontalo, 13 Maret 2023

Penulis

i
DAFTAR ISI
KATA PENGANTAR ............................................................................................................. i
DAFTAR ISI .......................................................................................................................... ii
DAFTAR GAMBAR ............................................................................................................ iii
DAFTAR TABEL ................................................................................................................. iv
BAB 1 PENDAHULUAN......................................................................................................1
1.1. Latar Belakang ......................................................................................................1
1.2. Tujuan ....................................................................................................................2
BAB 2 PEMBAHASAN ........................................................................................................3
2.1. A Simple Machine..................................................................................................3
2.2. Instruction Mnemonic and Sintax ........................................................................5
2.3. Assembler Directives and Commands..................................................................7
2.4. Assembly and Execution of Programs .................................................................8
2.4.1. Struktur Data...................................................................................................9
2.5. The X68 Family ...................................................................................................11
2.5.1. General Purpose Register ...........................................................................12
2.5.2. Segmen Register ..........................................................................................13
2.5.3. Instruction Pointer (program counter) and The Flag Register ................13
BAB 3 PENUTUP................................................................................................................17
3.1. Kesimpulan ..........................................................................................................17
3.2. Saran ....................................................................................................................17
DAFTAR PUSTAKA...........................................................................................................18

ii
DAFTAR GAMBAR
Gambar 2.1 Mesin sederhana ..................................................................................................3
Gambar 2.2 bentuk penulisan bahasa assembly.......................................................................6
Gambar 2.3 proses perakitan dan eksekusi bahasa rakitan (assembly) ....................................8
Gambar 2.4 basis set register dari model pemrograman X86 ................................................14
Gambar 2.5 data movement instructions ...............................................................................15
Gambar 2.6 instruksi aritmatik ..............................................................................................15
Gambar 2.7 instruksi rotate and shift.....................................................................................15
Gambar 2.8 instruksi kontrol transfer ....................................................................................16
Gambar 2.9 instruksi kontrol prosesor ..................................................................................16

iii
DAFTAR TABEL
Tabel 2.1 Set instruksi .............................................................................................................4
Tabel 2.2 pemrograman bahasa mesin sederhana dalam biner ................................................4
Tabel 2.3 Pemrograman bahasa mesin sederhana dalam bentuk Hexadecimal ........................5
Tabel 2.4 bahasa rakitan untuk mesin sederhana .....................................................................6
Tabel 2.5 tabel simbol ...........................................................................................................10
Tabel 2.6 Tabel Opcode .........................................................................................................10
Tabel 2.7 Fitur prosesor keluarga X86 ..................................................................................12

iv
BAB 1
PENDAHULUAN

1.1. Latar Belakang


Meskipun bahasa tingkat tinggi dan teknologi kompiler telah menyaksikan
kemajuan besar selama bertahun-tahun, bahasa rakitan tetap diperlukan dalam
beberapa kasus. Pemrograman dalam perakitan dapat menghasilkan kode mesin
yang jauh lebih kecil dan lebih cepat daripada yang dihasilkan oleh kompiler
bahasa tingkat tinggi. Kode yang kecil dan cepat dapat menjadi sangat penting
dalam beberapa aplikasi tersemat dan portabel, di mana sumber daya mungkin
sangat terbatas. Dalam kasus tersebut, sebagian kecil dari program yang mungkin
banyak digunakan dapat ditulis dalam bahasa rakitan.

Sebuah program komputer dapat direpresentasikan pada berbagai tingkat


abstraksi. Suatu program dapat ditulis dalam bahasa tingkat tinggi yang tidak
tergantung mesin seperti Java atau C++. Komputer dapat menjalankan program
hanya jika program tersebut direpresentasikan dalam bahasa mesin yang spesifik
untuk arsitekturnya. Program bahasa mesin untuk arsitektur tertentu adalah
kumpulan instruksi mesin yang direpresentasikan dalam bentuk biner. Program
yang ditulis pada level mana pun yang lebih tinggi dari bahasa mesin harus
diterjemahkan ke representasi biner sebelum komputer dapat mengeksekusinya.
Program bahasa rakitan adalah representasi simbolis dari program bahasa mesin.

Bahasa mesin adalah kode biner murni, sedangkan bahasa rakitan adalah
pemetaan langsung dari kode biner ke dalam bentuk simbolik yang lebih mudah
dipahami dan dikelola oleh manusia. Mengubah representasi simbolik menjadi
bahasa mesin dilakukan oleh program khusus yang disebut assembler. Assembler
adalah program yang menerima program bahasa simbolik (sumber) dan
menghasilkan bahasa mesinnya (target). Dalam menerjemahkan program menjadi
kode biner, assembler akan mengganti alamat simbolik dengan alamat numerik,
mengganti kode operasi simbolik dengan kode operasi mesin, menyimpan

1
penyimpanan untuk instruksi dan data, dan menerjemahkan konstanta menjadi
representasi mesin.

Pada makalah ini akan disajikan tentang mesin hipotetis sederhana yang
akan dirujuk di sepanjang pembahasan makalah ini. Mesin hanya memiliki lima
register dan set instruksinya hanya memiliki 10 instruksi. Mesin sederhana ini
untuk mendefinisikan bahasa rakitan yang agak sederhana yang akan mudah
dipahami dan akan membantu menjelaskan masalah utama dalam pemrograman
rakitan. Juga akan diperkenalkan instruksi mnemonik dan sintaks serta arahan dan
perintah assembler.

1.2. Tujuan
Tujuan penulisan makalah ini adalah untukmemberikan pembaca gambaran
umum tentang bahasa assembly dan pemrogramannya.

2
BAB 2
PEMBAHASAN
2.1. A Simple Machine
Bahasa mesin adalah bahasa asli dari prosesor tertentu. Karena bahasa
rakitan (assembly language) adalah bentuk simbolis dari bahasa mesin, setiap
jenis prosesor yang berbeda memiliki bahasa rakitan yang unik. Sebelum kita
mempelajari bahasa rakitan dari prosesor tertentu, terlebih dahulu kita harus
memahami tentang detail prosesor. Diantaranya , kita perlu mengetahui ukuran
dan organisasi memori, register prosesor, format instruksi, dan seluruh set
instruksi. Untuk memahami hal-hal di atas, kita akan mempelajarinya melalui
mesin sederhana yang telah tersedia.
Mesin sederhana kami adalah prosesor berbasis akumulator, yang unit
memorinya terdiri dari 4096 kata penyimpanan, ukuran kata adalah 16 bit, dan
memiliki lima register 16-bit, yaitu:
1. Penghitung Program (PC), berisi alamat instruksi selanjutnya yang akan
dieksekusi.
2. Daftar Instruksi (IR), berisi bagian kode operasi dari instruksi yang
dieksekusi.
3. Daftar Alamat (AR), berisi bagian alamat (jika ada) dari instruksi yang
sedang dieksekusi.
4. Akumulator (AC), berfungsi sebagai sumber implisit dan tujuan data.
5. Daftar Data (DR), digunakan untuk menyimpan data.

Gambar 2.1 Mesin sederhana

3
Kita asumsikan bahwa prosesor sederhana kita mendukung tiga jenis
instruksi:
1. Instruksi transfer data, beroperasi untuk memuat, menyimpan, dan
memindahkan data antara register AC dan DR.
2. Intruksi pemrosesan data, untuk operasi add, subtract, And, dan Not.
3. Instruksi kontrol program, yaitu operasi lompatan dan lompatan bersyarat.
Ukuran instruksi adalah 16 bit, 4 bit untuk kode operasi dan 12 bit untuk
alamat (bila sesuai). Set instruksi prosesor dirangkum dalam tabel dibawah ini.

Tabel 2.1 Set instruksi

Contoh 2.1: Mari kita menulis program bahasa mesin yang menambahkan
konten lokasi memori 12 (00C-hex), diinisialisasi ke 350 dan lokasi memori 14
(00E-hex), diinisialisasi ke 96, dan menyimpan hasilnya di lokasi 16 (010-hex) ,
diinisialisasi ke 0. Program diberikan dalam instruksi biner pada tabel berikut.
Tabel 2.2 pemrograman bahasa mesin sederhana dalam biner

4
Kolom pertama memberikan lokasi memori dalam biner untuk setiap
instruksi dan operan. Kolom kedua berisi daftar isi dari lokasi memori.
Misalnya, isi lokasi 0 adalah instruksi dengan opcode: 0001, dan alamat operan:
0000 0000 1100. Perlu diketahui bahwa dalam kasus operasi yang tidak
memerlukan operan, bagian operan dari instruksi ditampilkan sebagai nol.
Program diharapkan disimpan di lokasi memori yang ditunjukkan mulai dari
lokasi 0 selama eksekusi. Jika program akan disimpan di lokasi memori yang
berbeda, alamat di beberapa instruksi perlu diperbarui untuk mencerminkan
lokasi baru.
Jelas bahwa program yang ditulis dalam kode biner sangat sulit untuk
dipahami dan, tentu saja, untuk di-debug. Mewakili instruksi dalam
heksadesimal akan mengurangi jumlah digit menjadi hanya empat per instruksi.
Tabel dibawah ini menunjukkan program yang sama dalam heksadesimal.
Tabel 2.3 Pemrograman bahasa mesin sederhana dalam bentuk Hexadecimal

2.2. Instruction Mnemonic and Sintax


Bahasa Mesin adalah numerik sehingga Anda perlu memahami sistem
bilangan terutama heksadesimal dan biner. Sedangkan bahasa assembly
memakai kode mnemonik untuk menggantikan kode biner dan hexa, agar lebih
mudah diingat sehingga lebih memudahkan dalam penulisan program. (Tan
Arman, 2019)
Program perakitan terdiri dari urutan pernyataan perakitan, di mana
pernyataan ditulis satu per baris. Setiap baris program perakitan dibagi menjadi

5
empat bidang berikut: label, kode operasi (opcode), operan, dan komentar.
Empat bagian tersebut dapat dilihat pada gambar berikut.

Gambar 2.2 bentuk penulisan bahasa assembly


1. Label, digunakan untuk memberikan nama simbolis untuk alamat
memori. Label adalah pengidentifikasi yang dapat digunakan pada
baris program untuk bercabang ke baris berlabel. Itu juga dapat
digunakan untuk mengakses data menggunakan nama simbolik.
2. Operation Code (opcode), berisi singkatan simbolis dari operasi yang
diberikan.
3. Operan, terdiri dari informasi atau data tambahan yang diperlukan oleh
opcode. Operan dapat digunakan untuk menentukan konstanta, label,
data langsung, register, atau alamat.
4. Comment (komentar), kolom komentar menyediakan ruang
dokumentasi untuk menjelaskan apa yang telah dilakukan untuk
keperluan debugging dan pemeliharaan.
Mnemonik sederhana bisa dilihat pada tabel berikut.

Tabel 2.4 bahasa rakitan untuk mesin sederhana

Untuk memahami penggunaan bahasa rakitan, perhatikan instruksi


perakitan berikut.

6
Label instruksi LD X adalah START, yang artinya itu adalah alamat
memori dari instruksi ini. Label tersebut dapat digunakan dalam sebuah program
sebagai referensi seperti yang ditunjukkan pada instruksi berikut :

Instruksi JUMP akan membuat prosesor melompat ke alamat memori yang


terkait dengan label START, sehingga mengeksekusi instruksi LD X segera
setelah instruksi BRA.

2.3. Assembler Directives and Commands


Dalam menulis program bahasa rakitan untuk arsitektur tertentu, sejumlah
masalah praktis perlu dipertimbangkan. Di antara isu-isu tersebut adalah sebagai
berikut:
1) Arahan assembler (assembler directives)
Penggunaan arahan assembler, juga disebut pseudo-operasi,
merupakan isu penting dalam menulis program bahasa assembly. Arahan
assembler adalah perintah yang dipahami oleh assembler dan tidak sesuai
dengan instruksi mesin yang sebenarnya. Arahan assembler memengaruhi
cara assembler melakukan konversi kode assembly ke kode mesin.
Misalnya, arahan assembler khusus dapat digunakan untuk
menginstruksikan assembler untuk menempatkan item data sedemikian
rupa sehingga mereka memiliki keselarasan yang tepat. Penyelarasan data
dalam memori diperlukan untuk implementasi arsitektur yang efisien.
Untuk penyelarasan data yang tepat, data dengan lebar n-byte harus
disimpan di alamat yang dapat dibagi oleh n, misalnya, kata yang memiliki
lebar dua byte harus disimpan di lokasi yang memiliki alamat yang dapat
dibagi dua.
2) Penggunaan symbol
Dalam program bahasa rakitan, simbol digunakan untuk mewakili
angka, misalnya, data langsung. Ini dilakukan untuk membuat kode lebih
mudah dibaca, dipahami, dan di-debug. Simbol diterjemahkan ke nilai
numerik yang sesuai oleh assembler.

7
3) Penggunaan operasi sintetik
Penggunaan operasi sintetik membantu pemrogram perakitan untuk
menggunakan instruksi yang tidak secara langsung didukung oleh
arsitektur. Ini kemudian diterjemahkan oleh assembler ke satu set instruksi
yang ditentukan oleh arsitektur. Sebagai contoh, assembler dapat
mengizinkan penggunaan instruksi inkremen (sintetik) pada arsitektur
yang instruksi inkremennya tidak ditentukan melalui penggunaan beberapa
instruksi lain seperti instruksi add.
4) Sintaks assembler
Assembler biasanya memberlakukan beberapa konvensi dalam
mengacu pada komponen perangkat keras seperti register dan lokasi
memori. Salah satu konvensi tersebut adalah awalan nilai langsung dengan
karakter khusus (#) atau nama register dengan karakter (%).
5) Interaksi dengan sistem operasi
Perangkat keras yang mendasari di beberapa mesin tidak dapat
diakses secara langsung oleh suatu program. Sistem operasi (OS)
memainkan peran mediasi akses ke sumber daya seperti memori dan
fasilitas I/O. Interaksi dengan sistem operasi (OS) dapat terjadi dalam
bentuk kode yang menyebabkan eksekusi fungsi yang merupakan bagian
dari OS. Fungsi-fungsi ini disebut panggilan sistem.

2.4. Assembly and Execution of Programs


Program rakitan yang ditulis, akan melalui beberapa proses sebelum
mengalami proses eksekusi. Rangkaian proses tersebut dapat dilihat pada
gambar berikut.

Gambar 2.3 proses perakitan dan eksekusi bahasa rakitan (assembly)

8
- Assembler membaca program sumber dalam bahasa rakitan dan
menghasilkan program objek dalam bentuk biner. Program objek
diteruskan ke linker.
- Linker akan memeriksa file objek untuk panggilan ke prosedur di
Library. Linker akan menggabungkan prosedur yang diperlukan dari
perpustakaan tautan dengan program objek dan menghasilkan program
yang dapat dieksekusi.
- Loader memuat program yang dapat dieksekusi ke dalam memori dan
mencabangkan CPU ke alamat awal.
- Program memulai eksekusi.

2.4.1. Struktur Data


Untuk menjalankan fungsinya assembler membutuhkan tiga tabel,
yaitu:

1) Tabel simbol, yang dibuat pada langkah pertama, memiliki entri


untuk setiap simbol dalam program. Terkait dengan setiap simbol
adalah nilai binernya dan informasi lainnya. Tabel 2.5
memperlihatkan tabel simbol untuk segmen program perkalian pada
Contoh 2. Kita asumsikan bahwa instruksi LD X dimulai dari lokasi
0 dalam memori. Karena setiap instruksi membutuhkan dua byte,
nilai simbol LOOP adalah 4 (004 dalam heksadesimal). Simbol N,
misalnya, akan disimpan di lokasi desimal 40 (028 dalam
heksadesimal). Nilai dari simbol lain dapat diperoleh dengan cara
yang sama.

9
Tabel 2.5 tabel simbol

2) Tabel Opcode, memberikan informasi tentang kode operasi. Terkait


dengan masing-masing simbolik opcode dalam tabel adalah nilai
numeriknya dan informasi lain tentang jenisnya, panjang
instruksinya, dan operannya. Tabel 2.6 menunjukkan tabel opcode
untuk prosesor sederhana.

Tabel 2.6 Tabel Opcode

3) Tabel Pseodu Instuction, adalah simbol instruksi semu. Setiap entri


merujuk assembler ke prosedur yang memproses instruksi semu
ketika ditemui dalam program. Misalnya, jika END ditemui, proses
penerjemahan dihentikan. Untuk melacak lokasi instruksi, assembler
mempertahankan variabel yang disebut penghitung lokasi instruksi
(ILC). ILC berisi nilai lokasi memori yang ditetapkan untuk instruksi
atau operan yang sedang diproses. ILC diinisialisasi ke 0 dan

10
bertambah setelah memproses setiap instruksi. ILC bertambah
dengan panjang instruksi yang sedang diproses, atau jumlah byte
yang dialokasikan sebagai hasil dari instruksi semu alokasi data.

2.5. The X68 Family


Jantung komputer adalah mikroprosesor (µP) yang menangani kebutuhan
komputer atas aritmetika, logic dan kontrol. Mikroprosesor bermuara di tahun
1960-an) ketika para perancang peneliti memanfaatkan rangkaian terpadu atau
integrated circuit (IC) dengan menggabungkan beragam komponen elektronik
menjadi satu komponen tunggal dalam sebuah emping silikon (silicon chip).
Pabrikan membuatnya seperti piranti menyerupai kelabang dan IC2 disambung-
sambung menjadi sebuah sistem yang berfungsi.

Pada April 1972, Intel® memperkenalkan chip 8008, generasi pertama


mikroprosesor 8-bit. Pada tahun 1974, 8008 berkembang menjadi 8080,
mikroprosesor generasi kedua yang begitu populer pemanfaatannya sebagai
general-purpose. Pada tahun 1978 keluar generasi ketiga prosesor 8086 yang
kompatibel dengan 8080 dan desainnya jauh ke depan. Berikutnya Intel®
mengembangkan 8088) , suatu variasi dari 8086 yang memiliki desain lebih
sederhana dan kompatibel terutama bagian perangkat input/output. 8088 inilah
yang dipilih IBM® pada tahun 1981 sebagai jantung personal computer IBM
PC. Versi lanjutan 8088 adalah 80188; lanjutan 8086 adalah 80186, 80286,
80386, 80486, Pentium (atau 586), PentiumPro (atau 6x86) masing-masing
dengan tambahan operasi2 dan processing power.

Keluarga prosesor Intel diatas biasa disebut keluarga X86. Tabel 2.7
merangkum ciri-ciri utama dari anggota utama keluarga semacam itu.

11
Tabel 2.7 Fitur prosesor keluarga X86

Model pemrograman dasar dari 386, 486, dan Pentium ini terdiri dari tiga
kelompok register, yaitu general purpose register, segmen register, dan
instruction pointer (program counter) and the flag register.
2.5.1. General Purpose Register
Menurut Secara umum register-register dalam kelompok ini dapat
digunakan untuk berbagai keperluan, walaupun demikian ada pula penggunaan
khusus dari masing-masing register ini yaitu: (S’to, 2001)

- Register AX, secara khusus digunakan pada operasi aritmatika terutama


dalam operasi pembagian dan pengurangan.
- Register BX, biasanya digunakan untuk menunjukkan suatu alamat offset
dari suatu segmen.
- Register CX, digunakan secara khusus pada operasi looping dimana
register ini menentukan berapa banyaknya looping yang akan terjadi.
- Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit.
- Pada prosesor 80386 terdapat tambahan register 32 bit, yaitu EAX, EBX,
ECX dan EDX.

Adapun register- register dalam kelompok ini yang digunakan sebagai


penunjuk atau pointer terhadap suatu lokasi di memory, yaitu:

- Register SP (Stack Pointer) yang berpasangan dengan register segment


SS(SS:SP) digunakan untuk mununjukkan alamat dari stack, sedangkan

12
register BP (Base Pointer)yang berpasangan dengan register SS(SS:BP)
mencatat suatu alamat di memory tempat data.
- Register SI (Source Index) dan register DI (Destination Index) biasanya
digunakan pada operasi string dengan mengakses secara langsung pada
alamat di memory yang ditunjukkan oleh kedua register ini.
- Pada prosesor 80386 terdapat tambahan register 32 bit, yaitu ESP, EBP
,ESI dan EDI.
2.5.2. Segmen Register
Register yang termasuk dalam kelompok ini terdiri atas register CS, DS,
ES dan SS yang masing-masingnya merupakan register 16 bit. Register-register
dalam kelompok ini secara umum digunakan untuk menunjukkan alamat dari
suatu segmen. (S’to, 2001)

- Register CS (Code Segment) digunakan untuk menunjukkan tempat


dari segmen yang sedang aktif, sedangkan register SS(Stack Segment)
menunjukkan letak dari segmen yang digunakan oleh stack. Kedua
register ini sebaiknya tidak sembarang diubah karena akan
menyebabkan kekacauan pada program anda nantinya.
- Register DS (Data Segment) biasanya digunakan untuk menunjukkan
tempat segmen dimana data-data pada program disimpan. Umumnya
isi dari register ini tidak perlu diubah kecuali pada program residen.
Register ES (Extra Segment), sesuai dengan namanya adalah suatu
register bonus yang tidak mempunyai suatu tugas khusus. Register ES
ini biasanya digunakan untuk menunjukkan suatu alamat di memory,
misalkan alamat memory video.
- Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaitu
FS<Extra Segment> dan GS<Extra Segment>.
2.5.3. Instruction Pointer (program counter) and The Flag Register
- Register IP berpasangan dengan CS (CS:IP) menunjukkan alamat dimemory
tempat dari intruksi (perintah) selanjutnya yang akan dieksekusi. Register IP
juga merupakan register 16 bit.

13
- Sesuai dengan namanya Flags (Bendera) register ini menunjukkan kondisi dari
suatu keadaan <ya atau tidak>. Karena setiap keadaan dapat digunakan 1 bit
saja, maka sesuai dengan jumlah bitnya, Flags register ini mampu memcatat
sampai 16 keadaan.

Berikut adalah gambar dari basis set register dari model pemrograman
X86.

Gambar 2.4 basis set register dari model pemrograman X86


Prosesor X86 family mendefiniskan sejumlah tipe instruksi, yaitu:
1) Data Movement Instructions
Instruksi perpindahan data dalam keluarga X86 terutama mencakup
empat subtipe. Ini adalah tujuan umum, khusus akumulator, alamat-objek,
dan instruksi bendera.

14
Gambar 2.5 data movement instructions
2) Arithmatic and Logic Instructions
Instruksi aritmatika dan logika dalam keluarga X86 terutama
mencakup lima subtipe. Ini adalah penjumlahan, pengurangan, perkalian,
pembagian, dan instruksi logika. Instruksi logika termasuk AND, OR,
NOT, XOR, dan TEST. Yang terakhir melakukan perbandingan logika
dari sumber dan tujuan dan menyetel bendera yang sesuai.

Gambar 2.6 instruksi aritmatik


3) Rotate and Shift instructions
Instruksi ini mencakup perpindahan dan putaran logika.

Gambar 2.7 instruksi rotate and shift

15
4) Control Transfer Instructions
Instruksi transfer kontrol dalam keluarga X86 terutama mencakup
empat subtipe. Ini adalah kondisional, iterasi, interupsi, dan tanpa syarat.

Gambar 2.8 instruksi kontrol transfer


5) Processor Control Instructions
Instruksi kontrol prosesor dalam keluarga X86 terutama mencakup tiga
subtipe. Ini adalah sinkronisasi eksternal, manipulasi bendera, dan
instruksi kontrol umum.

Gambar 2.9 instruksi kontrol prosesor

16
BAB 3
PENUTUP
3.1. Kesimpulan
Bahasa mesin adalah kumpulan instruksi mesin yang direpresentasikan dalam
0s dan 1s. Bahasa rakitan menyediakan representasi simbolik yang lebih mudah
digunakan, di mana alfanumerik yang setara dengan bahasa mesin digunakan. Ada
korespondensi satu-ke-satu antara pernyataan bahasa rakitan dan instruksi mesin.
Assembler adalah program yang menerima program bahasa simbolik (program
sumber) dan menghasilkan padanan bahasa mesinnya (program target). Meskipun
pemrograman bahasa rakitan sulit dibandingkan dengan pemrograman dalam
bahasa tingkat tinggi, tetap penting untuk mempelajari rakitan. Dalam beberapa
aplikasi, sebagian kecil dari program yang banyak digunakan mungkin perlu ditulis
dalam bahasa rakitan. Pemrograman dalam perakitan dapat menghasilkan kode
mesin yang lebih kecil dan lebih cepat daripada yang dihasilkan oleh kompiler
bahasa tingkat tinggi. Pemrogram perakitan memiliki akses ke semua fitur
perangkat keras dari mesin target yang mungkin tidak dapat diakses oleh
pemrogram bahasa tingkat tinggi. Selain itu, mempelajari bahasa rakitan dapat
sangat membantu dalam memahami detail tingkat rendah dari organisasi dan
arsitektur komputer.

3.2. Saran
Untuk mempermudah kita memahami bahasa rakitan (assembly), alangkah
baiknya kita harus memahami terlebih dahulu materi gerbang logika, bilangan
biner, bilangan hexadecimal, dan dasar-dasar pemrograman.

17
DAFTAR PUSTAKA

Arman, T. (2019). Memahami Bahasa Assembly Lewat Arsitektur Komputer. academia, 100.

Mostafa Abd-El-Barr, H. E.-R. (2005). Fundamental of Computer Organization and


Architecture. Canada: Jhon Wiley & Sons.

S'to. (2001). Pemrograman Bahasa Assembly. Jakarta: Jasakom.

18

Anda mungkin juga menyukai