KOMPUTER
(BAHASA ASSEMBLY)
Oleh
Husain Ahmad Sulaiman
Nim
19081002
PENDAHULUAN
1. Latar belakang
Bahasa assembly atau Rakitan diprakarsasi oleh IBM pada tahun 1956 –
1963. Bahasa assembly termasuk bahasa tingkat rendah. Pada tahun 1957, sebuah
tim yang dipimpin John W. Backus berhasil mengembangkan sebuah bahasa baru
Extensi yang dihasilkan dari bahasa assembly adalah file dengan extensi Com dan
Exe. Secara umum kedua file tersebut memiliki perbedaan antara program yang
berektensi Com dam Exe, yang merupakan ukuran luas daerah yang menyebabkan
Untuk file yang diakhiri dengan exstension Com, berarti file itu paling
banyak hanya akan memakan luas 64 kilobyte yang disebut 1 segment, sedangkan
untuk file berekstensi EXE tidak dibatasi berapa segment yang dipakai. Dapat 1
segment, 2 segment, 3 segment atau lebih dari 3 segment. Oleh karna COM hanya
sangat dekat dengan mesin. Konsep perangkat keras dan perangkat lunak dapat
dijelaskan bagaimana perangkat keras computer dan system operasi bekerja sama
memahami perangkat lunak pada berbagai level. Level pertama adalah program
aplikasi. Dalam level ini program berinteraksi dengan DOS. Pada level bahasa
instruksi mesin. Pada level yang lebih rendah (lebih dekat dengan mesin),
2. RUMUSAN MASALAH
Adapun rumusan masalah dari pembahasan yang akan kami bahas antara
lain:
3. Tujuan
PEMBAHASAN
2) Bahasa Mesin
Sebelum lebih jauh secara rinci membahas assembly, mari kita lihat dalam
suatu persfektif. Computer kenyatannya tidak mengerti bahasa assembly. Dia
hanya mengikuti bahasa mesin. Bahasa mesin adalah bahasa yang dibangun oleh
sejumlah angka yang dapat diinterpretasikan oleh CPU computer. CPU biasanya
mempunyai program kecil yang ditambahkan kedalam chip, disebut microcode.
Penerjemah microcode mengubah langsung intruksi-intruksi mesin ke dalam
sinyal perangkat keras.
Bahasa mesin memungkinkan untuk melaksanakan tugas-tugas umum oleh
CPU, seperti pemindahan bilangan atau perhitungan aritmatik. Berikut contoh
instruksi bahasa mesin yang memindah angka 5 ke dalam register AL.
1011000000000101
Deretan angka diatas ditulis dalam biner, system penomoran yang dibagun
hanya oleh angka 1 dan 0. Delapan bit pertama adalah kode operaso (opcode)
yang menunjukkan sebagai intruksi yang memindahkan angka-delapan bit ke
register AL. Delapan bit kedua adalah operand. Instruksi secara keseluruhan
memindahkan angka 5 kedalam register AL. Register adalah memori kecepatan
tinggi pada CPU. Register diidentifikasikan oleh nama dua huruf, seperti AH,AL,
atau AX.
Kumpulan instruksi (instruction set) CPU adalah sekumpulan instruksi
mesin yang dapat dieksekusi CPU. Untuk keluarga CPU intel, set instruksi adalah
down-ward-compatible, artinya bahwa instruksi yang bekerja pada processor level
yang lebih rendah akan bekerja juga pada prosesor yang lebih tinggi. Contohnya :
instruksi MOV bekerja pada 8088 dan oleh karna itu harus bekerja pula pada
80286. Akan tetapi, terdapat instruksi yang lebih maju dalam 80286 yang tidak
dapat bekerja pada 8088.
Low Level Language (assembly) : bahasa pemrograman yang
menggunakan register sebagai penyimpan data. Contoh : pemograman
untuk menghitung 5+2 :
MOV AL,5
ADD AL,2
AL adalah register
Format instruksi assembly
4) Skema Assembly
Fase syntesis
5) Proses Assembly
Contoh :
PAR EQU 500 ; “PAR” menunjukan suatu symbol
; dari nilai 500
MULAI :
MOV A, #0FFh ; pada label; “Mulai” nilai 0FFh
; dipindahkan ke Akumulator
Dalam satu baris hanya ada satu label, pada umumnya Assembler
membatasi jumlah karakter yang bisa digunakan hingga 31
karakter.
b. Mnemonik, instruksi atau pengarah Assembler dimasukan dalam
“mnemonic field” yang mengikuti “ label mnemonic”. Mnemonic
instruksi misalnya ADD, MOV, INC dll. Sedangkan pengarah
Assembler misalnya ORG, EQU, DB dll.
c. Operand, ditulis setelah mnemonic, bisa berupa alamat atau data
yang digunakan instruksi yang bersangkutan.
Contoh :
MOV A, #20h ; A dan #20h adalah operand
LAGI:
JNB LAGI ; LAGI adalah operand
d. Komentar, harus diawali dengan titik koma. Sub rutin dari bagian
besar program yang menjelaskan fungsi sub rutin atau bagian besar
program tersebut.
e. End, petunjuk END merupakan kode perintah terakhir yang men-
unjukkan batas akhir dari proses Assembly.
Instruksi yang sering digunakan dalam pembuatan program yaitu :
1. Instruksi Aritmatik
Instruksi ini selalu melibatkan akumulator dan ada juga
beberapa instruksi yang melibatkan register lain.
Berikut ini contoh instruksi – instruksi aritmatika yaitu :
Table instruksi – instruksi Aritmatik
Instruksi Keterangan Contoh
ADD A,Rn Menambah isi register Rn dengan isi akumulator ADD A,R1
lalu disimpan di akumulator
ADD A, direct Menambah isi direct dengan akumulator, ADD A,30H
hasilnya disimpan di akumulator
ADD A, #data Menambahkan immediate data ke akumulator ADD A, #20H
ADD A, @Rn Menambahkan isi dari alamat yang ditunjuk Rn ADD A, @R1
dengan akumulator
ADDC A, #data Menambahkan immediate data ke akumulator ADDC A, #20H
dengan carry
SUBB A, Rn Kurangkan isi register Rn dari akumulator SUBB A, R1
INC A Tambah isi akumulator dengan 1 INC A
DEC A Kurangkan isi akumulator dengan 1 DEC A
MUL AB Kalikan isi A dengan isi B, low –byte disimpan MUL AB
pada akumulator, dan high byte pada B
DIV AB Bagi isi A dengan isi B. akumulator menerima DIV AB
hasil integer pembagian dan B menerima integer
sisanya
2. Instruksi Logika
Instruksi logika ini dipakai untuk melakukan operasi logika,
yaitu operasi AND [ instruksi ANL ], operasi OR [ instruksi
ORL], operasi exclucive-OR [ instruksi XRL ], operasi Clear [
instruksi CLR ], instruksi komplemen [ instruksi CPL ], operasi
penggeseran kanan atau kiri [ instruksi RR, RRC, RL dan RLC ]
serta operasi penukaran data [ instruksi SWAP ]. Data yang
dipakai dalam operasi ini biasanya berupa data yang berada
dalam akumulator atau data yang berada dalam memori data.
3. Instruksi Pemindahan Data
Instruksi – instruksi pemindahan data adalah :
Table Instruksi – instruksi perpindahan data
Instruksi Keterangan Contoh
MOV A, Rn Memindahkan isi register Rn ke akumulator MOV A, R0
MOV A,direct Memindahkan isi direct byte ke akumulator MOV A, 30h
MOV A, #data Mengisi akumulator dengan nilai data MOV A,#20h
MOV A, @Rn Mengisi akumulator dengan isi dari alamat MOV A, @R0
yang ditunjuk oleh Rn
.CODE
ORG 100H
AWAL:
MOV CL,30H
JMP PROSES
KALX DB 13,10,'$'
KAL4 DB 13,10,'Jumlah Huruf Vokal:$'
VOKAL: INC CL
JMP PLUS
PROSES:
MOV AH,09H
INT 21H
MOV AH,0AH
LEA DX,KATA
INT 21H
MOV AH,09H
INT 21H
CETAK:
MOV DL,[BX]
CMP DL,0DH
JE BELAKANG
MOV AH,02H
INT 21H
CMP DL,'a'
JE VOKAL
CMP DL,'i'
JE VOKAL
CMP DL,'u'
JE VOKAL
CMP DL,'e'
JE VOKAL
CMP DL,'o'
JE VOKAL
CMP DL,'A'
JE VOKAL
CMP DL,'I'
JE VOKAL
CMP DL,'U'
JE VOKAL
CMP DL,'E'
E VOKAL
CMP DL,'O'
JE VOKAL
PLUS:INC BX
JMP CETAK
;============= CETAK KATA DARI BELAKANG ==================
BELAKANG:MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
CETAK1:
MOV DL,[BX]
CMP DL,KATA+1
JE VOKAL1
MOV AH,02H
INT 21H
DEC BX
JMP CETAK1
VOKAL1:
MOV AH,09H
INT 21H
MOV DL,CL
;ADD DL,30H
MOV AH,02H
INT 21H
;============ CETAK JUMLAH KONSONAN ===============
KONSONAN:
MOV AH,09H
INT 21H
MOV DL,[BX]
ADD DL,30H
SUB DL,CL
ADD DL,30H
MOV AH,02H
INT 21H
AKHIR:
MOV AH,09H
INT 21H
MOV DL,[BX]
ADD DL,30H
MOV AH,02H
INT 21H
SELESAI:
INT 20H
END AWAL
mov ah,9
int 21h
mov ah,1
int 21h
mov bl,al
mov ah,1
int 21h
mov cl,al
mov ah,1
int 21h
mov dl,al
mov ah,1
int 21h
cmp bl,6ch
je sukses
jmp salah:
cmp cl,6fh
je sukses
jmp salah
cmp dl,76h
je sukses
jmp salah
cmp al,65h
je sukses
jmp salah
salah:
mov ah,9
int 21h
mov ah,9
int 21h
jmp exit
sukses:
mov ah,9
int 21h
mov ah,9
int 21h
mov ah,9
int 21h
ret
1. Kesimpulan
Jadi Bahasa Assembly adalah bahasa yang memudahkan pemahaman
bagian computer yang paling rendah, mendekati mesin. Bahasa assembly
sebaiknya dipelajari secara kontektual sehingga interaksi perangkat keras dan
perangkat lunak computer mungkin mudah dipahami.
Bahasa assembly adalah bahasa pemrograman dengan korespondensi satu-
satu antara perintah-perintah / pertanyaan dan bahasa mesin computer.
Assembler adalah program yang mengonversi kode program sumber ke
dalam bahasa mesin system bilangan ( number system ) adalah suatu cara untuk
mewakili besaran dari suatu item fisik. System bilangan terdiri dari bilangan
biner, bilangan decimal, bilangan octal dan heksadesimal.
. Kelebihan dan kekurangan Bahasa Assembly
Kelebihan :
a. Ketika di-compile lebih kecil ukuran
b. Lebih efisien/hemat memori
c. Lebih cepat dieksekusi
Kekurangan :
a. dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
dibanding bahasa tingkat tinggi.
b. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah
terlalu banyak
c. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi
matematis
BAB IV
DAFTAR PUSTAKA
https://hafidhnurhidayatblog.wordpress.com/2016/01/08/bahasa-
pemrograman-assembly-rakitan/
https://oferiachacha.blogspot.com/2012/03/contoh-program-bahasa-
assembly.html?m=1
http://www.electricalslayer.com/2012/01/contoh-program-password-
dengan.html