KATA PENGANTAR
Puji syukur Kami panjatkan kepada TUHAN
yang telah melimpahkan rahmat dan nikmat-Nya kepada kita semua sehingga kami
dapat menyelesaikan Tugas Makalah tentang Bahasa Rakitan.
Tugas Makalah Bahasa Rakitan dengan
waktu yang telah ditentukan kami bisa menyelesaikan dengan baik. Kami menyadari
sepenuhnya dalam pembuatan makalah ini masih banyak terdapat kekurangan baik
dari penggunaan kata dan bahasa yang belum memenuhi kaidah yang tepat dan baik
dari segi isi maupun penulisannya. Untuk itu kami sangat mengharapkan bantuan
kritik dan saran dari semua pihak yang bersifat membangun demi penyempurnaan
makalah ini dimasa yang akan datang.
Pada kesempatan ini kami mengucapkan
terima kasih atas segala bantuan semua pihak sehingga makalah ini dapat
terselesaikan dengan baik. Semoga makalah ini dapat bermanfaat bagi kami,
pembaca maupun pihak-pihak yang membtuhkan.
DAFTAR ISI
Kata Pengantar................................................................................................................................i
Daftar
Isi.........................................................................................................................................ii
Bahasa Rakitan...............................................................................................................................1
Modal Awal Belajar Bahasa Rakitan.............................................................................................2
a.Konversi
Bilangan..................................................................................................................3
Bagian – Bagian Dari Program Assembler………………………………………………………6
a.Instruksi
Aritmatik…………………………………………………………………………..8
b.Instruksi
Logika……………………………………………………………………………..8
c.Instruksi Pemindahan Data………………………………………………………………….8
Tahap pembuatan sebuah program assembly……………………………………………………10
Pemrograman AT89S51 Bahasa
Assembly……………………………………………………..12
a. Bahasa Assembly MCS-51………………………………………………………………...12
b.
Penggunaan Software……………………………………………………………………...12
Kesimpulan………………………………………………………………………………………15
Daftar Pustaka…………………………………………………………………………………...16
1. BAHASA RAKITAN
Bahasa
Rakitan termasuk ke dalam bahasa tingkat rendah dan merupakan bahasa
dasar
komputer. Bahasa ini memerlukan logika yang cukup rumit di samping instruksinya
yang
jauh berbeda dengan bahasa pemrograman lainnya. Program yang dihasilkan
memiliki
kecepatan
yang
paling baik. Kelebihan dari bahasa rakitan adalah :
1.
Memiliki fasilitas fungsi dan makro (ciri khas bahasa pemrograman yang
menyebabkan
pemrograman menjadi lebih mudah).
2.
Program dapat dibuat secara modular (dipecah dalam modul-modul kecil dan
dapat
diintegrasikan kembali).
3.
Ukuran program lebih kecil, sehingga lebih menghemat media penyimpan.
4.
Lebih dekat ke hardware sehingga seluruh kemampuan komputer dapat
dimanfaatkan
secara maksimal.
Bahasa rakitan merupakan
bahasa pemrograman yang posisinya di antara bahasa
pemrograman
lainnya adalah termasuk dalam bahasa pemrograman tingkat rendah karena
bahasa
ini berhubungan langsung dengan bahasa mesin. Sedangkan bahasa pemrograman
Delphi
berada di atas bahasa pemrograman rakitan, yang sering disebut OOP
(Object
Orinted
Programming).
Bahasa
mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa
dijalankan
oleh komputer. Sedangkan bahasa rakitan memakai kode mnemonic untuk
menggantikan
kode biner, agar lebih mudah diingat sehingga memudahkan penulisan
program.
Program
yang ditulis dengan bahasa rakitan terdiri dari label;
kode mnemonic dan
lainnya,
pada umumnya dinamakan sebagai program sumber (source code) yang belum
bisa
diterima oleh prosesor untuk dijalankan sebagai program tapi harus
diterjemahkan
terlebih
dahulu menjadi bahasa mesin dalam bentuk kode biner.
Jika
yang ditulis hanya bahasa rakitan saja maka biasanya program
dibuat dengan
program
editor biasa, misalnya note pad pada Windows atau sidekick pada
DOS,
selanjutnya
program sumber diterjemahkan ke bahasa mesin dengan menggunakan
program rakitan.
Hasil kerja program rakitan adalah “program objek” dan juga “rakitan
listing”. Tapi karena di sini bahasa rakitan ditulis
bersama dengan bahasa Delphi maka
program
dibuat di dalam editor milik Delphi.
Program
objek berisikan kode – kode bahasa mesin, kode – kode bahasa mesin
inilah
yang diumpankan ke memori – memori prosesor.
Perlu
diperhatikan bahwa setiap prosesor mempunyai konstruksi yang berbeda –
beda,
instruksi untuk mengendalikan masing – masing prosesor juga berbeda – beda.
Dengan
demikian bahasa rakitan untuk masing – masing prosesor juga
berbeda, yang
sama
hanyalah pola dasar cara penulisan program rakitan saja.
Dalam
bahasa rakitan program sumbernya menganut prinsip 1 baris
untuk satu
perintah,
setiap baris perintah tersebut bisa terdiri atas beberapa bagian, yaitu bagian
label,
bagian mnemonic, dan bagian operan yang bisa lebih dari satu.
Label
mewakili nomor memori program dari instruksi pada baris yang
bersangkutan,
misal pada saat menulis JUMP, label ini ditulis pada bagian operand untuk
menyatakan
nomor memori program yang dituju. Dengan demikian label selalu mewakili
nomor
memori program dan harus ditulis di bagian awal baris instruksi. Selain label
dikenal
pula symbol, yakni satu nama yang mewakili satu nilai tertentu dan
nilai yang
diwakili
bisa apa saja tidak harus nomor memori program. Cara penulisan simbol sama
dengan
penulisan label, harus dimulai di huruf pertama dari baris instruksi.
Mnemonic merupakan singkatan perintah, dikenal dua macam mnemonic,
yakni
mnemonic yang dipakai sebagai instruksi mengendalikan prosesor,
misalnya ADD,
MOV,
DJNZ dan lainnya. Ada pula mnemonic yang dipakai untuk
mengatur kerja dari
program rakitan misalnya
ORG, EQU atau DB, mnemonic untuk mengatur kerja dari
program rakitan ini
dinamakan sebagai “rakitan directive”.
Operan
adalah bagian yang letaknya di belakang bagian mnemonic, merupakan
pelengkap
bagi mnemonic. Kalau sebuah instruksi diibaratkan sebagai kalimat
perintah,
maka mnemonic merupakan
subjek (kata kerja) dan operan merupakan objek (kata benda)
dari
kalimat perintah tersebut.
2.
Modal awal belajar Bahasa Rakitan
a. Konversi Bilangan Hexadesimal,
Biner dan
Salah satu penyebab kesulitan
mahasiswa untuk mempelajari bahasa Rakitan adalah hal –
hal yang menyangkut konversi
Bilangan biner dan hexadecimal. Meskipun dianggap
sesuatu hal yang mengada – ada oleh
sebagian anda bahwa : untuk apa bilangan bilangan
direpresentasikan dengan orde yang
bermacam-macam? Yang malah menyulitkan bagi
pengguna bilangan. Sebetulnya tidak
demikian. Coba anda bayangkan bagaimana
merepresentasikan Bilangan desimal 4
(yang kita pakai sehari hari) dalam digital?
Seperti yang anda ketahui dalam
dunia digital representasi adalah 1 dan 0, karena secara fakta lebih mudah dan
tegas perbedaan antara 1 dan 0. 1 adalah on dan 0 adalah off.
Disebut sebagai biner (1 dan 0)
sehingga dari ungkapan saya diatas dapat dipahami
mengapa
biner dibutuhkan, sehingga desimal 4 adalah 100 (biner) kalau representasi pada
nyala 3 buah led maka nyala padam
dan padam. Kemudian muncul pertanyaan untuk apa
bilangan hexadesimal? Coba bayangkan
representasi bilangan desimal 65536 dalam
biner..? maka anda dapat menulis
sepanjang 16 bilangan biner. Hal ini sangat
menyulitkan kala sudah masuk dalam
pemrograman, sehingga muncul bilangan orde 16
atau hexadesimal yang berfungsi
untuk menyederhanakan penulisan (mengecilkan ukuran
representasi bilangan desimal dan
biner ) menjadi FF (hexadesimal) hanya membutuhkan
dua karakter bilangan saja. Oleh
sebab itulah mengapa biner dan hexadesimal dibutuhkan
dalam representasi bilangan.
Oleh karena itu pemahaman konversi
bilangan penting sebab penggunaan mereka
menyederhanakan lain topik kompleks
termasuk desain logika dengan aljabar boolean,
untuk
meyederhanakan representasi data.
Bab
ini mendiskusikan beberapa konsep penting mencakup konversi biner dan
hexadecimal,
sistem, organisasi data biner (bytes), sistem nomorsign dan unsign,
perhitungan,
logis, pergeseran, dan operasi rotasi pada biner, bit dan representasi data,
dan
karakter ASCII. Bab ini wajib anda kuasai, sebelum anda menguasai sistem
bilangan
dan
konversinya sebaiknya tidak melangkah ke bab berikutnya.
v BILANGAN DESIMAL
Kita
terbiasa dengan bilangan basis 10 (desimal) coba anda lihat angka ini 123
representasi
dalam bilangan basis 10 adalah seperti berikut :
1*102
+ 2*101 + 3*100 atau sama dengan
100
+ 20 + 3
kemudian
coba perhatikan bilangan ini 123,456
direpresentasikan
dalam desimal sebagai berikut
1*102
+ 2*101 + 3*100 +4*10.-1+5*10-2+6*10-3
atau
sama dengan
100
+ 20 + 3 + 0,4 + 0,05 + 0,006
v BILANGAN BINER
Sistem
komputer menggunakan bilangan biner, dioperasikan menggunakan logika biner.
Komputer
merepresentasikan nilai-nilai menggunakan dua tingkatan voltase yang pada
umumnya
0v dan + 5v. Dengan dua nilai seperti kita dapat merepresentasikan persisnya
dua
nilai-nilai berbeda. Ini bisa karena dimanapun dua nilai yang berbeda secara
absolut,
Dalam
penggunaanya kita menggunakan nilai-nilai nol dan satu.
Contoh
disini sangat mudah untuk mengkonversikan bilangan biner ke desimal. Anda
perhatikan
bilangan biner ini 110010102 direpresentasikan dengan cara seperti pada
desimal
diatas menjadi sebagai berikut :
1*27
+ 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20 sama dengan
128
+ 64 + 8 + 2
20210
Mudah
kan?
Sedangkan
untuk mengkonversi desimal ke biner agak sedikit lebih sulit, karena anda
harus
menemukan terlebih dahulu pangkat dua tertinggi berapakah yang sama dengan
atau
lebih kecil dari bilangan desimal yang akan dikonversi. Contoh anda perhatikan
bilangan
berikut : 1359 (desimal) coba kita konversikan..
-
cari nilai pangkat dua yang sama dengan atau lebih kecil dari 1359, kita ambil
misalnya
2 10 = 1024 -> lebih kecil dari 1359, kemudian
-
kita naikkan satu tingkat 2 11 = 2048 ternyata 2048 lebih besar dari 1359,
sehingga
kita pilih 2 pangkat 10 (210).
-
Kurangkan desimal yang akan dikonversi dengan nilai desimal dari pangkat
dua
yang lebih kecil dari bilangan tersebut sehingga, 1359-1024 adalah sama
dengan
335
· Cari bilangan pangkat dua yang lebih kecil atau sama dengan
335 -> 28 = 256.
· Kurangkan 335 dengan 256, 335 – 256 = 79
· Ulangi langkah keempat kita dapatkan pangkat dua yang
mendekati adalah 64 shg 79-64 = 5
· Ulangi lagi langkah sebelumnya kita dapat 4, mjd 5-4 = 1
· Dari hasil langkah langkah tersebut diatas dilengkapi sampai
nilai nomila terkecil kemudian diurutkan dan kemudian kita susun binernya
menjadi
seperti
berikut ini
· 210 28 26 24 23 22 21 dan 20 selanjutnya kita urutkan mulai
bilangan pangkat dua
terbesar
sampai yang terkecil, pangkat dua yang terepresentsi spt hitungan kita
tadi
kita urutkan dengan 1 yang terwakili dan 0 tidak terwakili menjadi urutan
bilangan
biner seperti ini : 1010101111
v BILANGAN HEXADESIMAL
Bilangan
Hexadesimal merupakan bilangan dengan orde 16, Dengan urutan
sebagai
berikut (paling kiri merupakan MSB dan paling kanan adalah LSB) :
F
E D C B A 9 8 7 6 5 4 3 2 1 0. dimana
bilangan F adalah 16 dalam orde 10 dan 1111
dalam
orde biner. Konversi bilangan dari bilangan biner ke hexadesimal sangat mudah,
bila
dibandingkan konversi dari bilangan hexadesimal ke desimal. Cara mengkonversi
bilangan
hexadesimal ke biner adalah dengan cara menguraikan bilangan bilangan
hexadesimal
tersebut empat bit empat bit sesuai dengan konversi dalam biner. Contoh
bilangan
FE16 dalam konversi biner nya adalah F menjadi 11112 dan E menjadi 00012
sehingga
FE16 = 111100012.
Cara
mengkonversi ke bilangan desimal sama dengan biner Contoh:
3A
hexa = (3 * 161) + (10 * 160)
=
48 + 10
=
58 desimal
Bahasa rakitan atau lebih umum
dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah
yang digunakan dalam pemrograman komputer,mikroprosesor, pengendali mikro dan perangkat
lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi
atas kode mesin dalam
bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia.
Berbeda halnya dengan bahasa-bahasa
tingkat tinggi yang berlaku umum, bahasa
rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis
arsitektur komputer tertentu. Dengan demikian, portabilitas bahasa rakitan
tidak dapat menandingi bahasa-bahasa lainnya yang merupakan bahasa pemrograman
tingkat tinggi. Namun demikian, bahasa rakitan memungkinkan programmer
memanfaatkan secara penuh kemampuan suatu perangkat
keras tertentu yang biasanya tidak
dapat ataupun terbatas bila dibuat dengan menggunakan bahasa pemrograman
tingkat tinggi.
3. 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 labeladalah dua hal
yang berbeda. Simbol tidak menggunakan titik dua, sedangkanlabel harus
diakhiri dengan titik 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-bytedisimpan
pada akumulator, dan highbytepada 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)
4. Tahap pembuatan
sebuah program assembly
1. Masuk ke under Dos melalui klik starmenu, klik run ketikkan cmd
atau dari start -> program -> acssessoris -> Command Promt
2. Ketikkan cd\ maka anda akan di bawa ke drive C, lalu pastikan di drive C anda telah tersedia folder TASM yang berisi software tasm dan tlink
3. Ketikkan Cd Tasm, maka sekarang anda sudah berada pada folder tasm
4. Pada posisi C:/Tasm> ketikkan “notepad namafile.asm”, dengan begitu maka akan terbuka sebuah window notepad yang bernama “namafile.asm” yang siap ditulisi program
Mulailah menuliskan sebuah program yang ingin anda buat, ada dua jenis program assembly yang bisa anda gunakan dan terapkan saat menulis program yaitu program COM dan program EXE, perbedaan dari keduannya adalah sebagai berikut
* PROGRAM COM :
- Lebih pendek dari file EXE
- Lebih cepat dibanding file EXE
- Hanya dapat menggunakan 1 segmen
- Ukuran file maksimum 64 KB (ukuran satu segment)
- sulit untuk mengakses data atau procedure yang terletak pada segment yang lain.
-100h byte pertama merupakan PSP(Program Segment Prefix) dari program
tersebut.
- Bisa dibuat dengan DEBUG
* PROGRAM EXE :
- Lebih panjang dari file COM
- Lebih lambat dibanding file COM
- Bisa menggunakan lebih dari 1 segmen
- Ukuran file tak terbatas sesuai dengan ukuran memory.
- mudah mengakses data atau procedure pada segment yang lain.
- Tidak bisa dibuat dengan DEBUG
contoh listing program yang di tulis pada notepad dengan tipe program EXE, listingnya adalah sebagai berikut
.model small ;merupakan besar memory(pilihannya yaitu ukuran tiny menggunakan 1 segment ( 64KB),small menggunakan data dan code <64KB,medium menggunakan data<64KB dan code >64KB, dan compact menggunakan Data > 64 KB serta Code < 64 KB .stack 100 ;register SS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack .data dataku db “Sistem Informasi” ;menulis karakter yang akan ditampilkan .code ;mulai menulis kode program proses: mov ax,@data ;mengambil segment data mov ds,ax xor bx,bx mov cx,16 ;tampat meletakkan jumlah karakter ulang: mov dl,dataku[bx] ;mengambil karakter dari db mov ah,02 ;servis 02 int 21h ;memprint caracter inc bx ;perintah mengulang loop ulang ;perintah pengulangan mov ax,4c00h int 21h ;menampilkan seluruh karakter end proses ;mengakhiri program Setelah itu simpan progam yang anda buat File> save
* Mulai compile file anda dengan cara :
Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm namafile.asm”
* Kemudian ketikan “Tlink namafile.obj”
* Lalu” dir namafile.*”
* Langkah terakhit tuliskan “Namafile” kemudian enter
Diatas merupakan salah satu contoh program EXE yang bertujuan menampilkan karakter yang anda inputkan. Sehingga pada gambar di atas bias anda perhatikan bahwa character ”sistem informasi ” yang kita inputkan telah berhasil dijalankan
Selanjutnya kita akan mencoba membuat program sederhana selanjutnya tapi sekarang dengan tipe program COM
tidak jauh beda saat menjalankannya dengan program EXE yaitu membuat satu lagi file notepad yang saya berinama “com.asm”.
* Setelah itu simpan progam yang anda buat File> save
* Mulai compile file anda dengan cara :
Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm com.asm”
* Kemudian ketikan “Tlink/t com.obj”
* Lalu” dir com.*”
* Langkah terakhit tuliskan “com” kemudian enter
Listing program pada program COM dan EXE memiliki perbedaan mencolok hanya pada segment saat menjalankan program seperti pada stack dan org100 yang memiliki fungsi yang sama hanya saja segment saat menjalankannya yang berbeda.
1. Masuk ke under Dos melalui klik starmenu, klik run ketikkan cmd
atau dari start -> program -> acssessoris -> Command Promt
2. Ketikkan cd\ maka anda akan di bawa ke drive C, lalu pastikan di drive C anda telah tersedia folder TASM yang berisi software tasm dan tlink
3. Ketikkan Cd Tasm, maka sekarang anda sudah berada pada folder tasm
4. Pada posisi C:/Tasm> ketikkan “notepad namafile.asm”, dengan begitu maka akan terbuka sebuah window notepad yang bernama “namafile.asm” yang siap ditulisi program
Mulailah menuliskan sebuah program yang ingin anda buat, ada dua jenis program assembly yang bisa anda gunakan dan terapkan saat menulis program yaitu program COM dan program EXE, perbedaan dari keduannya adalah sebagai berikut
* PROGRAM COM :
- Lebih pendek dari file EXE
- Lebih cepat dibanding file EXE
- Hanya dapat menggunakan 1 segmen
- Ukuran file maksimum 64 KB (ukuran satu segment)
- sulit untuk mengakses data atau procedure yang terletak pada segment yang lain.
-100h byte pertama merupakan PSP(Program Segment Prefix) dari program
tersebut.
- Bisa dibuat dengan DEBUG
* PROGRAM EXE :
- Lebih panjang dari file COM
- Lebih lambat dibanding file COM
- Bisa menggunakan lebih dari 1 segmen
- Ukuran file tak terbatas sesuai dengan ukuran memory.
- mudah mengakses data atau procedure pada segment yang lain.
- Tidak bisa dibuat dengan DEBUG
contoh listing program yang di tulis pada notepad dengan tipe program EXE, listingnya adalah sebagai berikut
.model small ;merupakan besar memory(pilihannya yaitu ukuran tiny menggunakan 1 segment ( 64KB),small menggunakan data dan code <64KB,medium menggunakan data<64KB dan code >64KB, dan compact menggunakan Data > 64 KB serta Code < 64 KB .stack 100 ;register SS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack .data dataku db “Sistem Informasi” ;menulis karakter yang akan ditampilkan .code ;mulai menulis kode program proses: mov ax,@data ;mengambil segment data mov ds,ax xor bx,bx mov cx,16 ;tampat meletakkan jumlah karakter ulang: mov dl,dataku[bx] ;mengambil karakter dari db mov ah,02 ;servis 02 int 21h ;memprint caracter inc bx ;perintah mengulang loop ulang ;perintah pengulangan mov ax,4c00h int 21h ;menampilkan seluruh karakter end proses ;mengakhiri program Setelah itu simpan progam yang anda buat File> save
* Mulai compile file anda dengan cara :
Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm namafile.asm”
* Kemudian ketikan “Tlink namafile.obj”
* Lalu” dir namafile.*”
* Langkah terakhit tuliskan “Namafile” kemudian enter
Diatas merupakan salah satu contoh program EXE yang bertujuan menampilkan karakter yang anda inputkan. Sehingga pada gambar di atas bias anda perhatikan bahwa character ”sistem informasi ” yang kita inputkan telah berhasil dijalankan
Selanjutnya kita akan mencoba membuat program sederhana selanjutnya tapi sekarang dengan tipe program COM
tidak jauh beda saat menjalankannya dengan program EXE yaitu membuat satu lagi file notepad yang saya berinama “com.asm”.
* Setelah itu simpan progam yang anda buat File> save
* Mulai compile file anda dengan cara :
Pada CMD setelah masuk pada C:\tasm> mulai dengan menulis “Tasm com.asm”
* Kemudian ketikan “Tlink/t com.obj”
* Lalu” dir com.*”
* Langkah terakhit tuliskan “com” kemudian enter
Listing program pada program COM dan EXE memiliki perbedaan mencolok hanya pada segment saat menjalankan program seperti pada stack dan org100 yang memiliki fungsi yang sama hanya saja segment saat menjalankannya yang berbeda.
|
5. 5. Pemrograman
AT89S51 Bahasa Assembly
|
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
a.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)
b.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.
Berikut beberapa
cara penggunaan software.
1. User dapat
membuat program sistem single file maupun proyek (beberapa
file). Klik menu File lalu pilih New File.
2. Ketik
program di window editing. Software menyediakan syntax highlighting
otomatis, sehingga tiap assembly directive akan diberi warna ungu dan
tiap instuksi akan diberi warna biru.
![]()
3. User dapat
langsung mengcompile program dengan sekali klik icon Build (F9).
Ketika ada kesalahan maka user dapat langsung ditunjukkan letak dan
jenis kesalahan.
![]()
4. User dapat
melakukan simulasi software untuk melihat hasil kerja
program. Klik IDE mode (F2).
5. User dapat
melakukan debugging, bahkan melihat hasil eksekusi per
step (per baris)terhadap kondisi-kondisi register dan memori di
mikrokontroler. Klik Step Into (F8).
![]()
Selanjutnya
user dapat melakukan download program ke IC mikrokontroler untuk menguji
hasilnya secara real di hardware.
|
KESIMPULAN
Bahasa rakitan bahasa pemrograman tingkat rendah
yang digunakan dalam pemrograman komputer, mikroprosesor, pengendali mikro, dan perangkat
lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi
atas kode mesin dalam
bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia.
Berbeda halnya denganbahasa-bahasa
tingkat tinggi yang berlaku umum, bahasa rakitan biasanya mendukung secara spesifik
untuk suatu ataupun beberapa jenis arsitektur komputer tertentu.
DAFTAR PUSTAKA

15.21
Adnan Julianto






1 komentar:
yuhuuu...bermanfaat sekali
Solder infrared
Posting Komentar