8086 program code for snake game

org     100hjmp     starts_size  equ     7snake dw s_size dup(0)tail    dw      ?left    equ     4bhright   equ     4dhup      equ     48hdown    equ     50hcur_dir db      rightwait_time dw    0start:mov     ah, 1mov     ch, 2bhmov     cl, 0bhint     10hgame_loop:mov     al, 0mov     ah, 05hint     10hmov     dx, snake[0]mov     ah, 02hint     10hmov     al, '*'mov     ah, 09hmov     bl, 0ehmov     cx, 1int     10hmov     ax, snake[s_size * 2 - 2]mov     tail, axcall    move_snakemov     dx, tailmov     ah, 02hint     10hmov     al, ' 'mov     ah, 09hmov     bl, 0ehmov     cx, 1int     10hcheck_for_key:mov     ah, 01hint     16hjz      no_keymov     ah, 00hint     16hcmp     al, 1bhje      stop_gamemov     cur_dir, ahno_key:mov     ah, 00hint     1ahcmp     dx, wait_timejb      check_for_keyadd     dx, 4mov     wait_time, dxjmp     game_loopstop_game:mov     ah, 1mov     ch, 0bhmov     cl, 0bhint     10hretmove_snake proc nearmov     ax, 40hmov     es, ax  mov   di, s_size * 2 - 2  mov   cx, s_size-1move_array:  mov   ax, snake[di-2]  mov   snake[di], ax  sub   di, 2  loop  move_arraycmp     cur_dir, left  je    move_leftcmp     cur_dir, right  je    move_rightcmp     cur_dir, up  je    move_upcmp     cur_dir, down  je    move_downjmp     stop_movemove_left:  mov   al, b.snake[0]  dec   al  mov   b.snake[0], al  cmp   al, -1  jne   stop_move  mov   al, es:[4ah]  dec   al  mov   b.snake[0], al  jmp   stop_movemove_right:  mov   al, b.snake[0]  inc   al  mov   b.snake[0], al  cmp   al, es:[4ah]  jb    stop_move  mov   b.snake[0], 0  jmp   stop_movemove_up:  mov   al, b.snake[1]  dec   al  mov   b.snake[1], al  cmp   al, -1  jne   stop_move  mov   al, es:[84h]  mov   b.snake[1], al  jmp   stop_movemove_down:  mov   al, b.snake[1]  inc   al  mov   b.snake[1], al  cmp   al, es:[84h]  jbe   stop_move  mov   b.snake[1], 0  jmp   stop_movestop_move:  retmove_snake endp


Comments

Popular posts from this blog

MATLAB code for Circular Convolution using Matrix method

Positive number pipe in angular 2+