Anda di halaman 1dari 7

TUGAS ASSEMBLY LANGUAGE

NAMA : ANNISA RIZKI RAMADHANI


NO BP : 1911011001
KELAS : 1A D-4 T. ELEKTRONIKA INDUSTRI
PEMBIMBING : DEDI KURNIADI

POLITEKNIK NEGERI PADANG


2019/2020
1. PENGERTIAN BAHASA ASSEMBLY
Bahasa pemrograman generasi kedua adalah bahasa assembly. Bahasa rakitan
(bahasa Inggris: assembly language) adalah bahasa pemrograman komputer
tingkat rendah. Bahasa assembly merupakan notasi untuk bahasa mesin yang
dapat dibaca oleh manusia dan berbeda-beda tergantung dari arsitektur
komputer yang digunakan.
Berbeda dengan bahasa pemrograman tingkat tinggi, bahasa assembly atau
rakitan biasanya memiliki hubungan 1-1 dengan instruksi bahasa mesin.
Misalnya, tiap julukan (mnemonic) yang ditulis di program dengan bahasa
rakitan akan diterjemahkan menjadi tepat satu kode operasi yang dapat
dimengerti langsung oleh komputer. Pada bahasa tingkat tinggi, satu perintah
dapat diterjemahkan menjadi beberapa kode operasi dalam bahasa mesin. Proses
pengubahan bahasa rakitan ke bahasa mesin dilakukan oleh assembler, dan
proses balikannya dilakukan oleh disassembler.
Setiap arsitektur komputer memiliki bahasa mesin yang berbeda-beda sehingga
bahasa rakitannya pun berbeda-beda.(dna)
Pemrograman AT89S51 bahasa Assembly
Bahasa Assembly adalah bahasa pemrograman tingkat rendah. Dalam
pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis yang pertama
adalah bahasa pemrograman tingkat tinggi (high level language) dan jenis yang
kedua adalah bahasa pemrograman tingkat rendah (low level language).
Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia yaitu
bagaimana agar pernyataan-pernyataan yang ada dalam program mudah ditulis
dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih
berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung
mengintepretasikan pernyataan-pernyataan program.
Kelebihan Bahasa Assembly:
1. Ketika di-compile lebih kecil ukuran
2. Lebih efisien/hemat memori
3. Lebih cepat dieksekusi
Kesulitan Bahasa Assembly:
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
dibanding bahasa tingkat tinggi
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu
banyak
3. Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis

BAHASA ASSEMBLY MCS-51


Dalam program bahasa assembly terdapat 2 jenis yang kita tulis dalam program
yaitu:
1. Assembly Directive (yaitu merupakan kode yang menjadi arahan bagi
assembler/compiler untuk menata program)
2. Instruksi (yaitu kode yang harus dieksekusi oleh CPU mikrokontroler)
Klik disini untuk melihat daftar Assembly Directive dan Instruksi MCS-51.

PENGGUNAAN SOFTWARE
Software untuk membantu memprogram mikrokontroler MCS-51 sudah banyak
tersedia. Untuk mempermudah maka dapat dipilih software yang merupakan
Integrated Development Environment (IDE) yaitu software yang merupakan
editor sekaligus compiler. Bahkan juga ada yang sekaligus debugger dan
simulator. Salah satunya yang digunakan pada training di PRASIMAX adalah
Read51.

Daftar Assembly Directive


Assembly Directive Keterangan
EQU Pendefinisian konstanta
DB Pendefinisian data dengan ukuran satuan 1 byte
DW Pendefinisian data dengan ukuran satuan 1 word
DBIT Pendefinisian data dengan ukuran satuan 1 bit
DS Pemesanan tempat penyimpanan data di RAM
ORG Inisialisasi alamat mulai program
END Penanda akhir program
CSEG Penanda penempatan di code segment
XSEG Penanda penempatan di external data segment
DSEG Penanda penempatan di internal direct data segment
ISEG Penanda penempatan di internal indirect data segment
BSEG Penanda penempatan di bit data segment
CODE Penanda mulai pendefinisian program
XDATA Pendefinisian external data
DATA Pendefinisian internal direct data
IDATA Pendefinisian internal indirect data
BIT Pendefinisian data bit

2. KEGUNAAN BAHASA ASSEMBLY


Fungsi bahasa pemrograman yaitu memerintah komputer untuk mengolah
data sesuai dengan alur berpikir yang kita inginkan. Keluaran dari bahasa
pemrograman tersebut berupa program/aplikasi. Contohnya adalah program
yang digunakan oleh kasir di mal-mal atau swalayan, penggunaan lampu lalu
lintas di jalan raya, dll.
Bahasa Pemrograman yang kita kenal ada banyak sekali di belahan dunia,
tentang ilmu komputer dan teknologi dewasa ini. Perkembangannya mengikuti
tingginya inovasi yang dilakukan dalam dunia teknologi. Contoh bahasa
pemrograman yang kita kenal antara lain adalah untuk membuat aplikasi game,
antivirus, web, dan teknologi lainnya.
Bahasa pemrograman komputer yang kita kenal antara lain adalah Java,
Visual Basic, C++, C, Cobol, PHP, .Net, dan ratusan bahasa lainnya. Namun
tentu saja kebutuhan bahasa ini harus disesuaikan dengan fungsi dan perangkat
yang menggunakannya.
Secara umum bahasa pemrograman terbagi menjadi 4 kelompok, yaitu :
· Object Oriented Language (Visual dBase, Visual FoxPro, Delphi, Visual C)
· High Level Language (seperti Pascal dan Basic)
· Middle Level Language (seperti bahasa C), dan
· Low Level Language (seperti bahasa Assembly)

3. CONTOH BAHASA ASSEMBLY

Berikut ini contoh program menggunakan Bahasa Assembly


.MODEL SMALL
.CODE
ORG 100H
  
AWAL:   
    MOV CL,30H                                   
    JMP PROSES
    KAL0 DB 'Ketikkan satu kalimat:$'
    KAL1 DB 13,10,'Kalimat yang diinput adalah:$'
    KAL2 DB 13,10,'Cetak dari belakang:$',13,10 
    KAL3 DB 13,10,'panjang string adalah:$'
    KALX DB 13,10,'$'
    KAL4 DB 13,10,'Jumlah Huruf Vokal:$' 
    KAL5 DB 13,10,'Jumlah Huruf Konsonan:$'
    KATA DB 20,?,20 DUP (?)                  
    

   
VOKAL:  INC CL                   
        JMP PLUS                       
       

                         
PROSES:           
    ;============= CETAK STRING ================
   
    MOV AH,09H
    MOV DX,OFFSET KAL0
    INT 21H 
   
   
    ;============= INPUT STRING ================
   
    MOV AH,0AH
    LEA DX,KATA
    INT 21H
   
    ;============= CETAK STRING ================
   
    MOV AH,09H
    MOV DX,OFFSET KAL1
    INT 21H
   
    ;============ CETAK VARIABEL STRING DG MODEL
COMPARASI ==========
   
    MOV BX,OFFSET KATA+2       
   
   
CETAK:
    MOV DL,[BX]                   
    CMP DL,0DH                   
    JE BELAKANG                   
       
    MOV AH,02H
    INT 21H
   
        CMP DL,'a'
        JE VOKAL  
        CMP DL,'i'
        JE VOKAL
        CMP DL,'u'
        JE VOKAL
        CMP DL,'e'
        JE VOKAL
        CMP DL,'o'
        JE VOKAL
        CMP DL,'A'
        JE VOKAL
        CMP DL,'I'
        JE VOKAL
        CMP DL,'U'
        JE VOKAL
        CMP DL,'E'
        JE VOKAL
        CMP DL,'O'
        JE VOKAL
       
PLUS:INC BX
     JMP CETAK   
  
    ;============= CETAK KATA DARI BELAKANG
==================

BELAKANG:MOV AH,09H
         MOV DX,OFFSET KAL2
         INT 21H  
         MOV AH,09H
         MOV DX,OFFSET KALX           
         INT 21H                    

CETAK1:   
    MOV DL,[BX]                   
    CMP DL,KATA+1               
    JE VOKAL1                  
                    
    MOV AH,02H   
    INT 21H
    DEC BX
    JMP CETAK1
     
           
    ;============ CETAK JUMLAH VOKAL ================
   
VOKAL1:
    MOV AH,09H
    MOV DX,OFFSET KAL4
    INT 21H
   
    MOV DL,CL
    ;ADD DL,30H
    MOV AH,02H
    INT 21H
   
                  
    ;============ CETAK JUMLAH KONSONAN ===============
   
KONSONAN:
    MOV AH,09H
    MOV DX,OFFSET KAL5
    INT 21H
  
    MOV BX,OFFSET KATA+1       
    MOV DL,[BX]                
    ADD DL,30H                   
    SUB DL,CL                   
    ADD DL,30H                   
    MOV AH,02H
    INT 21H 
   
   
    ;============= CETAK PANJANG STRING ================
   
AKHIR:
    MOV AH,09H
    MOV DX,OFFSET KAL3
    INT 21H
   
    MOV BX,OFFSET KATA+1
    MOV DL,[BX]
    ADD DL,30H
    MOV AH,02H
    INT 21H 
           
SELESAI:
    INT 20H
   
END AWAL

Anda mungkin juga menyukai