Teknik Interface (Perangkat Lunak) (emu86) (Operasi Pertambahan)

I. Teori

1. Perangkat Lunak

Bahasa program yang dipakai pada interface, umumnya bisa semua bahasa pemograman, seperti: bahasa Assembler, Basic/VB, Pascal/Delphi, C++/VC, dan Matlab. Tetapi bahasa Assembler dipakai pada interface dan sistem minimum serta mikrokontroller, karena dalam bentuk COM akan membuat program di memory yang jauh lebih kecil dari bahasa program tingkat tinggi.

2. Teori Bahasa assembler    

Register

Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan menampung register tersebut.

Secara umum register dapat dibagi dalam lima golongan yaitu : 

1. General Purpose Register, terdiri dari :

  • AX (AH + AL) = Accumulator Register
  • BX (BH + BL) = Base register
  • CX (CH + CL) = Counter Register
  • DX (DH + DL) = Data Register 

2. Segment Register 

  • CS = Code Segment Register 
  • DS = Data Segment Register 
  • SS = Stack Segment Register
  • ES = Extra Segment Register 

3. Pointer Register

  • IP = Instruction Pointer Register 
  • SP = Stack Pointer Register 
  • BP = Base Pointer Register 

4. Index Register 

  • SI = Source Index Register 
  • DI = Destination Index Register 

5. Flag Register


General Purpose Register

Register AX
Register AX merupakan register aritmatik karena register ini selalu dipakai dalam operasi pertambahan, pengurangan, perkalian dan pembagian. Seperti telah dijelaskan diatas bahwa setiap register general purpose mempunyai register low dan register high, maka untuk AX, register low-nya adalah AL dan register high-nya adalah AH.
Register CX
register CX merupakan suatu counter untuk meletakkan jumlah lompatan pada loop yang dilakukan. Register high-nya adalah CH dan register low-nya adalah CL.
Register DX
Register DX Secara pokok register DX 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

3. Perintah dasar Assembler

MOV

Perintah MOV adalah perintah untuk mengisi, memindahkan, memperbaharui isi suatu register, variabel ataupun suatu lokasi memory. Adapun tata penulisan perintah MOV adalah:

MOV [operand A],[operand B]

dengan ketentuan operand A berupa : register, variabel, lokasi memory dan ketentuan isi operand B berupa : register, variabel, lokasi memory ataupun bilangan. Operand B merupakan bilangan asal yang akan diisikan ke operand A ataupun dengan kata lain, Operand A merupakan tujuan pengisian atau penduplikatan dari Operand B.

contoh:

MOV AH, 02 

Operand A dari perintah di atas adalah register AH. Operand B dari perintah di atas adalah bilangan 02. Hal yang dilakukan oleh komputer untuk perintah di atas adalah memasukkan 02 ke register AH.


Int (Interrupt)

Subrotine yang akan dipanggil sudah tersedia pada memori komputer. Ada dua jenis yaitu : 

  • Bios Interrupt yaitu Int 0H hingga 1FH yang disediakan oleh BIOS (Basic Input Output System). Contoh: Int 16H service 01H berfungsi untuk mencek apakah ada tombol keyboard yang ditekan. 
  • DOS Interrupt yaitu Int 1FH keatas yang disediakan oleh DOS (Disk Operating System). Contoh: Int 20H berfungsi menghentikan kerja suatu program.

 Int 20h 

 Int 20h Bertugas memberhentikan proses komputer terhadap suatu program COM. Bila pada setiap program COM yang dibuat tidak terdapat Int 20h, maka akan terjadi hanging pada komputer. Hal ini terjadi karena komputer tidak menemukan perintah pemberhentian proses.


Int 21h Service 02

Seperti Int 20h, Int 21h adalah salah satu Int yang termasuk DOS Interrupt, karena Int 21h mempunyai banyak sekali tugas, maka tugasnya dibagi-bagi menjadi beberapa bagian. Untuk memanggil bagian-bagian itu, perlu menyertakan nomor bagiannya yang disebut juga dengan service number. Contoh Int 21h yang bertugas mencetak sebuah huruf ke layar yaitu fungsi kedua dari Int 21h. Untuk menjalankan fungsi Int 21h service 02 harus dipenuhi beberapa syarat yaitu : a) Register AH, harus berisi service number dari Int 21h yang akan dijalankan (02h). b) Register DL, harus berisi bilangan hexa dari karakter ASCII (American Standard Code for Information Interchange) yang akan dicetak.



II. Pembahasan 

 Operasi Aritmatik

1. Operasi Pertambahan

Terdapat dua macam perintah pertambahan, yaitu pertambahan dengan 1 dan pertambahan dengan selain 1.

a. Pertambahan dengan 1

Dilakukan dengan perintah seperti: 

A = A + 1, yang bermaksud pertambahan dengan 1, seperti pada program yang ditunjukkan pada gambar 25.

Tata penulisan: INC [Register/Variabel]


b. Pertambahan selain 1

Dilakukan dengan 'ADD' dapat menambahkan berapa saja pada suatu register ataupun 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 pada contoh berikut ini.

Contoh:

ADD AH,AL    dengan isi AH adalah 10 dan AL adalah 5, maka komputer melaksanakan perintah tersebut sebagai berikut:

AH.........    10

AL..........    5  +

AH.........    15

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


Gambar 25. Program Aplikasi INC untuk Tampilkan angka 0 s/d 9

Penjelasan per baris program sebagai berikut:

  1. MOV CX,0Ah    ; Pada baris program ini untuk mengisikan jumlah loop yang ingin dilakukan dengan perincian 0 s/d 9 terdiri atas 10 angka. Bila 10 dikonversikan ke bilangan hexa, maka menjadi angka A hexa.
  2. MOV DL,30       ; Bilangan ASCII yang sama dengan 30 hexa adalah '0' yang akan dicetak dahulu dan dimasukkan dalam DL sesuai dengan Int 21 hexa service 02 hexa.
  3. MOV AH, 02h    ; AH diisi dengan service number dari Interrupt.
  4. INT 21h              ; Menjalankan Interrupt 21 hexa.
  5. INC DL              ; Menambahkan DL dengan 1 menjadi 31 hexa yang berarti '1'.
  6. LOOP ulangi     ; Lompat ke arah MOV AH,02h dan dilakukan sebanyak 10 kali, setiap kali isi CX dikurangi satu hingga akhirnya mencapai nol (0).
  7. INT 20h              ; Perintah INT 20h untuk mengakhiri program 



Comments

Popular posts from this blog