Membuat Menu dalam Assembly

INCLUDE  PUSTAKA.MCR
.MODEL SMALL
.CODE
ORG 100h

Mulai :  JMP  Proses
         a Dw 16
         b Dw 8
         Kal0 DB 13,10,'A = $'
         Kal1 DB 13,10,'B = $'
         Kal2 DB 13,10,'  Menu : $'
         Kal3 DB 13,10,'    1. Perkaliam $'
         Kal4 DB 13,10,'    2. Penjumlahan $'
         Kal5 DB 13,10,'    3. Pengurangan $'
         Kal6 DB 13,10,'    4. Pembagian $'   
         Kal7 DB 13,10,'    5. Kuadrat (Pangkat Dua) $'   
         Kal8 DB 13,10,'    6. Akar A $'   
         Kal9 DB 13,10,'Masukkan Pilihan : $'
         Kal10 DB 13,10,'A X B = $'
          Kal11 DB 13,10,'A + B = $'
         Kal12 DB 13,10,'A - B = $'
         Kal13 DB 13,10,'A : B = $'
         Kal14 DB 13,10,'A Pangkat 2 = $'
         Kal15 DB 13,10,'Akar A = $'
         Kal16 DB 13,10,'Pilihan Salah ! $'
         Kal17 DB 13,10,'Pilih Menu Lain? [Y/N]: $'
         Jwb   db 26,?,26 dup(?)
       
Proses:
            Cetak_Klm Kal0
            Cetak_Angka a
            Cetak_Klm Kal1
            Cetak_Angka b   
            Cetak_Klm Kal2
            Cetak_Klm Kal3
            Cetak_Klm Kal4
            Cetak_Klm Kal5
            Cetak_Klm Kal6
            Cetak_Klm Kal7
            Cetak_Klm Kal8
            Cetak_Klm Kal9

            Catat Jwb
            lea bx,Jwb+2        ; menunjuk byte ke-2 dari jawab
            cmp byte ptr [bx],'1'
            JE Kali
            cmp byte ptr [bx],'2'
            Je Tambah
            cmp byte ptr [bx],'3'
            Je Kurang
            cmp byte ptr [bx],'4'
            Je Bagi
            cmp byte ptr [bx],'5'
            Je Pangkat
            cmp byte ptr [bx],'6'
            Je Akar
            Jne Salah
Salah     :    Cetak_Klm Kal14
            JMP Proses
Kali    :   
            Cetak_Klm Kal10
            Perkalian a,b
            JMP Cetak
Tambah    :   Cetak_Klm Kal11
            Penjumlahan a,b
            JMP Cetak   
Kurang    :    Cetak_Klm Kal12
            Pengurangan a,b
            JMP Cetak
Bagi    :    Cetak_Klm Kal13
            Pembagian a,b
            JMP Cetak
Pangkat :   Cetak_Klm Kal14
            Kuadrat a
            JMP Cetak       
Akar    :   Cetak_Klm Kal15
            AkarKuadrat a
            JMP Cetak
Cetak    :           
            tampil
Ulang    :
            Cetak_Klm Kal17
            Catat Jwb
            lea bx,Jwb+2        ; menunjuk byte ke-2 dari jawab
            cmp byte ptr [bx],'Y'
            JE Lanjutkan
            cmp byte ptr [bx],'y'
            JE Lanjutkan
            JNE Keluar
Lanjutkan :    JMP Proses
Keluar  :
            INT   20h
END      Mulai
Previous
Next Post »