Помогите раскомментировать программу (программа - игра змейка)
| Код | ;worm.asm ;ЏЁв® .model tiny .code .186 org 100h start: mov ax, cs ;заносим в ax адресс сегмента кода cs add ax, 1000h ;добавляем к ax 1000 mov ds, ax ;данные будут считываться с адреса cs + 1000h
push 0A000h pop es mov ax, 13h int 10h mov di, 320*200 mov cx, 600h rep stosb ;очистка экрана
xor si, si mov bp, 10 jmp init_food main_cycle: mov dx, 20000 mov ah, 86h int 15h mov ah, 1 int 16h jz short no_keypress xor ah, ah int 16h cmp ah, 48h jne short not_up mov word ptr cs:move_direction, -320h not_up: cmp ah, 50h jne short not_down mov word ptr cs:move_direction, 320 not_down: cmp ah, 4Bh jne short not_left mov word ptr cs:move_direction, -1 not_left: cmp ah, 4Dh jne short no_keypress mov word ptr cs:move_direction, 1 no_keypress: and bp, bp jnz short advance_head lodsw
xchg bx, ax mov byte ptr es:[bx], 0 mov bx, ax inc bp advance_head: dec bp add bx, word ptr cs:move_direction
mov al, es:[bx] and al, al jz short move_worm cmp al, 0Dh je short grow_worm mov ax, 3 int 10h retn
move_worm: mov [di], bx inc di inc di mov byte ptr es:[bx], 09 cmp byte ptr cs:eaten_food, 1 je if_eaten_food jmp short main_cycle grow_worm: push bx mov bx, word ptr cs:food_at xor ax, ax call draw_food call random and ax, 3Fh mov bp, ax mov byte ptr cs:eaten_food, 1 pop bx jmp short move_worm if_eaten_food: mov byte ptr cs:eaten_food, 0 init_food: push bx make_food: call random and ax, 0FFFEh mov bx, ax xor ax, ax cmp word ptr es:[bx], ax jne make_food cmp word ptr es:[bx+320], ax jne make_food mov ax, 0D0Dh call draw_food pop bx jmp main_cycle draw_food: mov es:[bx], ax mov word ptr es:[bx+320], ax retn random: mov ax, word ptr cs:seed mov dx, 8E45h mul dx inc ax mov cs:word ptr seed, ax retn
eaten_food db 0 move_direction dw 1
seed: food_at equ seed+2 end start
|
|