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”