Tugas 1 : Teknologi Interface (Perangkat Lunak)

 

[KEMBALI KE MENU SEBELUMNYA]



A. Untuk memahami Program Aplikasi Int 21 Service 09

2. Komponen [back]

A. Emulator Emu8086



3.Dasar Teori [back]

Teori Bahasa Assembler 
Dalam bahasa tingkat rendah tidak dibutuhkan struktur program karena semuanya diserahkan kepada pemakai. 
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.

Gambar 23 di bawah ini adalah bit-bit register Flag 

PERINTAH DASAR ASSEMBLER
1. MOV
Perintah    untuk     mengisi,    memindahkan, memperbaharui isi suatu register, variabel ataupun suatu
lokasi memori.

Tata penulisan:  MOV [operand1],[operand2]
a. Operand1 berupa register, variabel, lokasi memory dan 
b. Operand2 berupa: register, variabel, lokasi memory ataupun bilangan.  
Contoh :
MOV AH,AL  ; mengkopi isi register AL ke register AH. 
MOV AH, 02  ; mengisi register AH dengan 02 
2. Int (Interrupt)
Subrotine yang akan dipanggil sudah tersedia pada memori komputer. Ada dua jenis yaitu :
a. 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. 
b. DOS Interrupt yaitu Int 1FH keatas yang disediakan oleh DOS (Disk Operating System). 
Contoh: Int 20H berfungsi menghentikan kerja suatu program. 
3.   Int 20h dan Int 21h service 02h 
a. 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. 
b. 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. 

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 
2. Operasi Pengurangan
Seperti halnya pertambahan, ada dua fungsi yaitu : 
a. Pengurangan dengan Satu
Untuk maksud seperti A = A - 1 
Tata penulisan: DEC (Variabel Register) 
 
b. Pengurangan Selain Satu
Tata penulisan: SUB [operand1], [operand2] 
Syarat-syarat   Operand1   dan   operand2-nya   sama   seperti  
pada operasi pertambahan dan hasilnya pun akan diletakkan
pada Operand1.  

3. Perkalian
Tata penulisan: MUL (Register) 
Contoh:
 MUL BL ; Mengalikan nilai register BL dengan nilai  register AL dan disimpan di register AX. 
MUL BX ; Mengalikan nilai register BX dengan nilai register AX dan disimpan di register DX:AX dimana DX merupakan hasil lebih dari FFFFH.

4. Operasi Pembagian
Tata penulisan: DIV (Register)

LOMPAT / JUMP
Pada jump dengan memakai register CX, dimana setiap kali  lompat nilai CX berkurang satu dan sampai CX = 0 maka tidak bisa melompat lagi.  Pada instruksi jump ini, lompatan hanya dapat dipakai satu kali saja. 
Ada 2 macam lompatan, yaitu :
1. Lompatan Tak Bersyarat
Lompatan tak bersyarat dapat dikelompokkan menjadi dua macam, yaitu : 
a. Near Jump: yang jauh lompatan tidak lebih dari FF hexa byte, ataupun 256 byte. 
b. Far Jump: yang jauh lompatan tidak lebih dari FFFF hexa byte, ataupun 1 segment. 
Tata penulisan: JMP [Lokasi Memory] 

2. Lompatan Bersyarat
Ada beberapa jenis lompatan yang kegunaannya dapat  disesuaikan dengan keperluan yang dibutuhkan.  Tata penulisan: [Perintah jump] [Lokasi Memory] 
Sebelum memakai lompatan bersyarat, terlebih dahulu dilakukan perintah perbandingan (Compare). Hal ini dilakukan karena untuk beberapa jenis lompatan harus menggunakannya sebelum melakukan lompatan.  
Tata penulisan: CMP [Operand1],[Operand2]
Operand1: variabel atau register dan 
Operand2: variabel, isi lokasi memory, lokasi memory, variabel ataupun register. 
Beberapa perintah lompatan bersyarat:
1.  JE (Jump if Equal): bila pada saat pembandingan kedua operand sama. 
Contoh : 
CMP  AX,0120 
JE   ulangi  ;Jump ke label ulangi jika AX sama dengan 0120, namun bila ternyata AX tidak sama dengan 0120, maka komputer akan meneruskan dengan perintah baris berikutnya.

2.  JNE (Jump if Not Equal): berlaku apabila nilai AX tidak sama. 
Contoh : 
CMP AX,0120 
JNE ulangi  ; jump jika AX tidak sama dengan 0120 

Perintah-perintah yang lain adalah: 
a. JG (Jump if Greater than): jump jika  lebih besar dari operand kedua. 
b. JGE (Jump If Greater Or Equal): jump jika  lebih besar atau sama dengan operand kedua. 
c. JNG (Jump If Not Greater than): jump jika tidak lebih besar dari operand kedua. 
d. JNGE (Jump If Not Greater Or Equal): jump jika lebih kecil dari operand kedua. Sama dengan perintah JLE. 
e. JL (Jump if Less): Perintah ini sama dengan perintah JB tetapi dalam bil bertanda. 
f. JLE (Jump If Less or Equal): jump jika lebih kecil atau sama dengan operand kedua. Sama dengan perintah JNGE. 
g. JNL (Jump If Not Less Or Equal): jump jika tidak lebih kecil dari operand kedua. Perintah ini sama dengan JG. 
h. JNLE (Jump If Not Less Or Equal): jump jika tidak lebih kecil atau sama dengan operand kedua. Perintah ini sama dengan JG. 
i. JS (Jump On Sign): jump jika Sign Flag yang terdapat Flag Register berisikan angka 1. 
j. JNS (Jump On Not Sign): jump jika Sign Flag yang terdapat pada Flag Register berisikan angka 0. 
k. JC (Jump On Carry): jump jika Carry Flag yang terdapat pada Flag Register berisikan angka 1. 
l. JNC (Jump On Not Carry):jump jika Carry Flag yang terdapat pada Flag Register berisikan angka 0.  
m. JCXZ (Jump If CX = 0) Perintah ini dilaksanakan bila isi register CX sama dengan 0. 
n. JZ (Jump on Zero): jump jika Zero Flag yang terdapat pada Flag Register berisi angka 1. Jump ini mempunyai  fungsi  dan  cara  kerja yang  sama dengan JE. 
o. JNZ (Jump on Not Zero): jump jika Zero Flag yang terdapat pada Flag Register berisikan angka 0. Jump ini mempunyai  fungsi  dan  cara  kerja yang  sama dengan JNE sehingga dapat dipertukarkan pada saat pemakaian.
 
Adapun instruksi jump yang digunakan untuk bilangan tak bertanda adalah:
a) JA (Jump If Above): jump jika lebih besar dari pada operand kedua
b) JAE (Jump If Above of Equal): jump jika lebih besar atau sama dengan operand kedua
c) JNA (Jump If Not Above): jump jika tidak lebih besar dari operand kedua.
d) JNAE (Jump If Not Above Or Equal): jump jika tidak lebih besar atau sama dengan operand kedua.
e) JB (Jump If Below): jump jika lebih kecil dari operand kedua.
f) JBE (Jump If Below Or Equal): jump jika lebih kecil atau sama dengan   operand kedua.
g) JNB (Jump If Not Below): jump jika tidak lebih kecil dari operand kedua.
h) JNBE (Jump If Not Below Or Equal): jump jika tidak lebih kecil atau sama dengan operand kedua. 

OPERASI STACK
Stack adalah tempat peletakan sementara isi register.  Stack pada file.COM terdapat diakhir segment dan ketika pertama kali dijalankan program penunjuk stack (SP) akan langsung ke byte terakhir dari segment.  
Perintah Stack
Operasi stack mempunyai dua fungsi, yaitu fungsi untuk  memasukkan isi suatu register/variabel ke stack yaitu PUSH [operand 16 bit] , seperti ditunjukkan pada gambar 32. Untuk mengeluarkan isi register/variabel dari stack yaitu POP [Operand 16 bit] , seperti ditunjukkan pada gambar 33.

Bila setelah itu dilakukan perintah PUSH CX dengan register CX berisikan angka 0007, maka terlihat di stack.

OPERASI LOGIKA
Tata penulisan: OR/AND/XOR Operandl,Operand2 
1. Operand1 adalah varibael, register ataupun isi lokasi memory,  
2. Operand2 adalah register, variabel, isi lokasi memory ataupun suatu angka.  
3. Hasil dari operasi logika tersebut akan ditampung di Operand1.  
Contoh:
OR AL,BH  ; proses   OR   terhadap   BH   ke   AL.   Hasilnya   akan ditampung   di   register AL. 

 Bahasa Assembler 
MENCETAK SEBUAH KALIMAT 
Menggunakan fasilitas Int 21h dengan service 09h.  Sebelumnya dipelajari dulu tentang variabel.
Ada 2 jenis variabel, yaitu :
a. Variabel yang Dapat Dimodifikasi Isinya Variabel yang memakan tempat pada memory, yaitu;  
a) DB   (Define Byte), mendefinisikan variabel per byte. 
b) DW (Define Word), mendefinisikan variabel per word (2 byte). 
c) DD (Define Double Word), mendefinisikan variabel per 2 word. 
Tata penulisan: Label (DB/DW/DD) [Isi Variabel]
Contoh:
Satu db ‘ satu variabel$' 
Dua   db 12ABh
Tiga db 75h 

b. Variabel yang Tidak Dapat Dimodifikasi Isinya
Tidak memakan memori pada komputer, jenis variabel ini  hanya dapat dipakai dalam Assambler menggunakan Compiler dengan memakai equ.

Contoh: 
Satu equ 2470h 
Dua  equ 2442h

Syarat menggunakan Int 21 hexa service 09 hexa ini
adalah : 
a) AH=09H 
b) DS= segment variabel tempat menampung kata yang akan dicetak  
c) DX= offset-nya dan  
d) kata-kata yang dicetak tersebut harus diakhiri dengan tanda Dollar '$'. 

Contoh program menggunakan Int 21 hexa service 09 
hexa ditunjukkan pada gambar 37. 


Problem[back]


1. Sebutkan dan jelaskan aplikasi penggunaan mikroprosesor
JAWAB
    Mikroprosesor adalah mesin kecil sebagai pemproses dan pengendali utama proses yang terjadi pda komputer,yang dibuat dalam bentuk chip. meskipun ukurannya secara fisik tidak terlalu besar ,tetapi pemikir utama dari sebuah komputer adalah pada mikropsesor ini, dan disinilah proses utama diolah. contoh penggunaan prosesor MSP430F413buatan Texas Instrumen untuk mengendalikan alat ukur jarak yang menggunakan gelombang ultrasonik 40 kHz.


    Mikroprosesor pada alat ini berperan sebagai pengendali yang mengaktifkan pengirim sinyal, mengukur waktu propagasi sinyal dengan menunggu aktifnya penerima sinyal atau menunggu kedatangan sinyal pantulan, kemudian menghitung jarak antara alat ini dengan benda yang memantulkan sinyal ultrasonik serta menampilkan hasil perhitungannya dalam bilangan desimal pada display 7-segment.

2. Jelaskan kerugian dan keuntungan menggunakan mikroprosesor ?
          Jawab
 Beberapa keuntungan dari penggunaan sistem mikroprosesor antara lain:
Ø Sistem mikroprosesor dapat diprogram (programable), sehingga dengan perangkat keras (hardware) yang relatif sama tetapi dapat dipergunakan untuk bermacammacam sistem aplikasi yang berbeda tergantung dari program yang diberikan pada perangkat keras tersebut.
Ø Sistem menjadi lebih handal baik dalam kecepatan maupun ketepatan
Ø Operasional menjadi lebih mudah, bahkan dapat diatur untuk kearah otomasi
Ø Jumlah komponen yang diperlukan semakin sedikit serta daya yang diperlukan semakin kecil pula.

 Disamping keuntungan yang menjanjikan, sistem mikroprosesor juga memiliki kerugian-kerugian sebagai berikut:
Ø Mikroprosesor banyak jenisnya dan antara satu dengan yang lainnya tidak kompatible karena dari segi hardware maupun softwarenya berbeda, sehingga pengembangan sistemnya juga tidak sama
Ø Mikroprosesor mengalami perkembangan yang sangat pesat sehingga suatu sistem mikroprosesor menjadi cepat usang (out of date).

Example[back]


1. Jelaskan perbedaan dari mikroprosesor, mikrokomputer dan
    mikrokontroler ?
          Jawab
Ø Mikroprosesor adalah sebuah chip (keping) yang dapat melaksanakan operasi-operasi hitungan, operasi nalar, dan operasi kendali secara elektronis (digital).
Ø Mikrokomputer adalah suatu sistem mikroprosesor, yang minimum terdiri dari chip mikroprosesor (CPU: Central Processing Unit), ROM (Read Only Memori) yang berisi firmeware (Program kendali sistem uP), RAM (Random Access Memori) yang berisi program atau data sementara, dan Piranti input-output (I/O device) yang berguna untuk komunikasi antara sistem mikroprosesor dengan piranti yang dikendalikan.
Ø Mikrokontroler adalah gabungan dari mikroprosesor chip yang didalamnya terkandung sistem interaksi antar mikroprosesor, RAM, ROM, I/O interface dan beberapa peripheral.

2. Sebutkan dan jelaskan saluran-saluran yang terdapat pada mikroprosesor ?
          Jawab
Ø Bus Saluran Alamat/ Address Bus
Saluran alamat (address bus) diperlukan untuk menentukan suatu lokasi alamat memori maupun lokasi alamat dari perangkat input/output (Input Output Interface) yang selalu digunakan dalam suatu sistem mikroprosesor itu sendiri, sebab jumlah saluran yang ada langsung menentukan banyaknya alamat memori (kapasitas memori) yang dapat ditanganinya. Pada awal pengembangannya, mikroprosesor buatan Intel dengan tipe 8008 hanya meiliki empat buah saluran alamat, sehingga total alamat memori yang dapat ditanganinya sebanyak 16384 alamat. Setelah mengalami pengembangan selanjutnya sudah mencapai 16 saluran alamat sehingga mampu menangani 65536 alamat memori. Sifat saluran alamat adalah keluaran, sehingga kendali dilakukan dari mikroprosesor menuju ke perangkat-perangkat VCC + GND ingatan maupun perangkat-perangkat keluaran/masukan (input output peripheral).
                                                                              
Ø Bus Saluran Data/ Data Bus
Data bus (saluran data) diperlukan sebagai jalan masukan atau keluaran data yang berfungsi sebagai instruksi atau penyerta instruksi antara perangkat ingatan dan perangkat I/O dengan CPU. Untuk mikroprosesor Z80 memiliki 8 buah saluran data (D0- D7) atau 8 bit data. Sifat dari saluran data adalah dua arah (bidirectional), jadi arahnya dapat bolak-balik antara mikroprosesor dengan perangkat ingatan maupun perangkat masukan keluaran. Dalam sistem mikrokomputer, data bus dipakai bersamasama antara CPU dengan perangkat-perangkat lainnya agar pengawatan menjadi lebih praktis, sehingga cara penyambungannya secara paralel. Untuk menghindari terjadinya konflik data antara perangkat satu dengan yang lainnya maka berlaku sistem bergantian dan stanby atau kalau perlu keadaan tersebut dapat diatur melalui CPU lewat saluran kendali bus.

Ø Bus Saluran Kendali/ Control Bus
Saluran kendali (Control Bus) digunakan untuk melakukan pengendalian terhadap komponen-komponen pendukung dalam sistem mikroprosesor. Semua aktifitas lalu lintas data maupun pengambilan instruksi ke perangkat ingatan, perangkat keluaran masukan dan lain-lainnya diatur dan dikendalikan lewat saluran kendali tersebut. Pada mikroprosesor saluran-saluran kendali ada dua kelompok yaitu:
o Saluran kendali yang bersifat keluaran, artinya suatu pengendalian yang arahnya dari mikroprosesor menuju ke perangkat pendukung (perangkat ingatan, I/O, dekoder dan lain-lainnya).
o Saluran kendali yang bersifat masukan artinya suatu pengendalian yang arahnya dari perangkat luar mikroprosesor menuju ke mikroprosesor tersebut.

Pilihan Ganda[back]

1. Perintah Untuk memasukkan nilai register dengan angka hexa tertentu pada bahasa assembly menggunakan perintah...

a. PUSH

b. MOV

c. ADD

d. LOOP

e. DIV

Jawaban : b.MOV



2. Perintah Untuk keluar dari suatu program biasa menggunakan perintah ...

a. CMP

b. INT

c. INC

d. PUSH

e. POP

Jawaban : b.INT


Step 1:SUSUN dan SIAPKAN KOMPONEN 

Step 2:RANGKAI KOMPONEN

Step 3: BUAT SIMULASI PADA PROTEUS

Step 4: MENCOBA RANGKAIAN

Step 5: MENERAPKAN RANGKAIAN






;PROGRAM MENCETAK SEBUAH KALIMAT
  
  JMP mulai  //melakukan lompatan ke arah lokasi memory dengan label mulai.

;Disini data dimulai

KATA db 'kata yang dicetak',13,10      // terdapat variabel KATA yang digunakan untuk mencetak kata
        db 'dengan Interrupt 21H service 09H',13,10   //mencetak kata dan angka 13,10 pada akhir baris data merupakan instruksi untuk ganti baris 
        db '$'
        
;Programnya
mulai:
    
        MOV     DX,OFFSET KATA  //mengisi register DX dengan OFFSET DATA yaitu dengan variabel KATA
        MOV     AH,09H          //mengisi AH dengan service
        INT     21H                   //mencetak kata
        MOV     AH,4CH        //mengisi AH dengan 4CH


7.Video Simulasi [back]





8. File Download [back]

Download Emulator Emu8086 disini
Download Video disini
Download Codingan disini
Download HTML disini
Download Buku Referensi disini


Tidak ada komentar:

Posting Komentar

Muhammad Sukry

Bahan Presenstasi Ini dibuat untuk  Mata Kuliah Mikroprocessor dan Mikrocontroller Semester Ganjil 2022-2023 Oleh : Muhammad Sukry 201095104...