Teknik Interface (Perangkat Lunak) Gambar 38 Program Int 21h Service 01h



1. Tujuan [Kembali]

A. Mengerti bahasa program sederhana. 
B. Mampu membuat coding sederhana.

2. Simulasi [Kembali]

Gambar 1.Coding Pertama


Gambar 2.Output ( hasil penginputan )

3. Program dan penjelasan [Kembali]

START:  JMP     MULAI (Program dimulai langsung di arahkan ke bagian MULAI)


Tanya   db  'Jawablah Pertanyaan dibawah Ini !',13,10 (dibuat sebuah pertanyaan atau pernyataan)

        db  'Apakah anda Seorang Mahasiswa ?(Y/T)',13,10 (dibuat sebuah pertanyaan atau pernyataan)
        db  'Jawaban Anda : $' (dibuat pertanyaan atau pernyataan)
Jawab1  db 13,10,'Anda Adalah Seorang Mahasiswa ',13,10,'$' (membuat hasil dari inputan kemungkinan pertama)
Jawab2  db 13,10,'Anda Adalah Seorang MAhasiswi ',13,10,'$' (membuat hasil dari inputan kemungkinan kedua)

MULAI:  MOV     AH,09H              ; SERVICE NUMBER = 09H (membuat service number)

        MOV     DX,OFFSET TANYA     ; NENCETAK TANYA. (menapilkan pertanyaan yang sudah disiapkan)

        INT     21H  (mencetak huruf ke layar)

ULANG:  MOV     AH,01H              ; SERVICE NUMBER = 01H (membuat service number)

        INT     21H (mencetak huruf ke layar)

        CMP     AL,'Y'              ; APAKAH JAWABAN 'Y' (memastikan jawaban)
        JE      Mahasiswa           ; JIKA SAMA LOMPAT KE Mahasiswa (jika sama dengan Y maka ke mahasiswa)
        CMP     AL,'y'              ; APAKAH JAWABAN 'y' (memastikan jawaban)
        JE      Mahasiswa           ; JIKA SAMA LOMPAT KE Mahasiswa (jika sama dengan y maka ke mahasiswa)
        CMP     AL,'T'              ; APAAH JAWABAN T (memastikan jawaban)
        JE      Mahasiswi           ; JIKA SAMA LOMPAT KE Mahasiswi (jika sama maka ke mahasiswi)
        CMP     AL,'t'              ; APAKAH JAWABAN 't' (memastikan jawaban)
        JNE     ULANG               ; JIKA TIDAK SAMA LOMPAT ULANG (jika tidak maka kembali ke ulang)

Mahasiswi:  MOV     AH,09H  (dipindahkan ke register AH dari 09H)
            MOV     DX,OFFSET JAWAB2    ; MENCETAK JAWAB2 (memindahkan jawab2 ke register DX)
            INT     21H (mencetak huruf ke layar)
            JMP     SELESAI             ; LOMPAT KE SELESAI (setelah ditampilkan jawab2 maka tampilkan selesai)

Mahasiswa:  MOV     AH,09H (memindahkan dari 09H ke register AH)
            MOV     DX,OFFSET JAWAB1    ; MENCETAK JAWAB1 (jawab1 ditampilkan)
            INT     21H (menampilkan tulisan di layar)

SELESAI:    MOV AH,4CH (dipindahkan dari 4ch ke AH)
            INT     21H                 ; AKHIR PROGRAM (program selesai)


4. Contoh soal [Kembali]

Soal 1

Apa perintah lompat yang digunakan untuk lompat jika operand1 tidak sama dengan operand2?

a. JE

b. JNE

c. JMP

d. JA

Jawaban: b. JNE

JMP digunakan untuk melompat ke perintah yang ditentukan oleh register JMP

Jenis perintah lompat yang mengikuti CMP, terdapat 12 buah, seperti berikut:

Perintah Lompat
Kondisi
JA ( Jump If Above )
Lompat, jika operand1 > operand 2
untuk bilangan tidak bertanda

JG ( Jump If Greater )
Lompat, jika operand1 > operand2
untuk bilangan bertanda
JE ( Jump If Equal )
Lompat, jika operand1 = operand2
JNE ( Jump If Not Equal )
Lompat, jika operand1 tidak sama
Dengan operand2

JB ( Jump If Below )
Lompat, jika operand1 < operand2 untuk bilangan tidak bertanda

JL ( Jump If Less )
Lompat, jika operand2 < Operand2 untuk
Bilangan bertanda.

JBE ( Jump If Below or Equal )
Lompat, jika operand1 <= operand2 untuk bilangan tidak bertanda.

JLE ( Jump If Less or Equal )
Lompat, jika operand1 <= operand2 untuk bilangan bertanda.

JAE ( Jump If Above or Equal )
Lompat, jika operand1 >= operand2 untuk bilangan tidak bertanda.

JGE ( Jump If Greater or Equal )
Lompat, jika operand1 >= operand2
Untuk bilangan bertanda.
   

 Soal 2

    Bagaimana output jika program interface baris 8 di atas diganti menjadi MOV AH,02H?

    a. Program tidak dapat berjalan

    b. output blank/kosong

    c. output berupa sebuah karakter

    d. output tidak berubah

    Jawab: c. output berupa sebuah karakter

    Pembahasan:

    MOV AH,09

    Operand A dari perintah di atas adlah register AH

    Operand B dari perintah di atas adalah bilangan 09

    Perintah mov pada baris 8 adalah memasukkan 09 ke register AH.

    Program diatas adalah apalikasi Int 21H yang merupakan salah satu dari DOS interrupt. Int 21H memiliki banyak tugas, maka tugasnya dibagi-bagi menjadi beberapa bagian. Untuk memanggil bagian-bagian itu, perlu disertakan nomor bagiannya yang disebut Service Number.

    Program ini menggunakan Int 21 Service 09 yang berfungsi untuk mencetak sebuah string. Maka untuk membuat sebuah kalimat yang panjang kita bisa menggunakan Service 09H pada register  AH. Service 02H berfungsi untuk mencetak sebuah karakter pada layar. Jadi jika Service 09H diganti menjadi 02H maka kalimat yang dibuat akan berubah menjadi sebuah karakter.

5. Link Download [Kembali]
File emu8086 : Download disini !!!

Tidak ada komentar:

Posting Komentar