📄 h.asm
字号:
crlf macro
mov ah,02h
mov dl,0dh
int 21h
mov ah,02h
mov dl,0ah
int 21h
endm
set macro c,d
mov ah,2
mov dh,c
mov dl,d
mov bh,0
int 10h
endm
disp macro x,y,msg
set x,y
mov ah,09h
lea dx,msg
int 21h
endm
clear_screen macro a,b,c,d,e
mov ah,6
mov al,0
mov ch,a
mov cl,b
mov dh,c
mov dl,d
mov bh,e
int 10h
endm
DATA SEGMENT
sum db 0
total db 0
msg1 db 201," XIAO XUE SHENG JIA FA CE SHI",187,0ah,0dh,'$'
msg2 db "please input number:",0ah,0dh,'$'
msg3 db "right!",0ah,0dh,'$'
msg4 db "wrong!",0ah,0dh,'$'
msg5 db 32,32,43,32,32,61,'$'
msg6 db "total=",'$'
;sum db 0
esc_key equ 1bh
win_ulc equ 30
win_ulr equ 2
win_lrc equ 50
win_lrr equ 22
win_len equ 20
DATA ENDS
CODE SEGMENT
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
clear_screen 0h 0h 18h 4fh 1fh
disp 1,25 msg1
disp 2,1 msg2
mov ah,01
int 21h
mov ah,07
mov al,13
int 21h
clear_screen 0h 0h 18h 4fh 1fh
clear_screen 03h 1eh 17h 32h 5eh
sub al,30h
mov cl,al
xh:
call rand
call rand1
set 03h 24h
mov ah,0ah
int 21h
a1:
mov ah,1
int 21h
cmp al,esc_key
jz exit
cmp al,13
disp 03h 28h msg3
jz b1
loop a1
exit:
mov ax,4c00h
int 21h
b1: mov ah,07
mov al,13
int 21h
clear_screen 03h 1eh 17h 32h 5eh
disp 16h 28h msg6
loop xh
disp 16h 28h msg6
rand proc
disp 03h 1eh msg5
set 03h 1eh
mov ah,2ch
int 21h
add sum,dl
mov al,dl
cbw
mov cl,10
div cl
add al,30h
mov ch,ah
mov dl,al
mov ah,02
int 21h
add ch,30h
mov dl,ch
mov ah,02
int 21h
mul cl
add al,ch
ret
rand endp
rand1 proc
xor cx,cx
xor ax,ax
set 03h 21h
mov ah,2ch
int 21h
add sum,dl
mov al,dl
cbw
mov cl,10
div cl
add al,30h
mov ch,bh
mov dl,al
mov ah,02
int 21h
add ch,30h
mov dl,ch
mov ah,02
int 21h
mul cl
mov bl,ch
ret
rand1 endp
mov ah,4ch
int 21h
;disp 03h 28h msg3
CODE ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -