Monday, 24 August 2020

Latihan 1 Teknik Interface (Perangkat Lunak)


  • Memahami penggunaan EMU 8086
  • Mengetahui program mencetak 3 digit angka ke layar
2. Alat dan Bahan [back]
  • Software EMU 8086
3. Dasar Teori [back]
Emu8086 merupakan aplikasi emulator bagi pemrograman bahasa assembler atau mikrokontroler. Dengan menggunakan aplikasi emulator, kita dapat mensimulasikan apakah program kontrol hardware yang kita buat sudah benar atau masih salah.

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).
Memulai pemrograman bahasa Assembler terdiri dari beberapa kode operasi code (op code) dan pseudo ops. Bentuk instruksinya adalah op code diikuti operand. Opcode adalah perintah yang akan dilaksanakan, sedangkan operand dpaat terdiri dari sumber (source) dan tujuan (destination).
Misal : MOV AX,BX
Opcode dari contoh di atas adalah MOV, sedangkan operandnya adalah AX, BX. Maksud kode di atas adalah perintah untuk menyalin data yang ada di register BX (source operand) ke register AX (destination operand).
Pseucode operation (pseudo ops) adalah perintah kepada assembler untuk memberitahukan apa yang harus dilakukan terhadap data, percabangan bersyarat, perintah macro dan listing. Beberapa pseudo ops yang sering dijumpai adalah sebagai berikut :

Untuk menjalankan Klik  “compile” kemudian pilih lokasi di mana file executable akan disimpan, lalu “single step”, sehingga hasilnya akan terlihat seperti dibawah ini :

Contoh operasi penambahan dan pengurangan bahasa assembler menggunakan "Emu8086"

Untuk menjalankan Klik  “compile” kemudian pilih lokasi di mana file executable akan disimpan, lalu “single step”, atau bisa langsung "Run" sehingga hasilnya akan terlihat seperti dibawah ini :
Hasil program penambahan dan pengurangan


4.Penjelasan [back]
    MULAI:   MOV AX,469            ;Perintah untuk memasukkan nilai 469 ke register AX

                     XOR CX,CX           ; Perintah melakukan logika XOR register CX dengan register 
                                                      CX agar nilai dalam register CX dapat direset, CX=0

    ULANG1:  MOV BH,10            ; Perintah untuk memasukkan nilai 10 ke register BH

                        DIV BH                ; Perintah untuk membagi nilai pada register AX dengan nilai                                                           pada register BH

             PUSH   AX                     ; Perintah untuk memasukkan nilai register AX ke STACK

             INC CX                          ; Perintah untuk melakukan increment pada register CX atau                                                             menambahkan satu kepada register CX

             XOR AH,AH                  ; Perintah untuk melakukan logika XOR register AH dengan 
                                                    register AH agar nilai dalam register AH dapat direset, AH=0
    
             CMP AL,00                   ; Perintah untuk compile nilai register AL, apakah AL=0 atau tidak.

             JNE ULANG1               ; Perintah untuk lompat ke ULANG1 apabila nilai register 
                                                    tidak sama, apabila sama maka program dilanjutkan ke Ulang2

    Ulang2:  pop dx                      ; Perintah untuk mengeluarkan isi register dari STACK 
                                                    menjadi register dx

             mov dl,dh                       ; Perintah untuk memindahkan nilai dh ke dl atau memindahkan 
                                                    nilai sisa

             add dl,30h                      ; Perintah untuk menambahkan 30hexa ke dalam register dl

             mov ah,02                      ; Perintah untuk memindahkan nilai 02 ke dalam register ah

             int 21h                            ; Perintah untuk menampilkan isi register ke layar

             Loop   ulang2                 ; Perintah untuk melakukan looping ke ulang2

             MOV AH,4CH                 ; Perintah untuk memindahkan nilai 4Chexa ke register AH

             int 21h                            ; Akhir program

5. Percobaan [back]
    a. Buka aplikasi EMU 8086
    b. Ketik Program pada software seperti gambar

c. Jalankan Program sehingga tampil pada layar
 
Simulasi - Download
List Program - Download
Video - Download

8. Contoh Soal [back]
        1. Untuk menambahkan nilai register dengan angka hexa tertentu pada bahasa assembly menggunakan perintah...
a. PUSH
b. MOV
c. ADD
d. LOOP
e. DIV
Jawaban : c.ADD
Pembahasan : 
Fungsi perintah berikut.
PUSH ; Memasukkan nilai register ke dalam STACK
MOV : Memindahkan nilai ke dalam register
ADD : Menambahkan nilai ke dalam register 
LOOP : Mengulangi perintah
DIV : Melakukan operasi pembagian

2. Untuk mengeluarkan nilai di dalam stack kemudian dimasukkan pada register tertentu merupakan fungsi dari perintah ...
a. CMP
b. INT
c. INC
d. PUSH
e. POP
Jawaban : e.POP
Pembahasan:
Fungsi perintah berikut.
CMP : Melakukan proses compile untuk nilai register/ membandingkan nilai register
INT : Untuk menampilkan isi register ke layar
INC : Untuk menambahkan satu digit ke dalam nilai register
PUSH : Memasukkan nilai register ke dalam STACK
POP : Mengeluarkan nilai dari STACK untuk dimasukkan ke register tertentu

2 comments: