Skip to content


Mengubah Nama File dengan Emu8086 Mikroprosesor

Sebelumnya kita sudah mengenal apa itu instruksi Interupsi pada halaman:

Interupsi pada Mikroprosessor Emu8086

Kali ini kita akan membahas sesi TUGAS, akan tetapi silahkan Anda mencoba dulu mengetikkan soal dibawah ini:

 

  1. Ketiklah tulisan berikut pada notepad, dan simpan dengan nama bukanfilee.txt!
ini adalah kalimat yang diambil dari bukanfilee.txt

simpan pada direktori  c:\emu8086\myBuild

Ketiklah listing dibawah ini:  

MOV AL,2
LEA DX,bukanfile
MOV AH,3Dh
INT 21H
MOV handle,AX
MOV BX,handle
MOV CX,30
LEA DX,data
MOV AH,3FH
INT 21H
MOV AH,9
INT 21H

RET
bukanfile db "bukanfilee.txt", 0
handle dw ?
data db "coba baca karakter dari file! $"
  1. Emulate program
  2. Amati perubahan isi memori sebelum intruksi dieksekusi

(Keadaan memori segmen kode)

  1. Amati perubahan register pada saat program dieksekusi (setiap single step instruksi)

(Keadaan register setelah dan sebelum INT 21h pada program dieksekusi)

  1. Amati perubahan yang terjadi pada jendela “Emulator Screen” pada saat program dieksekusi?

(Catat tampilan “Emulator Screen” saat program selesai di RUN)

  1. Jelaskan tentang apa program di atas o Apa fungsi dari program diatas? o Berapa banyak instruksi yang digunakan pada program di atas?
  • Pada saat intruksi bari ke 6 dieksekusi, terjadi perubahan nilai register AX, apa penyebabnya?
  • Sub function berapa yang digunakan untuk membaca data dari file?

Pada alamat berapa data tersebut disimpan? o Apa fungsi variable handle pada program diatas?

 

TUGAS

Modifikasi program pada kegiatan 3 agar dapat mengganti nama file “bukanfilee.txt” menjadi “filebaruuuu.txt”

(CLUE: Gunakan interupsi 21h sub fuction 56h untuk mengganti nama file dan sub function 3Eh untuk menutup file)

 

PENYELESAIAN:

Lihat dulu di Emu8086 Anda, cek pada bagian HELP > Documentation and tutorials > Interupsi.

disanaa akan ada banyak sekali instruksi instruksi yang tersedia dari Interupsi.

 

LEA berfungsi untuk mendapatkan alamat OFFSET dari register yang kita tunjuk

dan penjelasan Interupsi untuk 21/56h bisa kita lihat demikian:

DS:DX menunjuk pada nama file sebelum di rename

Sedangkan ES:DI menunjuk pada nama file yang ingin kita rubah.

 

Sehingga jika kita ingin merubah nama file bukanfile.txt menggunakan interupsi 21H/56H, kita harus menempatkan DI merujuk pada data baru yang kita inginkan yaitu filebaruuuu.txt yang dideklarasi dalam dobleword (db) pada data

Sehingga bisa kita dapatkan bahwa:

DI >> data

data db “filebaruuu.txt”,0 (string)

 

Jadi untuk merubah nama file bukanfile.txt menggunakan interupsi 21h/56h menjadi filebaruuuu.txt kodenya sebagai berikut:

(Deklarasikan dalam COM)

org 100h

LEA DX,data        ;MENGAMBIL alamat offset dari /data/
MOV DI,DX          ;memindahkan isi DX ke DI
                   ;DI disini adalah sebagai yang nantinya
                   ;menjadi inputan untuk mengganti nama file
                   ;menjadi nama file yang baru
LEA DX,bukanfile   ;mengambil alamat offset dari bukanfile
MOV AH,56H         ;ubah nama file!
INT 21H            ;ambil register DI, dan 
                   ;terapkan (pengerjaan dari ah,56h)
MOV AH,3EH         ;memberhentikan pengerjaan/close file
INT 21H            ;terapkan! program berakhir

RET
bukanfile db "bukanfilee.txt", 0
data db "filebaruuu.txt",0

Ketika program tersebut di compile maka step by step yang terjadi adalah:

Disini coba fokuskan perhatian pada 2 gambar dibawah ini:

http://ibb.co/cTdfwR

http://ibb.co/jWmYGR

Dimana kedua file dirubah bukanfile.txt menjadi filebaruuuu.txt

 

Gimana, sudah cukup jelas, kan?

Posted in Computer and Electronics, Depan.

Tagged with , , , , , , , .


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Rani S says

    thanks for sharing this aricle..



Some HTML is OK

or, reply to this post via trackback.