INSTRUKSI OR


[menuju akhir]

 1.)     Tujuan [kembali]

  1.  Untuk menyelesaikan tugas mata kuliah Mikroprosesor dan Mikrokontroler yang ditugaskan oleh Bapak Dr. Darwinson, M.T.
  2. Memahami dan mengerti penggunaan bahasa assembler dengan emu8086
  3. Memahami Prinsip kerja dari emu8086
  4. Mampu membuat program instruksi OR dengan emu8086

     

2.)     Alat Dan Bahan [kembali]

1. Emulator 8086

Software Emu8086

Software yang akan digunakan untuk mensimulasikan program adalah Software Emu8086.  Emu8086 adalah salah satu aplikasi emulator pemograman dengan menggunakan bahasa assembler atau mikrokontroller.

Kegunaan aplikasi ini dapat membantu mensimulasikan apakah program kontrol hardware yang kita buat sudah benar atau belum. Aplikasi ini dilengkapi dengan editor dan assembler yang bersifat GUI. 

Dengan emu8086 internal register dapat diamati dari waktu ke waktu akibat dari eksekusi suatu instruksi assembly. 

Dalam “emu8086” terdapat beberapa menu, antara lain:
  1. Emulate : untuk menjalankan emulator kode program yang kita buat
  2. Compile : untuk membuat (compile) “binary executable file” atau ekstensi “.com” atau “.exe” dari kode program.
  3. Run : menjalankan aplikasi dari emulator yang dihasilkan (execute).
  4. Single Step : Menjalankan aplikasi dengan cara tracing (diproses perbaris kode program)




3.)     Teori [kembali]

Teori Bahasa Assembler

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

A. 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 :


1. General Purpose Register

    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 :

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 salah satu 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:
  • Membantu    AX    dalam    proses    perkalian    dan    pembagian, terutama perkalian dan pembagian 16 bit.
  • DX merupakan register offset dari DS
  • DX bertugas menunjukkan nomor port pada operasi port

2. 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.

3. Pointer Register 

    Pointer Register berfungsi menyimpan offset dari relative address.

  • IP (Instruction Pointer) Register adalah berfungsi untuk menunjukkan baris perintah program. Pada 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 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 

    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.

    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. OPERASI LOGIKA


Operator logika OR akan menghasilkan nilai nol jika kedua operannya bernilai nol dan satu bila salah satu nya bernilai satu.

Perhatikan tabel berikut ini :




Operator logika OR


Operator logika OR

Tata cara penulisan operasi logika menggunakan bahasa assembly :
Mengetahui OR/AND/XOR Operand1(Tujuan), Operan2 (Sumber.)
Berikut penjelasannya :
  • Operand1 adalah variabel, register ataupun isi lokasi memory.
  • Operand2 adalah register, variabel, isi lokasi memory ataupun suatu angka.
           Nantinya hasil dari operator logika ini akan tersimpan pada Operand1 atau tujuan.

Salah satu contoh :
Suatu syntax memiliki instruksi :
MOV AL, 3Fh
MOV BL, 1Ah
OR AL, BL


Pembahasan :
Baris pertama berisikan syntax  MOV AL, 3Fh. Perintah MOV digunakan untuk mengcopy nilai atau angka menuju suatu register, variabel atau memory.
Dengan demikian maka kita memberikan nilai 3Fh kepada register AL.
Baris kedua kita memberikan nilai 1Ah kepada register BL. 
Baris ketiga akan menjalankan intruksi OR terhadap BL ke AL, yang hasilnya akan ditampung pada register AL.
Karena bilangan yang dimasukkan kedalam register AL dan BL berupa bilangan Hexa, maka kita harus mengkonversikan nya ke dalam bilangan binnari.

3           F
0011      1111
1             A
0000     1010
              ------------------------------        OR
0011      1111

Maka nilai AL setelah dilakukan intruksi logika OR dari syntax diatas adalah 0011 1111.

4.)     Prinsip Kerja [kembali]

 Prosedur Percobaan:

  • Memasukkan program kedalam aplikasi emu8086.
  • Emulate program.
  • Run hasil program tersebut .




Program Instruksi OR

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.
  • 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.)     Contoh soal [kembali]

1. Diberikan dua buah bilangan biner A dan B masing-masing sebagai berikut:

A = 10101100
 Hitung hasil dari operasi OR antara A dan B. Tunjukkan langkah-langkahnya

Jawab :

  • AX: 0101 1010 1100 0011 
  • B = 11001010
Operasi OR dilakukan dengan membandingkan bit-bit yang sesuai dari kedua bilangan biner A dan B. Berikut adalah tabel langkah-langkahnya:

Dengan menggabungkan hasil bit per bit dari operasi OR tersebut, kita dapatkan hasilnya sebagai berikut:

Hasil: 11101110

Jadi, hasil dari operasi OR antara A (10101100) dan B (11001010) adalah 11101110.

2. Diberikan dua register, AX dan BX, masing-masing berisi nilai biner 0101 1010 1100 0011 dan 1010 0101 0011 1100. Tuliskan hasil dari operasi OR antara kedua register tersebut.

Jawab :

  • BX: 1010 0101 0011 1100
  • Operasi OR bitwise antara AX dan BX
0101 1010 1100 0011
1010 0101 0011 1100
              ------------------------------        OR
1111 1111 1111 1111

Hasil akhir dari operasi OR adalah 1111 1111 1111 1111.

6.)     Simulasi Rangkaian [kembali]





 7). Download File [kembali] 

Download Program Instruksi OR 

Download File Video 

Download HMTL disini

[menuju awal]

Komentar

Postingan populer dari blog ini