Bahasa assemler

8

Click here to load reader

Transcript of Bahasa assemler

Page 1: Bahasa assemler

1

TUGAS

BAHASA ASSEMBLER

Oleh :

Nama : Hamdan PaliwangNPM : 121055520112005Kelas : Info IIIJurusan : Komputasi

PROGRAM STUDI TEKNIK INFORMATIKAFAKULTAS TEKNIK

UNIVERSITAS MUHAMMADIYAH MALUKU UTARATERNATE

2015

Page 2: Bahasa assemler

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.

Page 3: Bahasa assemler

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

Page 4: Bahasa assemler

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

Page 5: Bahasa assemler

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

Page 6: Bahasa assemler

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

Page 7: Bahasa assemler

7

Buka Command Prompt,kemudian ketik berikut ini :

1. C:\Users\User>

Inputkan : CD C:\tasm\bin

2. C:\TASM\BIN>

Inputkan : tasm ahmad\ahmad.asm

3. C:\TASM\BIN>

Inputkan : tlink ahmad.obj

4. C:\TASM\BIN>

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

Page 8: Bahasa assemler

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.