Selasa, 28 Oktober 2014

Masukan Dari Keyboard

Assalamu'alaikum...

Bahasa Rakitan kali ini yaitu membahas tentang membuat program yang menerima masukan dari keyboard

Ketika program dijalankan, lalu ketika kita menekan huruf alfabet atau angka maka yang muncul adalah ‘Ini adalah tombol ASCII’, namun jika yang di tekan di keyboard adalah tanda panah atau F1 atau double keyboard  maka yang akan muncul adalah ‘Ini adalah tombol extended’

Apa itu Kode ASCII dan Kode Extended?

KODE ASCII
   Kode ASCII adalah kode yang melambangkan suatu karakter baik berupa huruf,angka, maupun simbol-simbol grafik. Misalkan angka "1" akan dilambangkan dengan kode ASCII 49.

KODE EXTENDED
    Kode ASCII telah menyediakan sebanyak 256 karakter dengan beberapa karakter kontrol, misalnya #10 untuk pindah baris dan #13 untuk Enter yang akan menggerakkan kursor kesamping kiri. Tetapi fungsi yang telah disediakan ini tidak mampu untuk menampilkan ataupun mendeteksi tombol fungsi misalnya F1, F2, F3 dan Home. Tombol kombisasi juga tidak dapat dideteksi oleh karakter ASCII , misalnya penekan tombol shif disertai tombol F1, penekanan Ctrl disertai tombol Home, dan lain-lain. Penekanan terhadap tombol-tombol fungsi dan tombol kombinasi akan menghasilkan kode ASCII 0<nil>.

Karena alasan diatas maka diciptakanlah suatu kode yang dinamakan sebagai kode EXTENDED. Kode Extended ini dapat mendeteksi penekanan terhadap tombol-tombol fungsi maupun tombol kombinasi. 

Bagaimana cara membuat program yang menggunakan masukan data dari keyboard?
1.Buka Tasm1.4 yang sudah di instal, maka tampilan yang akan muncul seperti di bawah ini

2. Tuliskan kata edit lalu tekan enter
C:\ TASM>edit        (enter)

3. Setelah di tekan enter, maka akan muncul lembar kerja berwarna biru

4.    Pada layar biru tersebut, ketiklah

.MODEL SMALL
.CODE
ORG 100h                          
TDATA:  JMP PROSES    
T_ASCII DB 13,10,'INI ADALAH TOMBOL ASCII:$'
T_EXTENDED DB 13,10,'INI ADALAH TOMBOL EXTENDED$'
PROSES:
MOV AH,0                         ---------------------------------------------- baris 8
INT 16H                              ---------------------------------------------- baris 9
PUSH AX                            ---------------------------------------------- baris 10
CMP AL,00                         ---------------------------------------------- baris 11
JE EXTENDED                   ---------------------------------------------- baris 12
ASCII:                                  
LEA DX, T_ASCII              ---------------------------------------------- baris 14
MOV AH,9                          ---------------------------------------------- baris 15
INT 21H                              ---------------------------------------------- baris 16

POP AX                                ---------------------------------------------- baris 17
MOV DL,AL                        ---------------------------------------------- baris 18
MOV AH,2                          ---------------------------------------------- baris 19
INT 21H                               ---------------------------------------------- baris 20
CMP AL,'Q'                         ---------------------------------------------- baris 21
JE EXIT                                ---------------------------------------------- baris 22
CMP AL,'q'                         ---------------------------------------------- baris 23
JE EXIT                                ---------------------------------------------- baris 24
JMP PROSES                      ---------------------------------------------- baris 25
EXTENDED:                        
LEA DX, T_EXTENDED   ---------------------------------------------- baris 27
MOV AH,9                          ---------------------------------------------- baris 28
INT 21H                               ---------------------------------------------- baris 29
JMP PROSES                       ---------------------------------------------- baris 30
EXIT:
INT 20H                              ----------------------------------------------- baris 32
END TDATA                      ----------------------------------------------- baris 33

(Kali ini saya hanya memberikan keterangan yang penting saja, jika ingin lebih jelas bisa melihat postingan saya sebelumnya di Bahasa Rakitan)

Baris ke 8: Service input, 0(nol) untuk satu karakter
Baris ke 9: Interupsi dari BIOS, digunakan untuk mendapatkan masukan dari keyboard
Baris ke 10: Simpan hasil pembacaan pada stack
Baris ke 11: Bandingkan, apakah ini karakter extenden?
Baris ke 12: Jika Ya, lompat ke extended?

Baris ke 14: Ambil kalimat efektif T_ASCII
Baris ke 15: Nilaiservice untuk cetak kalimat
Baris ke 16: Perintah cetak kalimat!
Baris ke 17: Ambil kembali nilai AX pada stack
Baris ke 18: Ambil kode ASCII yang ditekan
Baris ke 19: Service untuk cetak karakter
Baris ke 20:Perintah cetak karakter!
Baris ke 21: Apakah yang ditekan huruf ‘Q’?
Baris ke 22: Jika ya, lompat ke EXIT
Baris ke 23: Apakah yang di tekan huruf ‘q’?
Baris ke 24: Jika ya, lompat ke EXIT
Baris ke 25: Lompat ke proses

Baris ke 27: Ambil alamat efektif  T_Extended
Baris ke 28: Nilai service untuk cetak kalimat
Baris ke 29: Perintah cetak kalimat!
Baris ke 30: Lompat ke proses

Baris ke 32: Kembali ke DOS
Baris ke 33: Akhiri Tdata

Screenshoot dalam notepadnya

5. Kemudian klik FILE> SAVE ( pada contoh di atas saya menyimpannya dengan nama PUSH.ASM

6.  Jika sudah di simpan, maka klik File>exit, maka akan tampil layar dosbox hitam, ketiklah
C:\TASM>tasm PUSH            (enter)
C:\TASM>tlink/t PUSH          (enter)
C:\TASM>PUSH                    (enter)

Pada saat kita menekan enter setelah mengetikkan push, maka belum muncul apapun, namun jika kita sudah menekan tombol keyboard, maka selurh kode yang kita buat akan berjalan.

Pada contoh gambar diatas, saya menekan tombol ‘t’ pada keyboard, maka yang muncul adalah tulisan ‘INI ADALAH TOMBOL ASCII : t’.

Seluruh alfabet (baik huruf kecil atau kapital) , angka dan tanda baca dikatakan tombol ASCII.

Selain itu, seperti F1-F12, dan tanda panah akan di sebut tombol extended
Karena pada kode kita tuliskan jika menekan huruf ‘Q’ atau ‘q’, program akan lompat ke exit, maka program yang kita jalankan tadi akan berhenti.

Sekian dulu postingannya, semoga bermanfaat.
Wassalamu'alaikum..

1 komentar: