Teknik Interface (Perangkat Lunak)



Program Aplikasi INC

1. Tujuan [kembali]

  • memahami software emu 8086
  • memahami program aplikasi INC menggunakan software emu 8086

2. Komponen [kembali]

Software emu 8086

3. Dasar teori [kembali]

Emulator emu86

Untuk membantu dalam memahami atau penyesuaikan alur kerja program yang diinginkan maka dapat dilakukan dengan bantuan emulator emu 8086. Pada emulator ini ada menu emulate untuk menjalankan program dengan dua pilihan yaitu single step untuk eksekusi per baris instruksi atau Run untuk eksekusi keseluruhan instruksi sampai akhir program. Tampilan menu utama emu 8086 seperti gambar berikut:

 

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:

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

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.

d. Register DX (DH + DL) atau Data Register mempunyai tiga tugas, yaitu:
1.) Membantu AX dalam proses perkalian dan pembagian, terutama perkalian dan pembagian 16 bit.
2.) DX merupakan register offset dari DS
3.) DX bertugas menunjukkan nomor port pada operasi port

2. Segment Register
a. CS (Code Segment) Register adalah berfungsi menunjukkan segment program berada dengan pasangan register ini adalah register IP.

b. DS (Data Segment) Register adalah 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).

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.

Berikut adalah tabel ASCII yang sering dipakai dalam bahasa ini


INC (increment)

Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1.  Perintah INC hanya menggunakan 1 byte memory, sedangkan perintah ADD dan ADC menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pertambahan dengan 1 gunakanlah perintah INC. Syntax pemakainya adalah :

INC Tujuan

 Nilai pada tujuan akan ditambah dengan 1, seperti perintah Tujuan:=Tujuan+1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah INC AL  akan menambah nilai di register AL dengan 1. Adapun flag yang terpengaruh oleh perintah ini adalah OF,SF,ZF,AF dan PF.

Operasi Aritmatik

1. Operasi Pertambahan
Ada dua macam perintah pertambahan, yaitu :
a. Pertambahan dengan 1
Dengan perintah seperti: A = A+ 1, yang bermaksud  pertambahan dengan 1.
Tata penulisan:  INC [Register/Variabel]
b. Pertambahan selain Satu Dengan 'ADD' dapat menambahkan berapa saja pada suatu register ataupun suatu variabel.
Tata penulisan:  ADD [operand1],[operand2]  dimana isi operand1  adalah register atau variabel dan operand2 berupa register, variabel atau bilangan.
Hasil pertambahan disimpan di operand1 , seperti contoh berikut ini.
Contoh:
ADD   AH,AL   dengan   isi   AH   adalah   12   dan   AL   adalah   3,   maka komputer melaksanakan perintah tersebut sebagai berikut :

AH............... 12

AL................   3 +

AH............... 15

Untuk perintah ADD kedua operand harus mempunyai besar kemampuan yang sama seperti AH dan AL yang sama-sama 8 bit.

4. Listing program [kembali]

listing program untuk menampilkan angka 0 sampai 9 ke layar monitor

mov cx,0ah 
mov dl,30h
ulangi:
mov ah,02h
int 21h    
inc dl    
loop ulangi
mov ah,4ch
int 20h
 
Penjelasan per baris program adalah :
a) mov cx,0ah  = Pada baris program ini, mengisikan  jumlah loop yang ingin dilakukan dengan perincian 0 - 9 terdiri dari 10 angka. Bila 10 dikonversikan ke bilangan hexa, maka akan didapat angka a hexa. 
b) mov dl,30h   = Bilangan ASCII yang sama dengan  30 hexa adalah '0' yang akan dicetak dahulu dan dimasukkan dalam register dl sesuai dengan int 21 hexa service 02 hexa. 
c) mov ah, 02h  = register ah diisi dengan service number dari interrupt. 
d) int 21h  ; Menjalankan interrupt 21 hexa. 
e) inc dl  = Menambahkan register dl dengan 1 menjadi 31 hexa yang berarti '1'. 
f) loop ulangi = Lompat ke arah mov ah,02h dan dilakukan sebanyak 10 kali, setiap kali isi register cx dikurangi satu hingga akhirnya mencapai nol (0). 
g) int 20h   = Perintah int 20h untuk mengakhiri program.

5. Hasil [kembali]

berikut adalah hasil program untuk menampilkan angka 0 sampai 9 ke layar monitor

6. Video [kembali]


7. Link download [kembali]

Tidak ada komentar:

Posting Komentar