Top Post

Top Post

Posted by : Unknown Jumat, 19 Oktober 2012

Setiap program umumnya memerlukan data dari luar seperti input dari keyboard, mouse dan sebagainya. Jika kita menggunakan bahasa tinggkat tinggi, kita bisa menentukan tipe data yang akan kita terima dari inputan. Misalnya kita masukan angka 10, dengan program Pascal atau C++ inputan tersebut bisa langsung kita jadikan tipe bilangan ataupun string. Dalam bahasa assembly inputan dari keyboard hanya memiliki dua macam input yaitu : input satu karakter dan input string (untaian karakter). Jika kita ingin membuat program untuk menghitung penjumlahan dua buah nilai, maka kita harus melakukan manipulasi register yang cukup rumit karena kita harus melakukan konversi karakter ASCII menjadi angka secara manual (register by register). Untuk melakukan operasi input satu karakter kita menggunakan service 01h, 07h, 08h, 06h dan untuk input string kita gunakan service 0Ah. Berikut contoh operasi input satu karakter :


Penjelasan Program :
Pada saat interupsi 21h dengan service 01 di jalankan, maka program akan menahan layar sampai pengguna menekan sembarang tombol. Nilai ASCII tombol yang ditekan akan dimasukan ke dalam register AL. Setelah itu kita simpan dulu isi dari register AL ke memory karena kita akan memakai register AH untuk mencetak string. Mengapa harus disimpan? Karena register AH dan AL satu badan, jika ada perubahan register AH maka akan mempengaruhi register AL. setelah string di cetak baru kita ambil lagi nilai yang ada di memory dan kita masukan ke dalam register DL. Jika nilai sudah masuk ke register DL, baru kita bisa menggunakan interupsi 21h dengan service 02h untuk mencetak karakter yang ada dalam register DL tadi. Untuk mencoba service lainnya (06h, 07h, 08h) silakan anda ganti isi register AH.
Output:


Leave a Reply

Saran dan kritik Anda merupakan semangat bagi kami. Terima kasih...!

Subscribe to Posts | Subscribe to Comments

|| Copyright © 2014 Fakti UPY || Powered by Blogger || Designed by Mbah Jass ||