Kemarok Belajar

Sekilas Assembler

.

Pada komputer pertama kali dirancang, programmer hanya sebagai pernacangan komputer. Bahasa yang dipakai adalah bahasa yang paling rendah levelnya (low level language), atau yang sering kita sebut sebagai bahasa mesin.

Mengapa disebut bahasa mesin, karena instruksinya menggunakan deretan bit 0 dan 1 sebagai fungsi sebenarnya dari cara kerja komputer, dan itu pasti akan menyulitkan manusia untuk menginstruksikan data yang berbentuk deretan 0 dan 1.

Bahasa Assembler adalah bahasa mesin yang dikodekan dalam bentuk symbol yang punya makna seperti bahasa level tinggi. Bentuk simbolik ini disebut sebagai MNEMONIC, sebagai contoh perintah untuk mengisi register AH dengan nilai 2, sedangkan kode mesinnya ialah : 1011 1000 0000 0010, kalau dalam heksa desimal ditulis sebagai : B4 02. dalam Assembler, MNOMENICnya ditulis sebagai : MOV AH,02 atau mengisi registrasi AH dengan nilai 2.

Sebenarnya bahasa Assembler ini menggunakan bahasa inggris yang disingkat seperti : MOV untuk move, MUL untuk multiply, DIV untuk division, INC untuk increment, dll.

Sistem Bilangan Hexa Desimal

Bahasa mensin sebenarnya kode bahasa dalam bentuk bilangan biner. Sudah pasti kita akan kesulitan untuk menggunakan bilangan biner yang simbolnya sangat terbatas 0 dan 1. Untuk mengatasi masalah tersebut maka bilangan biner dikonversikan kedalam bilangan Heksa Desimal, yaitu system bilangan yang menggunakan 16 bilangan pokok. Bilangan heksa juga meringkas bilangan biner karena 1 digit bilangan heksa mewakili 4 digit bilangan biner.

Berikut adalah table konversi bilangan Desimal, Biner, dan Heksa Deksa Desimal

Desimal

Biner

Heksa Desimal

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

Jika suatu kode Assembler INT 20 yang memiliki kode mesin AC09, maka kode sebenarnya yang dibaca mesin ialah : 1010 1100 0000 1001.

A C 0 9

Label

Label bisa didefenisikan sebagai ketentuan akhir dari nama label tersebut harus berupa tanda titik dua (:).

contohnya : - Huruf : A..Z (Huruf besar atau kecil disamakan)

- Angka : 0..9

- Karakter khusus : @ . _ $

Pemberian pada label tidak boleh ada tanda spasi dan tidak boleh didahului oleh angka. Assembler hanya membaca 31 karakter untuk pemberian nama label.

Contohnya : Mulai : MOV BX,7.

Komentar

Cara memberikan komentar pada program ialah dengan memberikan tanda titik koma (;), berarti apapun yang ditulis setelah pemberian symbol komentar tersebut dan masih dalam baris yang sama program tidak akan mengkompailnya.

Contohnya : Mulai : BX,7 ; berikan nilai 7 pada BX.

Perintah MOV

MOV berfungsi untuk mengkopi nilai atau angka menuju kesuatu registrasi, variable, dan juga memori. Cara penulisannya : MOV tujuan, asal

Contohnya : MOV AL,9 ; masukkan nilai 9

MOV AH,AL ; nilai AL = 9 dan AH dan AH = 9

MOV AX,9 ; AX=AH+AL hingga AH = 0 dan AL := 9

Makin bingung…?tenang , neh penjelasannya bro..!!

Pada baris pertama register AL diberikan nilai 9, kemudian pada baris kedua regirter AL dicopy ke register AH, maka sekarang nilai AH menjadi 9, dan pada baris ketiga register AX diberi nilai 9. AX adalah gabungan dari AH dan AL, maka register AH nilainya menjadi 0, sedangkan AL tetap bernilai 9.

Program Turbo Assembler

Compiler

Setelah anda membuat program assembler maka harus di save terlebih dahulu dengan ekstensi asm. Sebelum anda mengcompil file yang baru dibuat, terlebih dahulu file yang anda save dengan ekstensi ASM harus di buat kedalam file objek dengan ekstensi OBJ. langsung aja kita kecontohnya :

Misal ada file LATIHAN.ASM dirubah menjadi file objek dengan menggunakan file TASM.EXE dengan mengetikkan(mengcompilnya menggunakan layer command prompt) :

C:\> tasm latihan

Turbo Assembler Version 2.0 Copyright (c) 1988, 1990 Borland International

Assembling file: LATIHAN.ASM

Error messages: None

Warning messages: None

Passes: 1

Remaining memory: 443k

Linking

File objek yang dibentuk dengan TASM tersebut belum bisa di eksekusi. Agar dapat di eksekusi maka file objek tersebut di buat menjadi file dengan ekstensi COM atau EXE dengan cara menggunakan TLINK.EXE. Contoh pembuatan EXE :

C:\>TLINK LATIHAN

Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International

Jika ingin dibuat kedalam COM, caranya :

C:\>TLINK/T LATIHAN

Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International

Perbedaan program COM dengan EXE

Program COM

Program EXE

-Lebih pendek

-Lebih cepat

-Hanya dapat menggunakan 1 segmen

-Ukuran maksimumnya 64 KB (1 segmen)

-Sulit untuk mengakses data atau procedure yang terletak pada segmen lain

-100 byte pertama merupakan PSP (program Segmen Prefix) dari program tersebut

-Bisa dibuat dengan DEBUG

-Lebih panjang

-Lebih lambat

-Bisa mneggunakan lebih dari 1 segmen

-Ukuran file tidak terbatas

-Mudah mengakses data atau procedure yang terletak pada segmen lain

-Tidak bisa dibuat dengan DEBUG

Gaya Penulisan Turbo Assembler

Assembly bersifat tidak case sensitive yang berarti programmer bebas menggunakan huruf capital ataupun non capital dalam menuliskan programnya.

TITLE Nama_Program

Nama_Segment SEGMENT

ASSUME CS : Nama_Segment

ORG 100H

Label_1 : JMP Label_1

; Tempat defini label

; …..

Label_2 : ;……

; disini ditulis programnya / main program

;……..

INT 20H ; program terminate (akhir program)

Nama_Segment ENDS

END Label_1

Biar lebih jlas lagi…

Contoh program

TITLE coba ; judul program

kodeku SEGMENT ; nama segment

ASSUME CS : kodeku

ORG 100h ; alamat awal program

mulai : MOV AH,02h ; service cetak program

MOV DL,41h ; tampung symbol ASCII

INT 21h ; servis cetak karakter

INT 20h ; keluar program

kodeku ENDS ; akhir segment

END mulai ; akhir program

Hasil Eksekusi

A

2 komentar:

Anonim mengatakan...

01010101010
01010001010
01010100111
01010101010

->>>>> buffer overflow ...

POKJA PSG SMK PGRI 2 JOMBANG mengatakan...

tlg bantuin buat program yang bisa menampilkan bilangan pecahan. soalnya begini: misalnya di sintaksnya ada operasi pembagian 10/4
maka outputnya 2,5.
please...
kitioyi@gmail.com

 
Created By Kemarok Belajar