1. 1
TUGAS
BAHASA ASSEMBLER
Oleh :
Nama : Hamdan Paliwang
NPM : 121055520112005
Kelas : Info III
Jurusan : Komputasi
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALUKU UTARA
TERNATE
2015
2. 2
PENGENALAN BAHASA MESIN & BAHASA ASSEMBLY
Bahasa Mesin
Setiap jenis CPU memiliki bahasa mesin-nya masing-masing. Instruksi bahasa
mesin dinyatakan dalam bilangan numeric (Binari) yang tersimpan sebagai byte
dimemori. Masing-masing instruksi memiliki kode numerik yang unik yang disebut
sebagai “operation code” atau “opcode”. Setiap perintah diawali dengan suatu opcode
dan dapat diikuti oleh data.
Bahasa Assembly
Karena Bahasa Mesin sangat rumit untuk diprogram secara langsung (karena
berupa bilangan numeric), sehingga dibuat suatu symbol pelambang (mnemonic)
untuk mewakili masing-masing instruksi tersebut yang lebih mudah diingat dan dibaca
oleh manusia (bayangkan apakah anda lebih mudah mengingat nama teman anda atau
nomor telepon rumahnya?).
Apa itu Assembler
Sebagaimana dijelaskan sebelumnya bahwa bahasa Assembly menggunakan
mnemonic sebagai penganti bagi instruksi bahasa Mesin, sehingga program yang
ditulis dalam bahasa Assembly tidak dapat secara langsung dieksekusi oleh CPU. Dalam
hal ini Assembler berperan untuk menterjemahkan mnemonic tersebut menjadi
bahasa Mesin yang dapat dieksekusi oleh CPU. Untuk melakukan assembler dapat
menggunakan program DEBUG.EXE maupu berbagai aplikasi compiler seperti TASM,
MASM, NASM, FASM maupun emulator8086.
Program assembler ini sama dengan program bahasa mesin elektronik yang
mana berfungsi untuk mengontrol perangkat-perangkat elektronik yang telah
diorganisasikan. Misalnya untuk mengontrol pintu otomatis, lampu otomatis, robot
dan bahkan laptop atua komputer menggunakan bahasa assembler.
Kita ambil sebuah contoh program assembler untuk menghidupkan LED sesuai dengan
pernyataan dibawah ini dengan menggunakan 8 bit pada port a,b dan c.
3. 3
Contoh 1
a) Hidupkan LED dari D7-D0
b) Hidupkan LED dari tengah ke kiri dan ke kanan 2-2 bit
c) Hidupkan LED 5 dan 8.
Jawab:
Konsep kita harus mempunyai simulasi LED contoh seperti dibawah ini.
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
128 64 32 16 8 4 2 1
D7 D6 D5 D4 D3 D2 D1 D0
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 =255
D7 D6 D5 D4 D3 D2 D1 D0
128 + 64 32 + 16 8 + 4 2 + 1
D7 D6 D5 D4 D3 D2 D1 D0
128+64+2+1= 195
32+16+8+4 = 60
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
128 64 32 16 8 4 2 1
D7 D6 D5 D4 D3 D2 D1 D0
128 + 16 =144
4. 4
Contoh Program :
Mulai
mov al,80h
mov dx,cw
out dx,al
Putar
mov al,255
mov dx,port a
out dx,al
call delay
mov al,255
mov dx, port b
out dx,al
call delay
mov al,255
mov dx,port c
out dx,al
call delay
mov al,195
mov dx,port a
out dx,al
call delay
mov al,195
mov dx,port b
5. 5
out dx,al
call delay
mov al,195
mov dx,port c
out dx,al
call delay
mov al,60
mov dx,port a
out dx,al
call delay
mov al,60
mov dx,port b
out dx,al
call delay
mov al,60
mov dx,port c
out dx,al
call delay
mov al,144
mov dx,port a
out dx,al
call delay
6. 6
mov al,144
mov dx,port b
out dx,al
call delay
mov al,144
mov dx,port c
out dx,al
call delay
jmp putar
Jadi LED akan hidup dari kiri ke kanan ( D7-D0 ) kemudian hidupkan LED dari kiri ke
kanan dengan 2bit-2bit dilanjutkan lagi menghidupkan LED pada LED5 dan LED8
Contoh 2
Ketik Syntax berikut ini pada Notepate.
.model small
.stack 100h
.data
msg DB "AHMAD$"
.code
start:
mov ax,@data
mov ds,ax
mov ah,9
mov dx,offset msg
int 21h
mov ah,4ch
int 21h
end start
7. 7
Buka Command Prompt,kemudian ketik berikut ini :
1. C:UsersUser>
Inputkan : CD C:tasmbin
2. C:TASMBIN>
Inputkan : tasm ahmadahmad.asm
3. C:TASMBIN>
Inputkan : tlink ahmad.obj
4. C:TASMBIN>
Inputkan : ahmad
Tampilan program Command Prompt
Keterangan
Perintah model small mengindifikasikan bahwa program
menggunakan Microsoft assembler memory “small” . Direktif stack menset 100 H
(256) byte stack untuk program. Perintah .data menandai awal segmen data , dimana
variable dideklarasikan .
msg DB "AHMAD $"
Huruf DB adalah direktif define byte yang meminta assembler mengalokasikan
8. 8
serangkaian byte memori untuk data yang mengikutinya. Direcktif . code menandai
awal segmen code .
mov ax,@data
mov ds,ax
menyalin alamat segmen data ke dalam reg DS . intruksi MOV selalu mempunyai 2
operand: tujuan dan sumber.
mov ah,9
mov dx,offset msg
int 21h
menyebabkan string karakter dituliskan kekonsole. Mereka melakukannya dengan
memanggil fungsi DOS yang menampilkan string yang beralamat dalam register
DX.Nomor fungsi diletakkan dalam register AH.
mov ah,4ch
int 21h
adalah perintah untuk berhenti dan kembali ke DOS.