TUJUAN 1. Mahasiswa mampu melakukan pemrograman assembly menggunakan Turbo Assembler 2. Mahasiswa mampu membuat program assembly untuk mencetak huruf , kalimat, dan angka DASAR TEORI Interupsi merupakan inti dari sebuah program assembly. Interupsi memungkinkan sebuah program assembly untuk meminta komputer melakukan proses sesuai dengan nilai register yang dipergunakan sebagai dasar interupsinya. INT 21h merupakan interupsi !" ser#ice yang bersifat general atau umum. Tipe interupsi ini $ika dipanggil oleh sebuah baris pada program assembly maka komputer akan mengecek data pada register A%. Misal $ika A% & 2 maka komputer akan mencetak karakter sesuai dengan kode A"'II pada register (. Maka untuk mencetak sebuah huruf langkah yang harus dilakukan sebagai berikut ) 1. Mengisi register A% dengan 2 2. Mengisikan kode A"'II yang akan dicetak ke register ( *. Men$alankan interupsi 21h Mencetak huruf dengan atribut misal warna yang berbeda dapat dilakukan dengan interupsi 1+h. ,ntuk melakukannya, maka langkah-langkahnya sebagai berikut ) 1. Mengisi register A% dengan . 2. Mengisi register A( dengan kode A"'II yang akan dicetak *. Mengisi register /% dengan nomor halamannya0isi dengan + untuk halaman ke-11 2. Mengisi register /( dengan warna yang diinginkan 3. Mengisi register '4 dengan banyaknya karakter yang akan dicetak 5. Melakukan interupsi 1+h ,ntuk mencetak beberapa karakter maka harus digunakan perulangan. 6erulangan dalam bahasa assembly menggunakan register '4 sebagai counter atau pencacah 1 perulangannya. Instruksi yang dipergunakan yaitu (!!6. "etiap ditemui (!!6 maka register '4 secara otomatis akan dikurangi nilainya dengan 1 sampai dengan '4 bernilai +. PROSEDUR PERCOBAAN 1. Mencetak h!" Tuliskan program berikut ini pada te7t editor dan simpan sebagai file cetak.asm pada folder yang sama dengan tasm.e7e. ;========================================== ; titel : mencetak huruf ; program : cetak_huruf.asm ; deskripsi : ; mencetak huruf dengan assembly ; - AH = 2 ; - D = kode A!"## yang akan dicetak ; - run #$% 2&h ;========================================== .Model Small .Code org 100h cetak: MOV AH,2 ; nilai ser'is utk cetak huruf MOV DL,'A' ; karakter yg dicetak IN 21h ; tampilkan karakter IN 20h ; finish( kembali ke dos !"d cetak a. /uka command prompt dos. b. 'ompile program menggunakan tasm dengan perintah berikut ) tasm cetak c. (ingking file coba.ob$ menggunakan tlink dengan mengetikkan perintah berikut ) tlink8t cetak d. 9alankan file cetak.com dan amati yang ter$adi pada layar Anda. e. ,bah nilai ( men$adi :a:,:1:,:+:,:;:,:<:, *=, 5> dan amati yang ter$adi #. Mencetak h!" $en%an at!&'t a. Tulis source code program berikut ini pada te7t editor lalu compile ,linking, dan $alankan hasilnya serta amati hasilnya dengan seksama. 2 ;========================================== ; titel : mencetak huruf dengan atribut ; program : cetak_huruf_attr.asm ; deskripsi : ; mencetak huruf dengan atribut ; - AH = 09h ; - AL = Kode ASCII dari karakter yang akan dicetak ; - BH = Nomor halaman(0 untuk halaman 1) ; - BL = Atribut atau warna dari karakter yang akan dicetak ; - CX = Banyaknya karakter tersebut akan dicetak ;========================================== .Model Small .Code org 100h cetak: MOV AH,09h ; Nilai servis untuk mencetak karakter MOV AL,'A' ; AL = Karakter yang akan dicetak MOV BH,00h ; Nomor Halaman layar MOV BL,93h ; Warna atau atribut dari karakter MOV CX,03h ; Banyaknya karakter yang ingin dicetak INT 10h ; Laksanakan !!! INT 20h ; Selesai ! kembali ke DS !"d cetak b. ,bah nilai /( men$adi ) 53, 12=, 1=+, 2++, 233, + dan amati yang ter$adi (. Mencetak 'e'e!a)a ka!akte! a. Tulis source code program berikut ini pada te7t editor lalu compile ,linking, dan $alankan hasilnya serta amati hasilnya dengan seksama. ;========================================== ; titel : mencetak bbrp karakter ; program : cetak_ul_kar.asm ; deskripsi : ; mencetak beberapa karakter dengan loop ; - CX = loop counter ;========================================== .Model Small .Code org 100h cetak: MOV AH,02h ; Nilai servis MOV DL,'A' ; DL=karakter !A! atau DL="#$ MOV CX,10h ; Banyaknya %engulangan yang akan Ulang : INT 21h ; &etak karakter !! INC DL ; 'amba$ DL dengan # LOOP Ulang ; Lom%at ke (lang INT 20h ; Selesai ! kembali ke DS * !"d cetak b. ,bah nilai ( ke *2, 3+, >3 dan amati apa yang ter$adi 2