Input Lebih dari Satu Karakter


             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

PENJELASAN CODING TIAP BARIS

;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
(mengembalikan penunjuk program/ip ke program pemanggil)
 
Meiry Asriya Meiry Asriya Author
My Blog.
Meiry Asriya