Membaca dan Menulis ke Memory








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



;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) 

4. Video [kembali] 






5.Link Download [kembali]

 






Tidak ada komentar:

Posting Komentar