Rabu, 31 Agustus 2022


Teknik Interface (Perangkat Lunak)

Gambar 43. Program Aplikasi Operasi String dengan LODSB & STOSB

 



1.      Tujuan[Kembali]

a.       Mengetahui dan memehami perintah dasar assembler

b.      Dapat mensimulasikan program aplikasi operasi string dengan LODSB & STOSB

2.     Alat dan Bahan[Kembali]

Software EMU8086

  Untuk membantu dalam memahami atau penyesuaikan alur kerja program yang diinginkan maka dapat dilakukan dengan bantuan emulator emu86. Pada emulator ini ada menu emulate untuk 16 menjalankan program dengan dua pilihan yaitu single step untuk eksekusi per baris instruksi atau Run untuk eksekusi keseluruhan instruksi sampai akhir program.

    Dalam “emu8086” terdapat beberapa menu, antara lain:

a.       Emulate : untuk menjalankan emulator kode program yang kita buat

b.   Compile : untuk membuat (compile) “binary executable file” atau ekstensi “.com” atau “.exe” dari kode program.

c.       Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).

d.  Single Step : Menjalankan aplikasi dengan cara tracing (diproses perbaris kode program).

 

3.     Dasar teori[Kembali]

A.    Teori Bahasa Assembler

Dalam bahasa tingkat rendah tidak dibutuhkan struktur program karena semuanya diserahkan kepada pemakai.

 REGISTER

Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan data. Sebagian besar register yang terdapat pada mikroprosesor 8088 adalah 16 bit. Ada 5 kelompok Register, yaitu :

·         General Purpose Register

General purpose register dapat dibagi menjadi registerlow dan high bits yang masing-masing berkemampuan 8 bit.Seperti register AX, register low-nya adalah AL dan register high-nya adalah AH.

Ada empat macam General purpose register yaitu:

Ø  Register AX (AH + AL) atau Accumulator Register adalah register aritmatik untuk dipakai dalam operasi pertambahan, pengurangan, perkalian dan pembagian. Register AH dapat juga digunakan untuk tempat nilai service number untuk beberapa interrupt tertentu.

Ø  Register BX (BH + BL) atau Base register adalah salahsatu dari dua register base Addressing mode, yang dapat mengambil atau menulis langsung dari/ke memory.

Ø  Register CX (CH + CL) atau Counter Register adalah suatu counter untuk meletakkan jumlah lompatan pada loop yang dilakukan.

Ø  Register DX (DH + DL) atau Data Register mempunyai tiga tugas, yaitu:1. Membantu AX dalam proses perkalian dan pembagian, terutama perkalian dan pembagian 16 bit. 2. DX merupakan register offset dari DS 3. DX bertugas menunjukkan nomor port pada operasi port

·         Segment Register

Ø  CS (Code Segment) Register adalah berfungsi menunjukkan segment program berada dengan pasangan register ini adalah register IP.

Ø  DS (Data Segment) Register adalah berfungsi menunjukkan segment dari segment data. Pasangan dari DS adalah DX.

Ø  SS (Stack Segment) Register adalah berfungsi menunjukkan segment dari segment stack. Pasangan dari SS adalah SP.

Ø  ES (Extra Segment) Register adalah berfungsi untuk pemograman pada saat melakukan operasi ke segment lain.

·         Pointer Register 

Berfungsi menyimpan offset dari relative address.

Ø  IP (Instruction Pointer) Register adalah berfungsi untuk menunjukkan baris perintah program. Pda saat pertama program dijalankan register ini akan langsung menunjuk pada awal program.

Ø  SP (Stack Pointer) Register adalah merupakan pasangan SS yang digunakan untuk operasi stack. Pada saat pertama program dijalankan register ini akan menunjuk pada byte terakhir stack.

Ø  BP (Base Pointer) Register adalah mempunyai fungsi samadengan register BX, tetapi BX menulis dan membaca dengan segment DS (Data Segment) sedang BP menulis dan membaca dengan segment SS (Stack Segment).

·         Index Register 

yaitu SI (Source Index) dan DI (DestinationIndex) adalah berfungsi melakukan operasi STRING. Namun demikian, kedua register ini sering digunakan untuk menulis dan membaca ke atau dari memori seperti halnya BX dan BP.

·         Flag Register 

adalah berfungsi mengecek apakah sesuatu berfungsi atau tidak. Contohnya:

Ø  Interrupt Flag mengecek apakah pada saat operasi Interrupt sedang aktif atau tidak, bila tidak aktif, Interrupt tidak akan dijalankan. 

Ø  Carry Flag mengecek apakah pada saat operasi terjadi kesalahan atau tidak.

Ø  Sign Flag menunjukkan apakah suatu bilangan bertanda atau tidak dan sebagainya

 

B.     PERINTAH DASAR ASSEMBLER

·         MOV

Perintah untuk mengisi, memindahkan, memperbaharui isi suatu register, variabel ataupun suatu lokasi memori.

Tata penulisan: MOV [operand1],[operand2]

a. Operand1 berupa register, variabel, lokasi memory dan 

b. Operand2 berupa: register, variabel, lokasi memory ataupun bilangan.

Contoh :

MOV AH,AL ; mengkopi isi register AL ke register AH.

MOV AH, 02 ; mengisi register AH dengan 02

·         Int (Interrupt)

Subrotine yang akan dipanggil sudah tersedia pada memori komputer.

Ada dua jenis yaitu :

a. Bios Interrupt yaitu Int 0H hingga 1FH yang disediakan oleh BIOS (Basic Input Output System).

Contoh: Int 16H service 01H berfungsi untuk mencek apakah ada tombol keyboard yang ditekan. 

b. DOS Interrupt yaitu Int 1FH keatas yang disediakan oleh DOS (Disk Operating System). 

Contoh: Int 20H berfungsi menghentikan kerja suatu program.

·         Int 20h dan Int 21h service 02h 

Ø  Int 20h

Bertugas memberhentikan proses komputer terhadap suatu program COM. Bila pada setiap program COM yang dibuat tidak terdapat Int 20h, maka akan terjadi hanging pada komputer. Hal ini terjadi karena komputer tidak menemukan perintah pemberhentian proses.

Ø  Int 21h Service 02

Seperti Int 20h, Int 21h adalah salah satu Int yang termasuk DOS Interrupt, karena Int 21h mempunyai banyak sekali tugas, maka tugasnya dibagi-bagi menjadi beberapa bagian. Untuk memanggil bagian-bagian itu, perlu menyertakan nomor bagiannya yang disebut juga dengan service number.

Contoh Int :

21h yang bertugas mencetak sebuah huruf ke layar yaitu fungsi kedua dari Int 21h.Untuk menjalankan fungsi Int 21h service 02 harus dipenuhi beberapa syarat yaitu :

a) Register AH, harus berisi service number dari Int 21h yang akan dijalankan (02h).

b) Register DL, harus berisi bilangan hexa dari karakter ASCII(American Standard Code forInformation Interchange) yang akan dicetak.

4.     Percobaan[Kembali]

a.    Program

b.    Penjelasan program

·         START:  JMP MULAI 

Pada baris pertama, merupakan program perintah 'JMP', dimana fungsinya adalah untuk melompat ke tempat yang ditunjukkan oleh perintah JUMP itu sendiri. Pada program ini, perintah JUMP menuju ke mulai. Setelah program baris pertama sudah dibaca, maka akan langsung melompat ke program bagaian 'Mulai'.

·         Gambar DB 

Pendefinisian data dengan ukuran satuan 1 byt.

·         MOV AX,0B800H

         MOV ES,AX 

Untuk mengcopykan isi “Sumber” ke “Tujuan”. Antara “Sumber” dan “Tujuan” harus mempunyai tipe data yang sama. dalam program bagian ini, ES mengoperasikan isi dari 0B800h tersebut ke AX.

·         MOV BX,OFFSET GAMBAR 

Mengambil pergeseran gambar.

·         XOR DI,DI 

Menggunakan operasi logika untuk membandingkan isi suatu register atau variabel. karna sama-sama DI, maka hasil yang ditampung adalah 0 sehingga offsetnya DI=0.

·         MOV AH,1FH 

Menjadi hasil run-nya berupa warna biru dan putih.

·         MOV AL,[BX] 

Menyalinkan data (offset gambar) dari BX tadi.  

·         STOSW 

Gambar yang dihasilkan tadi, akan diletakkan ke memori.

·         INC BX 

INC akan menambahkan 1 ke BX.

·         CMP AL,0   

Suatu perintah untuk membandingkan AL dengan 0.

·         JE  SELESAI 

Jika AL sudah sama dengan 0, maka running selesai.

·         JMP ULANG 

Apabila AL belum sama dengan 0,maka komputer akan meneruskan dengan perintah baris berikutnya.

·         MOV AH,4CH 

Nilai 4C dalam heksadesimal disimpan dalam register AH.

·         INT 21H  

Saat terjadi interupsi 21,PC akan melihat isi atau nilai apa yang terdapat pada register AH. Lalu, PC akan mencetak sebuah karakter, berdasarkan kode ASCII. 

c.    Hasil running program


5.     Video[Kembali]

6.     Download[Kembali]

HTML

Program LODSB & STOSB

Video

 

 

LAPORAN AKHIR M4 (PERCOBAAN 2)   [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. JURNAL 2. HARDWARE 3. GAMBAR RANGKAIAAN 4. PRINSIP KERJA 5. VID...