Program Kuis Sederhana Dengan Assembly

Intinya disini akan dibuat program assembly yang berkaitan dengan mencetak kalimat yang seusai dengan yang sudah disimpan di memori dan nantinya akan ada skor dari kalimat yang dicetak,

Listing Program :
INCLUDE 'emu8086.inc'
.MODEL SMALL
.CODE
ORG 100h 
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS 
TData:   JMP soal1
Kal0    DB 13,10,'Tentukan Singkatan dari soal dibawah ini ! Gunakan Huruf Kapital !',13,10,'$'
Kal1    DB 13,10,10,'1. SISTEM OPERASI =  ',07,07,'$'     
Kal2    DB 13,10,10,'2. PEMROGRAMAN BEROIENTASI OBJEK =  ',07,07,'$' 
Kal3    DB 13,10,10,'3. TEKNIK RISET OPERASI = ',07,07,'$' 
skor DW ? 
skorakhir  DB 13,10,10,'Nilai Anda:  ',07,07,'$'
dari DB '  dari 100 $'
T_Enter EQU 0DH 
Buffer   DB 23,?,23 DUP(?)  

soal1:   MOV AH,09
         LEA DX, Kal0
         INT 21h
         MOV AH,09
         LEA DX, Kal1
         INT 21h
         MOV AH,0Ah
         LEA DX,Buffer
         INT 21h       
         LEA BX,Buffer+2
         
         CMP BYTE PTR [BX],'S'
         JNE soal2
         CMP BYTE PTR [BX]+1,'O'
         JNE soal2
         ADD Skor,30
         MOV AX,Skor              
         JMP soal2                      
soal2:
         MOV AH,09
         LEA DX, Kal2
         INT 21h
         MOV AH,0Ah
         LEA DX,Buffer
         INT 21h       
         LEA BX,Buffer+2
         
         CMP BYTE PTR [BX],'P'
         JNE soal3 
         CMP BYTE PTR [BX]+1,'B'
         JNE soal3
         CMP BYTE PTR [BX]+2,'O'
         JNE soal3
         ADD Skor,35
         MOV AX,Skor              
         JMP soal3           
soal3:
         MOV AH,09
         LEA DX, Kal3
         INT 21h
         MOV AH,0Ah
         LEA DX,Buffer
         INT 21h       
         LEA BX,Buffer+2
         
         CMP BYTE PTR [BX],'T'
         JNE hasil
         CMP BYTE PTR [BX]+1,'R'
         JNE hasil
         CMP BYTE PTR [BX]+2,'O'
         JNE hasil
         ADD Skor,35
         MOV AX,Skor 
         JMP hasil
hasil:         
         MOV AH,09
         LEA DX,Skorakhir
         INT 21h  
         MOV AX,Skor
         CALL PRINT_NUM
         
         MOV AH,09
         LEA DX,dari
         INT 21h          
END TData                             

Output :

Post a Comment

0 Comments