1. Tujuan[kembali]
- Memahami dan mengerti penggunaan bahasa assembler dengan emu8086
- Dapat membuat sebuah program aplikasi menggunakan emu 8086
- Mampu membuat program instruksi OR
2. Alat dan Bahan[kembali]
1. Alat
- Emulator 8086
- Emulate : untuk menjalankan emulator kode program yang kita buat
- Compile : untuk membuat (compile) “binary executable file” atau ekstensi “.com” atau “.exe” dari kode program.
- Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).
- Single Step : Menjalankan aplikasi dengan cara tracing (diproses perbaris kode program)
3. Dasar Teori[kembali]
Dalam bahasa tingkat rendah tidak dibutuhkan struktur program karena semuanya diserahkan kepada pemakai.
General purpose register dapat dibagi menjadi register low 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:
a. Register AX (AH+ AL) atau Accumulator Register adalah register aritmatik untuk dipakai dalam operasi pertambahan, pengurangan, perkalian dan pembagian. Register AH digunakan untuk tempat nilai service number untuk beberapa interrupt tertentu.
b. Register BX (BH+ BL) atau Base register adalah salah satu dari dua register base Addressing mode, yang dapat mengambil atau menulis langsung dari/ke memory.
c. Register CX (CH + CL) atau Counter Register adalah suatu counter untuk meletakkan jumlah lompatan pada loop yang dilakukan.
2. Segment Register
a. CS (Code Segment) Register adalah segmen yang berfungsi menunjukkan segment program berada dengan pasangan register ini adalah register IP.
b. DS (Data Segment) Register adalah segment berfungsi menunjukkan segment dari segment data. Pasangan dari DS adalah DX
c. SS (Stack Segment) Register adalah berfungsi menunjukkan segment dari segment stack. Pasangan dari SS adalah SP
d. ES (Extra Segment) Register adalah berfungsi untuk pemograman pada saat melakukan operasi ke segment lain.
3. Pointer Register berfungsi menyimpan offset dari relative address.
a. IP (Instruction Pointer) Register adalah berfungsi untuk menunjukkan baris perintah program. Pada saat pertama program dijalankan register ini akan langsung menunjuk pada awal program.
b. 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.
c. BP (Base Pointer) Register adalah mempunyai fungsi sama dengan register BX, tetapi BX menulis dan membaca dengan segment DS (Data Segment) sedang BP menulis dan membaca dengan segment SS (Stack Segment).
Pointer Register berfungsi menyimpan offset dari relative address.
a. IP (Instruction Pointer) Register adalah berfungsi untuk menunjukkan baris perintah program. Pada saat pertama program dijalankan register ini akan langsung menunjuk pada awal program.
b. 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.
c. BP (Base Pointer) Register adalah mempunyai fungsi sama dengan register BX, tetapi BX menulis dan membaca dengan segment DS (Data Segment) sedang BP menulis dan membaca dengan segment SS (Stack Segment).
4. Index Register yaitu SI (Source Index) dan DI (Destination Index) 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.
5. Flag Register adalah berfungsi mengecek apakah sesuatu berfungsi atau tidak.
Contohnya:
a. Interrupt Flag mengecek apakah pada saat operasi Interrupt sedang aktif atau tidak, bila tidak aktif, Interrupt tidak akan dijalankan.
b. Carry Flag mengecek apakah pada saat operasi terjadi kesalahan atau tidak.
c. Sign Flag menunjukkan apakah suatu bilangan bertanda atau tidak dan sebagainya
- Memasukkan program kedalam aplikasi emu 8086.
- Emulate program.
- Run hasil program tersebut .
4. Listing Program[kembali]
- Tanda titik koma (;), merupakan baris untuk keterangan program atau komentar yang nantinya apapun tulisan yang ada setelah itu program akan mengabaikannya.
- MOV DL, 5Ah adalah mengisi register DL dengan karakter hexa 5A yaitu karakter Z
- MOV AH, 02h adalah mengisi register AH dengan sevice 2 yang artinya kita akan menyuruh program untuk mencetak sebuah karakter yang ada pada register DL. Angka 2 disini adalah hexadesimal sehingga bisa ditulis 02h untuk menerima intrupsi. e. INT 21h adalah menjalankan interupsi nomor 21. Intrerupsi ini akan mengerjakan sesuai dengan nilai servis yang dimasukkan. Karena ada MOV AH, 02h maka program akan mencetak karakter yang ada pada register DL.
- OR DL, 20h adalah instrupsi OR terhadap register DL ke 20h yang hasilnya akan ditampung pada register DL.
- MOV AH,4Ch dan INT 21h berfungsi untuk memberhentikan program dan mengembalikannya ke DOS.
5. Video[kembali]
6. Download[kembali]
Tidak ada komentar:
Posting Komentar