Kolejne źródło: Quiz w ASM

Kolejne wyciągnięte i publikowane przez mnie źródło, może się komuś przyda: prosty quiz z 3 pytaniami napisany w ASM, jeśli mnie pamięć nie myli w MASM’ie.


.model tiny
.code
org 100h

start:
jmp begin

new_ln:
mov ah, 09h
mov dx, offset ln
int 21h
ret

WriteLn:
mov ah, 09h
int 21h
call new_ln
ret

rowne:
Inc true_odp
mov dx, offset yes
call WriteLn
ret

nie_rowne:
Inc false_odp
mov dx, offset no
call WriteLn
ret

Readln:
mov ah, 0ah
mov dx, offset read_odp
int 21h
call new_ln
ret

spr:
mov si, (offset read_odp) + 2
repe cmpsb
jz rowne
jnz nie_rowne
ret

Write_NrPyt:
push dx

call new_ln

mov ah, 09h
mov dx, offset stat3
int 21h

pop dx
mov dl, [pyt]
add dl, 48
mov ah, 02h
int 21h

call new_ln

inc pyt
ret

begin:

mov dx, offset s2
call WritelN
call new_ln

call Write_NrPyt

;Pytanie nr. 1
mov dx, offset pyt1
call WriteLn;Wyswietl pytanie

call ReadLn; Wczytaj odpowiedŸ

mov di, offset odp1; sprawdŸ
mov cx, odp1_dl
call spr

call Write_NrPyt
;Pytanie nr. 2
mov dx, offset pyt2
call WriteLn
call ReadLn
mov di, offset odp2
mov cx, odp2_dl
call spr

call Write_NrPyt
;Pytanie nr. 3
mov dx, offset pyt3
call WriteLn
call ReadLn
mov di, offset odp3
mov cx, odp3_dl
call spr

call new_ln
mov dx, offset s1
call WriteLn
call new_ln

mov ah, 09h
mov dx, offset stat1
int 21h

mov ah, 02h
mov dl, [true_odp]
add dl, 48
int 21h

call new_ln

mov ah, 09h
mov dx, offset stat2
int 21h

mov ah, 02h
mov dl, [false_odp]
add dl, 48
int 21h

call new_ln

mov ah, 09h
mov dx, offset line
int 21h

mov dx, offset autor
call WriteLn

mov ah, 08h
int 21h

;koniec programu
mov ah, 4ch
int 21h

;"________DANE:______________________________________"
;PYTANIA:
pyt1 db "Rozszyfroj skrot SCT...$"
odp1 db "S&N Coders Team"
odp1_dl equ ($ - odp1)

pyt2 db "Ile jest rejestrow ogolnego przeznaczenia ktore da sie podzielic na rejestry 8 bitowe? $"
odp2 db "4"
odp2_dl equ ($ - odp2)

pyt3 db "Jaki jest przesumiecie programu typu .com w danym segmęcie (podaj w systemie szesnastkowym) ?$"
odp3 db "100"
odp3_dl equ ($ - odp3)

;Do procedur:
yes db "Prawidlowa odpowiedz$"
no db "Bledna odpowiedz$"
ln db 13,10,"$"

s1 db "================================KONIEC================================$"
s2 db "=================================Quiz=================================$"

stat1 db "Poprawnych odpowiedzi: $"
stat2 db "Blednych odpowiedzi: $"
stat3 db "Pytanie nr. $"

line db 80 dup("_"),"$"
autor db 10,13,"Created by Adawo (S&N Coders Team)$"

pyt db 1
true_odp db 0
false_odp db 0

read_odp db 22
db 0
db 25 dup ("$")

end start

0 Odpowiedzi do “Kolejne źródło: Quiz w ASM”


  1. Brak komentarzy

Napisz odpowiedź