.286 .model small .code org 100h ;-------------------- count equ 100 delay equ 30 startx equ 10 starty equ 10 sizex equ 40 sizey equ 10 ;-------------------- start: mov ax, 13h int 10h mov curx, startx mov cury, starty mov cx, count lu: mov ah, 06h mov dl, 0ffh int 21h jnz GAMEOVER push curx push cury push offset face push sizex push sizey call WriteSprite mov ax, curx cmp ax, 0 je toright b1: add ax, sizex cmp ax, 320 je toleft b2: mov ax, cury cmp ax, 0 je todown b3: add ax, sizey cmp ax, 200 je toup jmp gx toright:mov word ptr cs:[offset gx+4], 06h jmp b1 toleft : int 3 mov word ptr cs:[offset gx+4], 0Eh jmp b2 todown :mov word ptr cs:[offset gy+4], 06h jmp b3 toup : int 3 mov word ptr cs:[offset gy+4], 0Eh gx: dec curx gy: dec cury push delay call CoolWait jmp lu gameover: int 3 mov ax, 3h int 10h int 20h CoolWait proc near push bp mov bp, sp push cx mov cx, word ptr [bp+4] ggg: push cx mov cx, 0 loop $ pop cx loop ggg pop cx pop bp ret 2 endp WriteSprite proc near ;writesprite(x,y,char *sprt,razmx,razmy) push bp mov bp,sp razmy equ word ptr [bp+4] razmx equ word ptr [bp+6] sprt equ word ptr [bp+8] posy equ word ptr [bp+10] posx equ word ptr [bp+12] pusha push es mov ax, 0A000h mov es, ax mov ax, posy mov bx, ax shl ax, 8 shl bx, 6 add ax, bx add ax, posx mov di, ax mov ax, sprt mov si, ax mov cx, razmy lup: push cx mov cx, razmx repe movsb add di, 320 sub di,razmx pop cx loop lup pop es popa pop bp ret 10 endp curx dw ? cury dw ? face db 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0 db 0,1,1,1,1,1,1,1,1,0, 0,2,2,0,0,0,0,2,2,0, 0,0,0,3,3,3,3,3,0,0, 0,4,4,0,0,0,4,4,0,0 db 0,1,1,1,1,1,1,1,1,0, 0,2,2,0,0,0,0,2,2,0, 0,0,3,3,0,0,0,3,3,0, 0,4,4,0,0,4,4,0,0,0 db 0,1,1,0,0,0,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,0,4,4,0,0,0,0 db 0,1,1,1,1,1,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,4,4,0,0,0,0,0 db 0,1,1,1,1,1,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,4,4,0,0,0,0,0 db 0,1,1,0,0,0,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,3,3,0, 0,4,4,0,4,4,0,0,0,0 db 0,1,1,0,0,0,0,0,0,0, 0,0,2,2,0,0,2,2,0,0, 0,0,3,3,0,0,3,3,0,0, 0,4,4,0,0,4,4,0,0,0 db 0,1,1,0,0,0,0,0,0,0, 0,0,0,2,2,2,2,0,0,0, 0,0,0,3,3,3,3,0,0,0, 0,4,4,0,0,0,4,4,0,0 db 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0 end start