• Tidak ada hasil yang ditemukan

PEMOGRAMAN ASSEMBLY

N/A
N/A
dennis

Academic year: 2023

Membagikan "PEMOGRAMAN ASSEMBLY"

Copied!
5
0
0

Teks penuh

(1)

PENGANTAR MIKROPROSESOR DAN BAHASA PEMROGRAMAN ASSEMBLY

Dennis Auldentio Wennas, E-mail : dennis.wenas@pln.co.id

Program Studi Teknik Elektro, Institut Teknologi PLN

Abstrak

Semakin berkembangnya teknologi pembuatan mikroprosesor dan semakin murahnya biaya produksi yang digunakan, memungkinkan para insinyur komputer untuk mengembangkan mikro komputer. Mikroprosesor tersebut juga memungkinkan pengembangan produk- produk seperti intelligent-terminal, automatic teller machine dan point of sale terminal yang biasa dipakai di took-toko retail. Mikroprosesor juga banyak digunakan sebagai rangkaian kontrol dalam industri robot, alat-alat penelitian dan peralatan-peralatan rumah sakit. Bahasa rakitan atau lebih sering dikenal dengan Bahasa Assembly adalah Bahasa pemrograman tingkat rendah yang dipakai untuk memprogram perangkat keras seperti mikroprosesor dan mikrokontroler. Bahasa ini merupakan Bahasa pemrograman yang berisi instruksi-instruksi yang diterjemahkan oleh decoder menjadi Bahasa mesin yang dimengerti oleh komputer. Di dalam penelitian ini, penulis menjelaskan terkait cara kerja mikroprosesor dan menggunakan pemrograman assembly untuk memprogram mikroprosesor, memahami fungsi dari interupsi pada mikroprosesor dan memahami cara meminta masukkan dari keyboard dan menampilkan pada layer. Metode yang digunakan dalam penelitian ini meliputi penelitian lapangan, studi pustaka dan analisis. Langkah-langkah yang dilakukan di dalam penelitian lapangan ini menggunakan komputer dan aplikasi emulator 8086 yang diujicobakan dalam 3 program.

Kata kunci: mikroprosesor, bahasa pemrograman assembly

1. Pendahuluan

Mikroprosesor adalah sebuah komponen rangkaian elektronik terpadu yang terdiri dari rangkaian aritmatik, logik dan kontrol yang diperlukan untuk menjalankan fungsi-fungsi sebuah CPU (central Processing Unit) dari sebuah computer digital. Rangkaian elektronika terpadu tersebut dapat menerjemahkan instruksi dari sebuah program serta menangani operasi aritmatik. Pada awal tahun 1980 teknologi VLSI (Very Large Scale Integration) berkembang sangat pesat dan digunakan sebagai rangkaian elektronik dalam sebuah mikroprosesor, yang mampu menggabungkan ratusan ribu komponen elektronik dalam sebuah chip yang mempunyai ukuran sama dengan chip LSI.

Dengan semakin berkembangnya teknologi pembuatan mikroprosesor dan semakin murahnya biaya produksi yang digunakan, memungkinkan para insinyur computer untuk mengembangkan mikro komputer.

Komputer semacam ini mempunyai ukuran yang lebih kecil daripada televisi portable tetapi mempunyai kemampuan hitung yang cukup baik untuk dipakai dalam bisnis,

industri dan ilmu pengetahuan.

Mikroprosesor tersebut juga memungkinkan pengembangan produk- produk seperti intelligent-terminal, automatic teller machine dan point of sale terminal yang biasa dipakai di took-toko retail. Mikroprosesor juga banyak digunakan sebagai rangkaian kontrol dalam industri robot, alat-alat penelitian dan peralatan-peralatan rumah sakit. Kemajuan teknologi tersebut juga memungkinkan mikroprosesor dipakai untuk produk- produk konsumen seperti: programmable microwave oven, televisi, game-game elektronik dan juga dalam bidang-bidang otomotif.

Bahasa rakitan atau lebih sering dikenal dengan Bahasa Assembly adalah Bahasa pemrograman tingkat rendah yang dipakai untuk memprogram perangkat keras seperti mikroprosesor dan mikrokontroler. Bahasa ini merupakan Bahasa pemrograman yang berisi instruksi- instruksi yang diterjemahkan oleh decoder menjadi Bahasa mesin yang dimengerti oleh komputer.

(2)

Pada bahasa rakitan, programmer umumnya menggunakan sebuah program utilitas yang disebut sebagai perakit ( bahasa Inggris : assembler ) yang digunakan untuk menerjemahkan kode dalam bahasa rakitan tersebut ke dalam mesin untuk perangkat keras tertentu. Sebuah perintah dalam bahasa rakitan biasanya digunakan untuk menerjemahkan sebuah instruksi mnemonic dalam kode mesin, berlainan seperti halnya dengan kompiler pada bahasa pemrograman tingkat ketinggian yang menerjemahkan perintah dalam instruksi dalam kode.

Beberapa perangkat lunak bahasa rakitan yang terkenal biasanya melahirkan tambahan fitur untuk memfasilitasi bagian pengembangan program, mengontrol bagian perakitan, dan alat bantu pengawakutuan (debugging).

Tujuan utama dalam penelitian ini adalah mampu memahami dan menjelaskan cara kerja mikroprosesor dan menggunakan pemrograman assembly untuk memprogram mikroprosesor, memahami fungsi dari interupsi pada mikroprosesor dan memahami cara meminta masukkan dari keyboard dan menampilkan pada layer.

2. Metode Penelitian

Metode yang digunakan dalam penelitian ini meliputi penelitian lapangan, studi pustaka dan analisis. Langkah- langkah yang dilakukan di dalam penelitian lapangan ini menggunakan komputer dan aplikasi emulator 8086.

3. Hasil Pembahasan

Pada penelitian ini, dimana alat dan bahan yang digunakan adalah Komputer dan Aplikasi Emu8086. Mikroprosesor adalah komponen rangkaian elektronik yang terdiri dari rangkaian arimatik, logic dan control untuk menjalankan fungsi- fungsi sebuah CPU (Central Processing Unit) dari Komputer. Komponen-

komponen yang ada pada mikroprosesor yaitu yang pertama control system dimana untuk mengatur aliran data bus, dan menghasilkan sinyal dalam mikroprosesor untuk melaksanakan instruksi yang diberikan, kemudian Arithmetic Logic Unit (ALU) berfungsi sebagai akumulator, yang ketiga adalah General purpose register sebagai penyimpanan data 8-bit dan dapat digabungkan untuk menyimpan data 16-bit.

Contohnya register AX,BX, CX dan DX, kemudian Pointer dan indeks resgiter sebagai penyimpan alamat dari mulainya sutau segmen, berikutnya Instruction queue berfungsi membantu menjalankan instruksi dari execution queue agar proses eksekusi menjadi lebih cepat, dan segment sebagai penyimpan alamat dari instruksi dan data memori pada prosesor untuk megakses lokasi memori.

Pada Mikroprosesor 8086 memakai Bahasa pemograman assembly , dimana Bahasa ini adalah Bahasa tingkat rendah untuk memprogram perangkat keras seperti mikroprosesor dan mikrokontroller yang berisi instruksi-instruksi yang diterjamahkan dan decoder menjadi Bahasa mesin supaya computer dapat mengerti Bahasa tersebut. Kemudian didalam mikroprosesor terdapat permintaan khusus untuk melakukan sesuatu yang disebut interupsi (interrupt).

Insterupsi ini akan menjalankan perintah berhenti atau bekerja tergantung yang di minta oleh programmer. Interupsi dibagi menjadi 2 yaitu BIOS dan DOS. Interupsi BIOS dimulai dari interrupt 00h-1fh(0-31) dan interupsi DOS dimulai dari interrupt 20h-FFH (32-255). Didalam kita mejalankan program ada yang disebut Input dan Output, Input adalah dari keyboard dan mouse sedangkan Output adalah tampilan pada layer monitor computer dan trasmisi data lewat port mikroprosesor.

(3)

Program 1

Pada modul ini untuk Program 1 adalah untuk mencetak Huruf “A” ke layer” , dimana disini ada .MODE SMALL, .CODE, dan .ORG 100 H ini adalah header. .MODE SMALL disebut sebagai size atau ukuran file dari program 1 ini tetapi ukuran file tersebut tidak lebih dari 64 Kb, , .CODE ini adalah perintah untuk masukkan segment dari .Code tersebut, .ORG 100 H menunjukkan dimana ketika memulai program ini dimulai dari bit 100 Hexadesimal. ORG 100 H ini sangat diperlukan untuk menjalankan program , karena ini masukkan dari Asci codes 000 sampai 225 yang dimana dimasukkan ke dalam program tersebut. Kemudian ada Label Proses ini adalah sebagai label untuk proses program tersebut. Untuk MOV AH, 02H ini Nilai 02H adalah nilai servis untuk

mencetak satu buah karakter secara otomatis menggunakan register AH, secara singkatnya Fungsi MOV ini memasukan nilai servis 02H ke dalam register AH..

Kemudian MOV DL,'A' ini adalah DL = Karakter ASCII Code yang akan dicetak atau dalam arti lain MOV disini memasukan nilai A yaitu nilai A sendiri adalah 41, bilangan Heksadesimal ke dalam register DL (41 ini adalah ASCI code dari A). INT 21H ini adalah perintah untuk mencetak Karakter dan setiap perintah mencetak karakter akan menampilkan layer hitam, disini yang dicetak adalah nilai “A”, INT 20H ini berfungsi untuk menyelesaikan program ini. Maka ketika dirunning akan tampi layer hitam dengan satu karakter bernilai A.

Program 2

Pada Program 2 adalah mencetak karakter beserta atribut, atribut yang

(4)

dicetak disini adalah warna font dan warna background. Disini menggunakan header yang sama yaitu MODE SMALL, .CODE, dan .ORG 100 H. MODE SMALL disebut sebagai size atau ukuran file dari program 1 ini tetapi ukuran file tersebut tidak boleh lebih dari 64 Kb, , .CODE ini adalah perintah untuk masukkan segment dari .Code tersebut, .ORG 100 H menunjukkan dimana ketika memulai program ini dimulai dari bit 100 Hexadesimal. MOV AH, 09H adalah mencetak dua atau lebih karakter secara otomatis, jadi dimasukan register AH ini dengan nilai servis 09 H. Kemudian MOV AL A dimana AL = Karakter yang akan dicetak, artinya MOV disini memasukan nilai A yaitu nilai A sendiri adalah 42, bilangan Heksadesimal ke dalam register AL (42 ini adalah ASCI code dari A). Setelah itu MOV BH, OOH ini adalah

penomoran pada halaman layar, kemudian MOV BL 93 H berfungsi untuk memberi Warna atau atribut dari karakter tersebut.

MOV CX,03H perintah untuk menentukan Banyaknya karakter yang ingin dicetak, jadi artinya karakter A yang akan dicetak sebanyak 3 kali, dimana nilai servis 03H di masukkan ke register CX. Intrup 10 H ini berpasangan dengan servis 09H pada program ini, karena intrup 10 H ini berfungsi untuk menambahkan variasi , atau mode video pada program ini. Maka ketika di Run akan tampil layer hitam dengan nilai A sebanyak 3 karakter sesuai perintah CX.

Untuk background karakter tersebut berwarna Light blue , pada tabel warna Light blue bernilai 9 dan warna font berwarna cyan yang nilai servisnya 3 ini dari perintah MOV BL 93 H.

Program 3

Pada Program 3 ini adalah untuk Meminta memasukkan dan menampilkan masukan. Jadi pada modul III ini adalah meminta masukkan dari keyboard dilayar hitam . Disini menggunakan header yaitu MODE SMALL, .ORG 100 H, .CODE, dan .DATA, header . DATA ini berfungsi untuk memberitahukan kepada Assembler bahwa kita akan menggunakan data, data program ini yaitu MSG 1 dan MSG 2.

MSG 1 berisi Define Bytes (DB) disini adalah suatu perintah untuk mendefinisikan suatu karakter baik berupa numerik atau teks untuk dipanggil pada

program. Tanda $ (dolar) ini adalah string, dimana string itu adalah kumpulan dari beberapa karakter. Kemudian untuk MSG 2 disini ada DB 10,13 , DB 10 disini berfungsi untuk baris baru sedangkan nilai 13 untuk meratakan pada tampilan layer pada tulisan. ENTER YOU CHACTER dan THE CHARACTER IS tidak nyambung atau ada spasi pada layer hitam.

Start disini adalah label pada program ini, kemudian tahap pertama pada MOV DX, OFFSET MSG 1 , OFFSET ini berfungsi untuk memanggil alamat data dari MSG 1.

Kemudian ada MOV AH 09H disini adalah nilai servis untuk mencetak karakter

(5)

tersebut. INT 21 H berfungsi untuk mengeksekusi perintah dari MOV AH 09H tersebut . Tahap kedua berikutnya adalah MOV AH,01 H berfungsi untuk membaca masukan 1 karakter dari keyboard dan akan menampilkan dilayar hitam dan INT 21H disini berfungsi untuk mengeksekusi MOV AH 21H . Kemudian Tahap tiga ada MOV BL, AL “MOV disini untuk menyimpan isi AL ke BL tersebut. Setelah itu ada MOV DX, OFFSET MSG 2 , OFFSET ini berfungsi untuk memanggil alamat data dari MSG 2. MOV AH, 09H adalah nilai servis untuk mencetak karakter dan ada INT 21H disini berfungsi untuk mengeksekusi MOV AH 09H dimana perintah ini mencetak “THE CHARACTER IS” pada tampilan layar.

Tahap keempat adalah MOV DL, BL

“MOV disini untuk menyimpan isi DL ke BL tersebut. Kemudian ada MOV AH, 02 H berfungsi untuk mencetak karakter tapi hanya satu karakter secara otomatis yaitu karakter A dan dengan intrupt 21H dimana untuk mencetak data pada alamat DL. Dan terakhir INT 20 H dimana untuk mengakhiri program dan menyerahkan kendali kepada DOS. Jadi ketika di running akan tampil “ENTER YOU CHACTER”

dan ketika dimasukkan karakter A akan tampil THE CHARACTER IS A” pada layer hitam.

4. Kesimpulan

Dari hasil penelitian ini dapat diperoleh kesimpulan terkait cara kerja mikroprosesor dan cara menggunakan pemrograman assembly untuk memprogram mikroporsesor. Hal yang harus diperhatikan yang ada pada mikroprosesor yaitu :

1. Control system dimana untuk mengatur aliran data bus, dan menghasilkan sinyal dalam mikroprosesor untuk melaksanakan instruksi yang diberikan,

2. Arithmetic Logic Unit (ALU) berfungsi sebagai akumulator.

3. General purpose register sebagai penyimpanan data 8-bit dan dapat digabungkan untuk menyimpan data 16-bit. Contohnya register AX,BX, CX dan DX, kemudian Pointer dan indeks resgiter sebagai penyimpan alamat dari mulainya sutau segmen, berikutnya Instruction queue berfungsi membantu menjalankan instruksi dari execution queue agar proses eksekusi menjadi lebih cepat, dan segment sebagai penyimpan alamat dari instruksi dan data memori pada prosesor untuk megakses lokasi memori.

Untuk dapat memahami fungsi dari interupsi pada mikroprosesor Insterupsi ini akan menjalankan perintah berhenti atau bekerja tergantung yang di minta oleh programmer. Interupsi dibagi menjadi 2 yaitu BIOS dan DOS. Interupsi BIOS dimulai dari interrupt 00h-1fh(0-31) dan interupsi DOS dimulai dari interrupt 20h- FFH (32-255). Selain itu untuk dapat memahami cara meminta masukkan dari keyboard dan menampilkan pada layer adalah Didalam kita mejalankan program ada yang disebut Input dan Output, Input adalah dari keyboard dan mouse sedangkan Output adalah tampilan pada layer monitor computer dan trasmisi data lewat port mikroprosesor.

5. Daftar Pustaka

1. Panduan Pengembang Perangkat Lunak Arsitektur Intel, Volume 2: Referensi Set Instruksi . PERUSAHAAN INTEL.

1999. hlm. 442 dan 35 . Diakses tanggal

18 November 2010 .

http://kelaskaryawan.untara.ac.id/

.

Referensi

Dokumen terkait

β_4 : Koefisien X_1t : Struktur modal DER X_2it : Profitabilitas ROE X_3it : Harga batubara acuan i : 2,3 data cros section perusahaan batubara yang terdaftar di BEI t : 1,2,3 data

Nayeem Arefin BSc in Electrical and Electronic Engineering Vice Chancellor's Honour List CGPA: 3.92 Spring 2019 Semester Vice Chancellor's Honour List CGPA: 3.91 Summer 2019 Semester