TUGAS 1
Gambar 38 Program INT 21H Service 01H
1. Tujuan [Kembali]
- Mampu memahami dan membuat bahasa assembler menggunakan
emu8086.
- Dapat membuat program untuk menulis dan membaca input
menggunakan bahasa assembler.
2. Alat dan Bahan [Kembali]
- Software
EMU 8086
3. Dasar Teori [Kembali]
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
mikroprosessor 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 (AX+AL) atau Accumulator Register adalah
register aritmatik untuk dipakai dalam operasi pertambahan, pengurangan,
perkalian, dan pembagian. Register AH dapat juga digunakan untuk tempat kembali
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 memori.
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. Membantuk 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 berfungsi untuk menunjukkan
segment, program yuang berapa dengan pasangan register ini adalah register IP
b. DS (Data Segment) Register berfungsi untuk menunjukkan
segment dari segment data. Pasangan dari DS adalah DX
c. SS (Stack Segment) Register berfungsi untuk menunjukkan
segment dari segment stack. Pasangan dari SS adalah SP.
d. ES (Extra Segment) Register berfungsi untuk pemograman
pada saat melakukan operasi ke segment lain.
3. Pointer Register berfungsi untuk menyimpan offset dari
relative address
a. IP (Insturction Pointer) Register berfungsi untuk
menunjukkan baris perintah program. Pada saat program pertama dijalankan
register 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 mempunyai fungsi yang sama
dengan register BX tetapi BX untuk menulis dan membaca segment DS (Data
Segment) sedangkan BP menulis dan membaca segment SS(Stack Segment).
4. Index Register yaitu SI (Source Index) dan DI
(Destination Index) berfungsi untuk melakukan operasi STRING. Namun demikian,
kedua register ini sering digunakan untuk menulis dan membaca dari atau ke
memori seperti halnya BX dan BP.
5. Flag Register berfungsi untuk mengecek apakah program
berfungsi atau tidak. Contohnya :
a. Interrupt Flag, untuk mengecek apakah pada saat operasi
Interrupt sedang aktif atau tidak, jika tidak aktif maka Interrupt tidak akan
dijalankan.
b. Carry Flag, untuk mengecek apakah saat operasi terjadi
kesalahan atau tidak.
c. Sign Flag, untuk menunjukkan apakah suatu bilangan
bertanda atau tidak dan sebaliknya.
PERINTAH DASAR ASSEMBLER
1. MOV
Adalah perintah untuk mengisi, memindahkan atau
memperbaharui isi suatu register, variabel atau suatu lokasi memori.
Syntax : MOV[operand1],[operand2]
a. operand1 berupa register, variabel, lokasi memori
b. operand2 berupa register, variabel, lokasi memori 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 setelah tersedia pada memori
komputer.
Ada dua jenis yaitu :
a. BIOS Interrupt yaitu 0H hingga 1FH yang disediakan oleh
BIOS (Basic Input Output System).
Contoh : Int 16H service 1FH berfungsi untuk mengecek apakah
ada tombol keyboard yang ditekan.
b. DOS Interrupt yaitu Int 1FH keatas yang disediakan oleh
DOS (Disk Operating System).
Contoh : Int 20H berfungsi menghentukan kerja suatu program.
3. Int 21h service 01h
Penjelasan Program
START: JMP MULAI (Program dimulai langsung di arahkan ke bagian MULAI)
Tanya db 'Jawablah Pertanyaan dibawah Ini !',13,10 (dibuat sebuah pertanyaan atau pernyataan)
db 'Apakah anda Seorang Mahasiswa ?(Y/T)',13,10 (dibuat sebuah pertanyaan atau pernyataan)
db 'Jawaban Anda : $' (dibuat pertanyaan atau pernyataan)
Jawab1 db 13,10,'Anda Adalah Seorang Mahasiswa ',13,10,'$' (membuat hasil dari inputan kemungkinan pertama)
Jawab2 db 13,10,'Anda Adalah Seorang MAhasiswi ',13,10,'$' (membuat hasil dari inputan kemungkinan kedua)
MULAI: MOV AH,09H ; SERVICE NUMBER = 09H (membuat service number)
MOV DX,OFFSET TANYA ; MENCETAK TANYA. (menampilkan pertanyaan yang sudah disiapkan)
INT 21H (mencetak huruf ke layar)
ULANG: MOV AH,01H ; SERVICE NUMBER = 01H (membuat service number)
INT 21H (mencetak huruf ke layar)
CMP AL,'Y' ; APAKAH JAWABAN 'Y' (memastikan jawaban)
JE Mahasiswa ; JIKA SAMA LOMPAT KE Mahasiswa (jika sama dengan Y maka ke mahasiswa)
CMP AL,'y' ; APAKAH JAWABAN 'y' (memastikan jawaban)
JE Mahasiswa ; JIKA SAMA LOMPAT KE Mahasiswa (jika sama dengan y maka ke mahasiswa)
CMP AL,'T' ; APAAH JAWABAN T (memastikan jawaban)
JE Mahasiswi ; JIKA SAMA LOMPAT KE Mahasiswi (jika sama maka ke mahasiswi)
CMP AL,'t' ; APAKAH JAWABAN 't' (memastikan jawaban)
JNE ULANG ; JIKA TIDAK SAMA LOMPAT ULANG (jika tidak maka kembali ke ulang)
Mahasiswi: MOV AH,09H (dipindahkan ke register AH dari 09H)
MOV DX,OFFSET JAWAB2 ; MENCETAK JAWAB2 (memindahkan jawab2 ke register DX)
INT 21H (mencetak huruf ke layar)
JMP SELESAI ; LOMPAT KE SELESAI (setelah ditampilkan jawab2 maka tampilkan selesai)
Mahasiswa: MOV AH,09H (memindahkan dari 09H ke register AH)
MOV DX,OFFSET JAWAB1 ; MENCETAK JAWAB1 (jawab1 ditampilkan)
INT 21H (menampilkan tulisan di layar)
SELESAI: MOV AH,4CH (dipindahkan dari 4ch ke AH)
INT 21H ; AKHIR PROGRAM (program selesai)
5. Vidio simulasi [Kembali]
6. Download [Kembali]
Program [download]
Komentar
Posting Komentar