Materi bahasa rakitan

download Materi bahasa rakitan

of 4

description

bagus

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