org r2: mov cx,01h mov ah,02h int 10h

org 100h.model small.stack 100h.data snakelenght dw 7hprompt db ‘GAME OVER!’,’$’scoring db ‘SCORE: ‘,’$’  snake dw 0A11h,0A12h,0A13h,0A14h,0A15h,0A16h,0A17hdirection dw 4D00h bound db 03h,0Eh,15h,41hscolor db 1Ehbcolor db 13h food db 00h,00hscore dw 0000h.codemain proc              call boundry    mov bh,bcolor    call back    call putfood     m:    mov ah,01h    int 16h    jz nokey    mov ah,00h    int 16h    call changeDir     nokey:    call isCollision    cmp bx,01h    je over    cmp food,00h    jne nf     inc score    call putfood    nf:    call move    call view    jmp m    over:    mov scolor,17h    call view     call gameover        .exit    main endp                boundry proc    mov dh,bound    mov dl,bound+1    mov bx,0024h    r:    mov cx,1    mov ah,02h       int 10h    mov ax,0920h    int 10h     add dl,01h     mov cl,bound+3    cmp dl,cl    jne r      r2:    mov cx,01h    mov ah,02h       int 10h    mov ax,0920h    int 10h    add dh,01h     mov cl,bound+2    cmp dh,cl    jne r2       r3:       mov cx,01h    mov ah,02h       int 10h    mov ax,0920h    int 10h            sub dl,01h    mov cl,bound+1    cmp dl,cl    jne r3     r4:    mov cx,01h    mov ah,02h       int 10h    mov ax,0920h    int 10h     sub dh,01h    mov cl,bound    cmp dh,cl    jne r4    ret    boundry endp               changeDir proc    cmp ah,48h    jne nxt1    cmp direction,4800h    je out1    cmp direction,5000h    je out1    mov direction,4800h      jmp out1    nxt1:    cmp ah,4Bh    jne nxt2      cmp direction,4B00h    je out1    cmp direction,4D00h    je out1     mov direction,4B00h     jmp out1    nxt2:      cmp ah,4Dh    jne nxt3      cmp direction,4B00h    je out1    cmp direction,4D00h    je out1           mov direction,4D00h     jmp out1    nxt3:    cmp ah,50h    jne out1      cmp direction,4800h    je out1    cmp direction,5000h    je out1    mov direction,5000h                         out1:    ret    changeDir endp                 move proc     push snake    mov si,0000h    mov cx,snakelenght    sub cx,1    j:    mov dx,snake+si+2    mov snake+si,dx     add si,2       loop j     cmp direction,4800h    jne n1    sub snake+si,0100h    jmp out2    n1:     cmp direction,4B00h    jne n2    sub snake+si,0001h    jmp out2    n2:     cmp direction,4D00h    jne n3    add snake+si,0001h    jmp out2    n3:     cmp direction,5000h    jne out2    add snake+si,0100h    out2:      pop dx    ret    move endp;;;;;;;;;;;;;;;;;;;;;;prints snake;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;view proc    mov bh,0    mov ah,2h    int 10h    mov ah,9h    mov al,20h    mov bl,1Eh    mov cx,1h    int 10h     mov cx,snakelenght    i:        mov ah,2     mov bh,0     mov si,cx    add si,cx    push cx       sub si,2    mov dx,snake+si    int 10h    mov ah,9h    mov al,2Ah    mov bl,scolor    mov cx,1    int 10h     pop cx    loop i    mov ah,02h    mov dh,food    mov dl,food+1    mov bh,0h    int 10h    mov ah,9h    mov al,04h    mov cx,1h    int 10h     ret    view endp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Back Ground Uses BH;;;;;;;;;;;;;;;;;;;;back proc    push ax    push cx    push dx    mov ax,0600h    mov ch,bound     inc ch    mov cl,bound+1    inc cl    mov dh,bound+2    dec dh    mov dl,bound+3    dec dl     int 10h    pop dx        pop cx    pop ax    ret    back endpisCollision proc    mov bx,00    mov cx,snakelenght    sub cx,1h    mov si,cx    add si,cx    mov dx,snake+si     cmp dl,bound+1    ja nx1    mov bx,01h    jmp out3    nx1:    cmp dl,bound+3    jb nx2    mov bx,01h    jmp out3    nx2:    cmp dh,bound    ja nx3    mov bx,01h    jmp out3    nx3:    cmp dh,bound+2    jb nx4    mov bx,01h    jmp out3    nx4:    out3:     mov cx, snakelenght    dec cx    mov si, cx    add si, cx    mov ax, snake+si    loo:    sub si, 2    cmp ax, snake+si    je ko    loop loo    jmp ko1    ko:    mov bx,01h    ko1:          mov dh,food,    mov dl,food+1    mov si,snakelenght    dec si    add si,si    cmp dx,snake+si    jne l5    mov food,00h    mov food+1,00h    l5:    ret    isCollision endp putfood proc       mov ah,00h    int 1Ah    mov ax,dx    and ah,00001111b     mov bl,bound+2    sub bl,bound    sub bl,1    div bl    mov bh,ah     mov ah,00h    int 1Ah    mov ax,dx    and ah,00001111b     mov bl,bound+3    sub bl,bound+1    sub bl,1    div bl    mov bl,ah    add bh,bound    add bl,bound+1    mov food,bh     inc food    mov food+1,bl    inc food+1    ret    putfood endp   gameover proc    mov ah,02h    mov dh,bound+2    inc dh    mov dl,bound+1    add dl,15h    mov bh,0h    int 10h    lea dx,prompt    mov ah,09h    int 21h      mov ah,02h    mov dh,bound+2    add dh,02h    mov dl,bound+1    add dl,15h    mov bh,0h    int 10h     lea dx,scoring    mov ah,09h    int 21h      mov bx,score    call convert    ret    gameover endp convert proc    mov ax,bx    mov cx,00h    l:    mov bx,10    mov dx,00    div bx    inc cx       add dl,30h    push dx     cmp ax,00h    je mlet    jmp l    mlet:    jlet:    pop dx    mov ah,02h    int 21h    loop jlet    ret    convert endpend main

x

Hi!
I'm Mary!

Would you like to get a custom essay? How about receiving a customized one?

Check it out