INPUT LEBIH DARI SATU KARAKTER
1. Tujuan [kembali]
A. Mengerti bahasa program sederhana. B. Mampu membuat coding sederhana.2. Teori [kembali]
Gunakan Int 21 hexa service number (0A) hexa dengan ketentuan : a. Definisikan sebuah variabel tempat menampung masukan dengan tata penulisan: [label] db nn,mm,nn dup (?), dimana: b. DS:DX harus berisi segment dan offset awal variabel di atas.
Gambar 1.Coding Pertama
Gambar 2.Output ( hasil penginputan )
Gambar 3.Hasil
Gambar 4.Hasil
3. Program dan Penjelasan [kembali]
;PROGRAM MENULIS DAN MEMBACA KE MEMORY
;Program isikan Nomor Induk Mahasiswa (NIM)
Start : JMP MULAI
(Permulaan koding,JMP sendiri diartikan melompat ke coding mulai)
TANYA DB 'NIM Anda?:',13,10,'$'
(DB/Define Byte : mendefenisikan variable per byte,$ : data merupakan bilangan heksa desimal)
NIM DB 11,?,11 DUP(?)
(DUP(?) : berapa tempat yang harus disediakan,diwakilkan dengan tanda tanya)
JAWAB DB 13,10,'NIM:$'
MULAI: MOV AH,09H
(MOV : Perintah untuk mengisi,memindahkan,memperbanyak isi suatu register,MOV AH,09H : mengisi register AH dengan 09H)
MOV DX,OFFSET TANYA
INT 21H ; MENCETAK TANYA
( INT 21H berfungsi mencetak huruf kelayar dan mencegah hang )
MOV AH,0AH
MOV DX,OFFSET NIM
PUSH DX ; m
INT 21H ; INPUT DARI KEYBOARD
MOV BX,OFFSET NIM
INC BX ; menunjuk kepada indikator (mm)
; berapa huruf yang telah dimasukkan
MOV DL,[BX] ; MASUKAN [BX] KE DX
XOR DH,DH
INC BX ; menunjuk kepada indikator (mm)
; berapa huruf yang telah dimasukkan
MOV DL,[BX] ; MASUKAN [BX] KE DX
XOR DH,DH
INC BX ; menunjuk kepada awal kata yang dimasukan
ADD BX,DX ; supaya menunjuk kepada huruf terakhir masukan
MOV DL,'$' ; Ganti ODh dengan '$' supaya bisa dicetak
MOV [BX],DL ;MASUKAN DL KE [BX]
MOV DX,OFFSET JAWAB
MOV AH,09H
INT 21H ;CETAK JAWAB
POP DX ;AMBIL DX DARI STACK
INC DX
INC DX ;menambahkannya dengan 2 supaya menunjuk
;kepada awal masukan
MOV AH,09H
INT 21H ;CETAK TAMPUNG
MOV AH,4CH
INT 21H
ret
Tidak ada komentar:
Posting Komentar