⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 num2.asm

📁 汇编小游戏
💻 ASM
字号:
.model  small
.stack  64
.data
point1  word    2   dup(?)
point2  word   2   dup(?)
shoot   word    250
gun     word    250
.code
main    proc
mov ax,@data
mov ds,ax
mov ah,00
mov al,12h
int 10h
L1:
    mov cx,3
    L2:
    mov ah,01
    int 16h
    jz  r1
    jmp r2
    r1:
    jmp L7
    r2:
    mov ah,00
    int 16h
    cmp al,64h
    jne L3
    call    cleargun
    add gun,12
    cmp gun,531
    jbe L4
    
    sub gun,12
    L4:
    
    call    gunshow
    call    delay
    jmp L7
    L3:
        cmp al,61h
        jne L5
        call    cleargun
        sub gun,12
        cmp gun,105
        jae L6
        
        add gun,12
        L6:
        
        call    gunshow
        call    delay
        jmp L7
        L5:
        cmp al,73h
        jne L7
        call    bullet
        call    delay
        call    bulletclear
        mov ax,gun
        sub ax,shoot
        cmp ax,0
        jb  L7
        cmp ax,12
        ja  L7
        call    cleartarget
        mov shoot,89
                jmp L7
         r3:
        jmp L2

        L7: loop    r3
        call    cleartarget
        call    targetmov
        call    gunshow
        call    side
        call    delay
        call    delay
        mov al,0
        mov ah,01
        int 16h
        cmp al,71h
        je  L8
        jmp L1
        L8:
        mov ah,4ch
        int 21h
main    endp

draw    proc
    push    si
    push    di
    push    dx
    push    cx
    push    ax
    mov si,offset   point1
    mov di,offset   point2
    mov dx,[si]
    mov ah,0ch
    draw1:
        mov cx,[si+2]
        draw2:
            int 10h
            inc cx
            cmp cx,[di+2]
            jbe draw2
            inc dx
            cmp dx,[di]
            jbe draw1
            pop ax
            pop cx
            pop dx
            pop di
            pop si
            ret
draw    endp

side    proc
    push    si
    push    di
    push    ax
    push    bx
    mov si,offset   point1
    mov di,offset   point2
    mov al,01
    mov bh,0
    mov [si],9
    mov [si+2],100
    mov [di],10
    mov [di+2],540
    call    draw
    mov [si],9
    mov [si+2],540
    mov [di],469
    mov [di+2],539
    call    draw
    mov [si],9
    mov [si+2],100
    mov [di],469
    mov [di+2],101
    call    draw
    mov al,02
    mov [si],469
    mov [si+2],100
    mov [di],470
    mov [di+2],540
    call    draw
    pop bx
    pop ax
    pop di
    pop si
        ret
    side    endp
    
    targetmov     proc
        push    si
        push    di
        push    ax
        push    bx
        add shoot,12
        cmp shoot,527
        jbe mov1
        mov shoot,101
        mov1:
        mov si,offset   point1
        mov di,offset   point2
        mov ax,shoot
        mov [si],20
        mov [si+2],ax
        mov [di],26
        add ax,12
        mov [di+2],ax
        mov bh,00
        mov al,02
        call    draw
        pop bx
        pop ax
        pop di
        pop si
        ret
    targetmov   endp
    
gunshow proc
    push    si
    push    di
    push    ax
    push    bx
    mov si,offset   point1
    mov di,offset   point2
    mov [si],451
    mov ax,gun
    mov [si+2],ax
    mov [di],463
    add ax,4
    mov [di+2],ax
    mov al,04
    mov bh,0
    call    draw
    mov ax,gun
    mov [si],463
    sub ax,4
    mov [si+2],ax
    mov [di],469
    add ax,12
    mov [di+2],ax
    mov    bh,0
    mov al,2
    call    draw
    pop bx
    pop ax
    pop di
    pop si
    ret
    gunshow endp
    cleargun   proc
    push    si
    push    di
    push    ax
    push    bx
    mov si,offset   point1
    mov di,offset   point2
    mov [si],451
    mov ax,gun
    mov [si+2],ax
    mov [di],463
    add ax,4
    mov [di+2],ax
    mov al,00
    mov bh,0
    call    draw
    mov ax,gun
    mov [si],463
    sub ax,4
    mov [si+2],ax
    mov [di],469
    add ax,12
    mov [di+2],ax
    mov    bh,0
    mov al,00
    call    draw
    pop bx
    pop ax
    pop di
    pop si
    ret
    cleargun   endp
    cleartarget proc
     push    si
        push    di
        push    ax
        push    bx
        mov si,offset   point1
        mov di,offset   point2
        mov ax,shoot
        mov [si],20
        mov [si+2],ax
        mov [di],26
        add ax,12
        mov [di+2],ax
        mov bh,00
        mov al,00
        call    draw
        pop bx
        pop ax
        pop di
        pop si
        ret
    cleartarget endp
    
delay   proc
    push    cx
    push    ax
    mov cx,8286
    delay1:
        in  al,61h
        cmp al,ah
        je  delay1
        mov ah,al
        loop    delay1
    pop ax
    pop cx
    ret
delay   endp

bullet  proc
push    si
push    di
push    ax
push    bx
push    cx
mov al,7
mov bh,00
mov si,offset   point1
mov di,offset   point2
mov cx,gun
mov [si],26
mov [si+2],cx
mov [di],451
mov [di+2],cx
call    draw
pop cx
pop bx
pop ax
pop di
pop si
ret
bullet  endp
bulletclear proc
push    si
push    di
push    ax
push    bx
push    cx
mov al,0
mov bh,00
mov si,offset   point1
mov di,offset   point2
mov cx,gun
mov [si],26
mov [si+2],cx
mov [di],451
mov [di+2],cx
call    draw
pop cx
pop bx
pop ax
pop di
pop si
ret
bulletclear endp

end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -