Minggu, 26 Agustus 2018

PERANGKAT LUNAK INTERFACE

Bahan Presentasi Ini Dibuat Untuk Memenuhi 
Tugas Mata Kuliah Mikroprosesor Kelas B
Dosen : Darwison, M.T

Oleh :
Siti Sarah Fitrianisa
1610951017

Jurusan Teknik Elektro
Fakultas Teknik
Universitas Andalas
Padang
2018 



Referensi :
  1. John Crisp, Introduction to Microprosessor and Microcontrollers, 2nd edition, Newnessm 2004.
  2. Darwison, 2007 “ Teori, Rancangan ,Simulasi Dan Aplikasi Mikroprosesor Dan Mikrokontroller” ISBN: 978-602-9487-09-1”, CV Ferila, Padang



Tujuan [Kembali]

  • Memahami pembuatan program dengan bahasa assembly
  • Memahami bagaimana operasi aritmatika pembagian dengan bahasa assembly

Alat dan Bahan [Kembali]

Alat yang dibutuhkan : Software Emulator 8086
      Tata Penulisan             : DIV(Register)



Listing Program [Kembali]



Gambar 1. Program Bagi dengan Instruksi DIV



Gambar 2. Program Bagi dengan Emulator 8086



Gambar 3. Hasil Program Bagi dengan Instruksi DIV


Penjelasan Program [Kembali]


Program ini merupakan program pembagian 1, dimana :

                mov cx, 0009h     ; melakukan loop dengan perincian 1-9 {9 angka}
                mov bh, 01h         ; isi register bh telah diset angka 1
=> Kedua pernyataan di atas merupakan suatu pernyataan di luar loop yang menyatakan berapa banyak akan melakukan loop (pada CX) dan elemen pertama pada pembagian

      ulangi:            
                mov AH, 02H         ; menset fungsi/ service interupt{int 21h}
                mov dl, 0dh           ; 0D = turun satu baris
                int 21H                   ; mencetak kode ASCII karakter dl ke layar
                mov dl, 0aH           ; OA membuat kursor ke kiri
                int 21H
=> Pada 5 baris di atas akan melakukan perintah berupa turun satu baris ( enter)


                mov dl,bh          ; percetakan bilangan pertama
                ADD dl,30H       ; BH+30H untuk ASCII angka {dimana 1+0=1)
                mov AH,02H      ; service untuk mencetak karakter
                int 21H               ; cetak angka
=> Pada 4 baris di atas akan melakukan percetakan bilangan pertama, dimana akan selalu menambahkan sebuah bilangan (0-9), yaitu disalinnya nilai dari register BH ke register DL
, dimana pada awal program tadi telah diset nilai register BH yaitu '1' sehingga untuk saat ini nilai pada register DL adalah '1'.
                   
                mov dl,3aH          ; 3a merupakan kode ASCII untuk karakter ':'
                int 21H                 ; cetak ':'
                mov dl, 31H         ; angka pembagi untuk register ini adalah '1' (karena 31H pada ASCII merupakan angka '1')
                int 21H                 ; cetak angka '1'
                mov dl,3dH          ; 3d merupakan kode ASCII untuk karakter '='
                int 21H                 ; cetak karakter '='
=> Pada baris di atas akan di cetak karakter ' : ' dengan kode ASCII-nya adalah 3a ,lalu angka '1' dan tanda '='
  
                mov al,bh      ; dibagi register BL dengan isi register AL yang telah diset 1
              xor ah,ah         ; register AH dibuat NOL / setiap bilangan yang di XOR dengan bilangan sama pasti menghasilkan bilangan 0
                mov bl, 01H        ; diset register bl dengan "1"
                div bl                   ; AX : BL = hasil di AL, sisa di AH

    mov dl,al           
add dl, 30h         
mov ah, 02h         
int 21h             
mov dl,0dh          ; OD turun satu baris
int 21h                 ;
mov dl,0ah          ; 0A membuat kursor ke kiri
int 21h                 ; cetak angka
                   
inc bh                  ; bh ditambah 1
=>Pada baris ini register BH ditambah dengan 1

loop ulangi         ; ulangi hingga nilai CX bernilai 0
=>Pada baris ini dilakukan loop ke baris mov dl, 0dh(label diulangi) sampai dengan 9 kali, jika sudah 9 kali, akhir program 

;stop program dan kembali ke sistem DOS
mov ah, 4ch
int 21h             


Video Simulasi [Kembali]