BERBAGILAH DALAM HAL KEBAIKAN TERMASUK ILMU WALAU CUMA SETITIK....

6/04/2010

Belajar Assembler

ASM 51


ASM51 itu adalah sebuah kompiler untuk bahasa asembly untuk keluarga 8051. jadi asm 51 sebagai compiler.

compiler maksudnya ?
compiler disini berarti bertujuan untuk mengubah bahasa mesin yang ditulis di textpad/notepad/text editor. yang disave dalam betuk namafile.asm di kompile menjadi file bahasa mesin .Hex

.ASM tidak sama dengan .HEX ?
Asembly (asm) tidak sama dengan bahasa mesin (HEX)
sejarahnya dimulai ketika perangkat elektronik atau ic hanya dapat mengetahui nilai 1 dan 0.
1 = keadaan ada listrik
0 = keadaan tidak ada listrik.

untuk memerintah sebuah prosesor / micro controller yang didalamnya terdiri dari rangkaian rangkain elektronik maka hanya tahu kondisi listrik mengalir dan listrik tidak mengalir.

jadi kompiler adalah sebagai jembatan. menghubungkan program kita ke bahasa mesin. karena format bahasa mesin haruslah nilai 1 dan 0.
jadi sebelum belajar asembly coba kenali :

bilangan biner : 0 1
bilangan octal : 0 1 . . . 7
bilangan hexadecimal : 0 1 2 3 4 5 6 7 8 9 A B C D E F


jadi instruksi atau perintah yang kita tulis harus diubah menjadi 1010.atau namanya opcode.(operation code)

setiap instruksi harus punya kode unik jadi tidak tertukar. karena instruksi perintah harus digambarkan dnegan bahasa biner juga.


misalkan
CPL A => 0pcodenya F4
mov P0,A => opcodenya F580
mov P0,#FFh => F580FF


nah yang di download / di burn / di insert ke mcs.
nah sekarang kenapa kita tidak menggunakan perintah F8, F4 E4, dll seperti itu, yah kerana manusia terbatas mengingat sesuatu. kita gunakan saja mnemonic. yang akhirnya menjadi bahasa rakitan. seprti mov, inc, dec, mul, div, cmp, jb,
semuanya lebih mudah diningat. seperti alamat website yang dulunya adalah kode ip yang harus diingat.


ok sekarang dalam asm51 sebuah program compiler berbasiskan dos. jadi dia tidak ada windown atau GUI gitu.

tidak banyak menu. cukup enter lalu masukan nama file.
kemudian dia akan menggenerate dua buah file.

misal
A.asm => A.LST , A.Hex


.lst untuk melihat letak memori dan program
.hex murni bahasa mesinnya.


untuk simulasi kita dapat menggunakan FSIM.
cara menggunakanya adalah dengan mendrag .hex ke program tersebut. tekan kiri dengan muse file drag ke program. otomatis akan muncul layar. disana kita bisa melihat isi memori registe serta PC yang ada di mcs, serta output dari masing masing port


dalam memakai compiler ini kita disertakan include file yaitu

MOD52 untuk keluarga 89X52
MOD51 untuk keluarha 89X51

apa sih tujuan file diatas? tujuanya adalah supaya alamat alamat memori yang digunakan tepat. seperti untuk mengakses port kita perlu mengakses nilai memori

seperti
mov P0,#00h
mov 080H,#00h

alamat P0 = #00h

untuk lebih lengkapn dapat membukan file MOD52 dengan textpad


format program dnegan compiler ini



;=====================================================

$object ; menghasilkan .hex
$mod52 ; keluarga 8952

org 00h
ajmp start


start:

mov P0,#55H ;Port 0 = 0 1 0 1 0 1 0 1
ajmp $

END ;akhir program

;=====================================================

tujuan program diatas hanya membuat port 0 mengeluarkan logic MSB 0101 0101 LSB


akan menghasilkan

FILE LST
;=================================================== PAGE 1

1 $object ; menghasilkan .hex
2 $mod52 ; keluarga 8952
3
0000 4 org 00h
0000 0102 5 ajmp start
6
7
0002 8 start:
9
0002 758055 10 mov P0,#55H ;Port 0 =
0005 0105 11 ajmp $
12
13 END ;akhir program

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
PAGE 2

P0 . . . . . . . . . . . . . D ADDR 0080H PREDEFINED
START. . . . . . . . . . . . C ADDR 0002H
;=======================================================


dan

FILE HEX
;===============================
:0700000001027580550105A6
:00000001FF



file hex itu lah yang akan di burn di microntroler.
kalau mau coba simulasi silahkan masukan ke FSIM. drag file hex ke file fsim. samapai terbuka window baru dan tekan F3 untuk run

 bisa dilihat di kiri bawah P0 bernilai 55 artinya port 0 bernilai 55 Share

1 comment: