📄 jml05.asm
字号:
cseg segment para public 'code'
org 100h
assume cs:cseg,ds:cseg,es:cseg,ss:cseg
ball proc far
jmp init
int1c proc far
push ds
push ax
push bx
push cx
push dx
push cs
pop ds
mov ah,0fh
int 10h
mov bl,al
cmp bx,[pmod]
jz lf27
mov [pmod],bx
dec ah
mov [coln],ah
mov ah,01
cmp bl,07
jnz lf05
dec ah
lf05: cmp bl,04
jnb lf0c
dec ah
lf0c: mov [nmod],ah
mov word ptr [pos0],0101h
mov word ptr [pos1],0101h
mov ah,03h
int 10h
push dx
mov dx,[pos0]
jmp lf4a
lf27: mov ah,03
int 10h
push dx
mov ah,02
mov dx,[pos0]
int 10h
mov ax,[att0]
cmp byte ptr [nmod],01
jnz lf41
mov ax,8307h
lf41: mov bl,ah
mov cx,0001
mov ah,09
int 10h
lf4a: mov cx,[pos1]
cmp dh,00
jnz lf58
xor ch,0ffh
inc ch
lf58: cmp dh,18h
jnz lf62
xor ch,0ffh
inc ch
lf62: cmp dl,00
jnz lf6c
xor cl,0ffh
inc cl
lf6c: cmp dl,00
jnz lf77
xor cl,0ffh
inc cl
lf77: cmp cx,[pos1]
jnz lf94
mov ax,[att0]
and al,07
cmp al,03
jnz lf8b
xor ch,0ffh
inc ch
lf8b: cmp al,05
jnz lf94
xor cl,0ffh
inc ch
lf94: add dl,cl
add dh,ch
mov [pos1],cx
mov [pos0],dx
mov ah,02h
int 10h
mov ah,08
int 10h
mov [att0],ax
mov bl,ah
cmp byte ptr [nmod],01
jnz lfb6
mov bl,83h
lfb6: mov cx,0001h
mov ax,0907h
int 10h
pop dx
mov ah,02
int 10h
pop dx
pop cx
pop bx
pop ax
pop ds
db 0eah ;jmp far f000:fea5
int1c_ofs dw 0
int1c_seg dw 0
att0 dw 0
pos0 dw 0101h
pos1 dw 0101h
nmod db 0
pmod dw 0
coln db 0
int1c endp
init:
mov ax,351ch
int 21h
mov int1c_seg,es
mov int1c_ofs,bx
mov ax,251ch
mov dx,offset int1c
int 21h
lea dx,init
mov cx,4
shr dx,cl
inc dx
mov ax,3100h
int 21h
ball endp
cseg ends
end ball
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -