Materi bahasa rakitan
-
Upload
habibullah-srg -
Category
Documents
-
view
39 -
download
8
description
Transcript of Materi bahasa rakitan
PRAKTIKUM MIKROPROSESOR DAN BAHASA RAKITAN
MENCETAK HURUF, KALIMAT, DAN ANGKATUJUAN
1. Mahasiswa mampu melakukan pemrograman assembly menggunakan Turbo Assembler
2. Mahasiswa mampu membuat program assembly untuk mencetak huruf , kalimat, dan angkaDASAR 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 DOS service yang bersifat general atau umum. Tipe interupsi ini jika dipanggil oleh sebuah baris pada program assembly maka komputer akan mengecek data pada register AH. Misal jika AH = 2 maka komputer akan mencetak karakter sesuai dengan kode ASCII pada register DL. Maka untuk mencetak sebuah huruf langkah yang harus dilakukan sebagai berikut :1. Mengisi register AH dengan 2
2. Mengisikan kode ASCII yang akan dicetak ke register DL
3. Menjalankan interupsi 21h
Mencetak huruf dengan atribut misal warna yang berbeda dapat dilakukan dengan interupsi 10h. Untuk melakukannya, maka langkah-langkahnya sebagai berikut :1. Mengisi register AH dengan 92. Mengisi register AL dengan kode ASCII yang akan dicetak3. Mengisi register BH dengan nomor halamannya(isi dengan 0 untuk halaman ke-1)
4. Mengisi register BL dengan warna yang diinginkan5. Mengisi register CX dengan banyaknya karakter yang akan dicetak6. Melakukan interupsi 10h
Untuk mencetak beberapa karakter maka harus digunakan perulangan. Perulangan dalam bahasa assembly menggunakan register CX sebagai counter atau pencacah perulangannya. Instruksi yang dipergunakan yaitu LOOP. Setiap ditemui LOOP maka register CX secara otomatis akan dikurangi nilainya dengan 1 sampai dengan CX bernilai 0.PROSEDUR PERCOBAAN
1. Mencetak hurufTuliskan program berikut ini pada text editor dan simpan sebagai file cetak.asm pada folder yang sama dengan tasm.exe.;==========================================; titel: mencetak huruf; program: cetak_huruf.asm; deskripsi:; mencetak huruf dengan assembly; - AH = 2; - DL = kode ASCII yang akan dicetak; - run INT 21h;==========================================
.Model Small
.Code
org 100hcetak:
MOVAH,2
; nilai servis utk cetak huruf
MOVDL,'A'; karakter yg dicetak
INT21h
; tampilkan karakter
INT 20h
; finish, kembali ke dosEndcetak
a. Buka command prompt dos.
b. Compile program menggunakan tasm dengan perintah berikut :
tasm cetakc. Lingking file coba.obj menggunakan tlink dengan mengetikkan perintah berikut :tlink/t cetak
d. Jalankan file cetak.com dan amati yang terjadi pada layar Anda.
e. Ubah nilai DL menjadi a,1,0,!,#, 38, 67 dan amati yang terjadi2. Mencetak huruf dengan atributa. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan jalankan hasilnya serta amati hasilnya dengan seksama.;==========================================; 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 100hcetak:
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 DOSEndcetak
b. Ubah nilai BL menjadi : 65, 128, 180, 200, 255, 0 dan amati yang terjadi
3. Mencetak beberapa karaktera. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan jalankan 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 100hcetak:
MOV AH,02h ; Nilai servis
MOV DL,'A' ; DL=karakter 'A' atau DL=41h
MOV CX,10h ; Banyaknya pengulangan yang akanUlang :
INT 21h ; Cetak karakter !!
INC DL ; Tambah DL dengan 1
LOOP Ulang ; Lompat ke Ulang
INT 20h ; Selesai ! kembali ke DOSEndcetak
b. Ubah nilai DL ke 32, 50, 75 dan amati apa yang terjadi
PAGE 4