Bahasa assembly adalah sebuah program  yang terdiri dari instruksi-instruksi  yang menggantikan kode-kode biner  dari bahasa mesin dengan “mnemonik” yang mudah diingat. Misalnya  sebuah instruksi penambahan dalam bahasa mesin dengan kode “10110011”  yang dalam bahasa assembly dapat dibuat dalam instruksi mnemonik ADD,  sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap  instruksi membutuhkan suatu operand baik berupa data langsung maupun  suatu lokasi memori yang menyimpan data yang bersangkutan. Bahasa  assembly sering juga disebut kode sumber atau kode simbolik yang tidak  dapat dijalankan oleh prosesor, sedangkan assembler adalah suatu program  yang dapat menerjemahkan program bahasa assembly ke program bahasa  mesin. bahasa mesin adalah kumpulan kode biner yang merupakan instruksi  yang bisa dijalankan oleh komputer. Program bahasa mesin sering disebut  sebagai kode objek.
Baris-baris program yang mengandung  instruksi mesin atau pengarah assembler harus mengikuti aturan program  assembler ASM51. Masing-masing baris atas beberapa field yang  dipisahkan dengan spasi atau tabulasi adalah bagian label, bagian  mnemonic, bagian operand yang bisa lebih dari satu bagian komentar dan  diakhiri dengan END.
2.2.1    Bagian – Bagian Dari Program Assembler
Berikut ini adalah bagian – bagian dari rogram assembler yaitu:
- 1. Label
            Label merupakan  suatu simbol yang didefinisikan sendiri oleh pembuat program untuk  menandai lokasi memori pada area program. Simbol dan label adalah dua hal yang berbeda. Simbol tidak menggunakan titik dua, sedangkan label harus diakhiri dengan titik dua.
                  Contoh :
                  PAR                      EQU 500        ; “PAR” Menunjukan suatu simbol
                                                                       ; 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.
- 2. Mnenonik
            Mnemonic instruksi atau pengarah Assembler dimasukan dalam “Mnemonic field” yang mengikuti “label mnemonic”. Mnemonic instruksi misalnya ADD, MOV, INC dan lain-lain.Sedangkan pengarah Assembler misalnya ORG, EQU, DB dan lain-lain.
- 3. Operand
            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
- 4. Komentar
           Komentar harus diawali dengan  titik koma. Sub rutin dari bagian besar program yang mengerjakan suatu  operasi biasanya diawali dengan blok komentar yang menjelaskan fungsi  sub rutin atau bagian besar program tersebut.
- 5. End
            Petunjuk END merupakan kode perintah terakhir yang menunjukan batas akhir dari proses Assembly.
Instruksi yang sering digunakan dalam pembuatan program yaitu :
a.   Instruksi Aritmatik
               Instruksi aritmatik selalu melibatkan akumulator dan ada juga beberapa instruksi yang melibatkan register lain.
Berikut ini contoh instruksi–instruksi arimatika yaitu:
Tabel 2.4 Instruksi-instruksi Aritmatik
| Instruksi | Keterangan | Contoh | 
| ADD A,Rn | Menambah isi register Rn dengan isi akumulator lalu disimpan di akumulator | ADD A,R1 | 
| ADD A, direct | Menambah isi direct dengan akumulator, hasilnya disimpan di akumulator | ADD A, 30H | 
| ADD A, #data | Menambahkan immediate data ke akumulator | ADD A, #20H | 
| ADD A, @Rn | Menambahkan isi dari alamat yang ditunjuk Rn dengan akumulator | ADD A, @R1 | 
| ADDC A, #data | Menambahkan immediate data ke akumulator dengan carry | ADDC A, #20H | 
| 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 denga 1 | DEC A | 
| MUL AB | Kalikan isi A dengan isi B, low-byte disimpan pada akumulator, dan high byte pada B | MUL AB | 
| DIV AB | Bagi isi A dengan isi B. Akumulator menerima hasil integer pembagian dan B menerima integer sisanya. | DIV AB | 
- b. Instruksi Logika
               Instruksi Logika ini  dipakai untuk melakukan operasi logika, yaitu operasi AND (instruksi  ANL), operasi OR (instruksi ORL), operasi Exclusive-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.
c.   Instruksi Pemindahan Data
Instruksi – instruksi pemindahan data adalah :
Tabel 2.5 Instruksi – instruksi Perpindahan Data
| Instuksi | 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 yang ditunjuk oleh Rn | MOV A, @R0 | 
2.2.2    Mode – Mode Pengalamatan
- 1. Mode Pengalamatan Langsung
            Dalam pengalamat langsung  nilai yang akan disimpan dalam suatu memori diperoleh secara langsung  dengan mengambil dari lokasi memori yang lain.
            Contoh :
     MOV A,30H         ; isi akumulator dengan bilangan 30 heksadesimal
- 2. Mode Pengalamatan Tak Langsung
            Dalam pengalamatan tak langsung, instruksi menentukan  suatu register yang digunakan untuk menyimpan alamat operan
            Contoh :
ADD A,R         ; Tambahkan isi RAM yang lokasinya ditunjukan oleh register R1 ke akumulator.
DEC @R1        ; Kurangi satu isi RAM yang  alamatnya ditunjukan                  oleh register R1.
- 3. Mode Pengalamatan Segera
            Cara ini menggunakan konstanta.
Contoh :
            MOV A,#20H        ; isi akumulator dengan bilangan 20 heksadesimal
Data konstanta merupakan data yang  menyatu dengan instruksi, contoh intruksi diatas mempunyai arti bahwa  data konstantanya, yaitu 20H, (sebagai data konstanta harus diawali  dengan ’#’ dan tanda H untuk menyatakn format bilangan heksadesimal)  disalin ke Akumulator (A).
- 4. Mode Pengalamatan Data
            Pengalamatan data terjadi  pada sebuah perintah ketika nilai operasi merupakan alamat data yang  akan diisi atau yang akan dipindahkan.
            Contoh :
MOV P1,A            ; isi P1 dari nilai akumulator.
- 5. Mode Pengalamatan Bit
            Pengalamatan bit adalah  penunjukkan menggunakan simbol titik (.) yang menunjuk alamat lokasi  bit, baik dalam RAM internal atau perangkat keras.
            Contoh :
            SETB P1.7            ; set bit port 1.7 high ( pot 1.7 diberi nilai logika 1)




0 komentar:
Posting Komentar