亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? brick.asm

?? 用匯編寫的彈磚塊游戲
?? ASM
字號:
.model small
.stack 1024
.data
FILE    db      'map.txt', 00h
hfile   dw      ?
dummy   dw      ?
bricks  db      120 dup(7)                      ; 10x12(each 32x12)
ball2   db      15, 15,
                15, 15        
ball6   db      0 , 0 , 15, 15, 0 , 0 ,
                0 , 15, 15, 15, 15, 0 ,
                15, 15, 15, 15, 15, 15,
                15, 15, 15, 15, 15, 15,
                0 , 15, 15, 15, 15, 0 ,
                0 , 0 , 15, 15, 0 , 0
ball10  db      0 , 0 , 0 , 0 , 15, 15, 0 , 0 , 0 , 0 
        db      0 , 0 , 15, 15, 15, 15, 15, 15, 0 , 0 
        db      0 , 15, 15, 15, 15, 15, 15, 15, 15, 0 
        db      0 , 15, 15, 15, 15, 15, 15, 15, 15, 0
        db      15, 15, 15, 15, 15, 15, 15, 15, 15, 15
        db      15, 15, 15, 15, 15, 15, 15, 15, 15, 15
        db      0 , 15, 15, 15, 15, 15, 15, 15, 15, 0 
        db      0 , 15, 15, 15, 15, 15, 15, 15, 15, 0 
        db      0 , 0 , 15, 15, 15, 15, 15, 15, 0 , 0 
        db      0 , 0 , 0 , 0 , 15, 15, 0 , 0 , 0 , 0

balls   dw      ball2, ball6, ball10
sizes   dw      2, 6, 10

ball_x  dw      160
ball_y  dw      190
ball_r  dw      2

step_x  dw      1
step_y  dw      -1

buffle  dw      150
buf_len dw      32

delay_t dw      40
counter dw      ?

.code

; Draw the ball
; input:
;       ax: color
; modified: ax, cx
blit    proc    near
        push    bx
        push    si
        push    di

        push    ax                      ; count position in screen memory

        mov     ax, ball_y
        mov     bx, 320
        imul    bx
        add     ax, ball_x
        mov     di, ax

        pop     ax

        mov     bx, ball_r
        mov     bx, sizes[bx]
        mov     cx, bx                  ; cx = bx = counter

        test    ax, ax
        jz      do_clear

        mov     si, offset balls
        add     si, ball_r
        mov     si, [si]
loop6:            
        push    cx

        mov     cx, bx
        rep     movsb
        add     di, 320
        sub     di, bx

        pop     cx
        loop    loop6

        jmp     exit1
do_clear:
        xor     ax, ax
loop7:
        push    cx

        mov     cx, bx
        rep     stosb
        add     di, 320
        sub     di, bx

        pop     cx
        loop    loop7
exit1:
        pop     di
        pop     si
        pop     bx
        ret
blit    endp

; Draw the buffle
; ax:   color
;
paint   proc    near
        mov     di, 320 * 198
        add     di, buffle
        mov     ah, al

        mov     cx, buf_len
        shr     cx, 1
        rep     stosw

        add     di, 320
        sub     di, buf_len

        mov     cx, buf_len
        shr     cx, 1
        rep     stosw
        ret
paint   endp

; Draw a brick
; input:
;       al: color
;       di: position
; modified: ax, bx, cx
brick   proc    near
        push    di
        mov     ah, al
        mov     bx, 11
loop1:
        dec     bx
        mov     cx, 15
        rep     stosw
        stosb
        add     di, 320 - 31
        test    bx, bx
        jnz     loop1
        pop     di
        ret
brick   endp

bground proc    near
        mov     si, offset bricks
        xor     di, di
        xor     dx, dx
loop2:
        mov     al, [si]
        call    brick
        add     di, 32
        inc     si
        inc     dx
        cmp     dx, 10
        jb      skip1
        add     di, 320 * 11
        xor     dx, dx
skip1:
        cmp     si, offset bricks + 120
        jb      loop2
        ret
bground endp

; Delay for a while
; cx: time
;
delay   proc    near
loop8:
        push    cx
        mov     cx, 0
loop9:
        loop    loop9
        pop     cx
        loop    loop8
        ret
delay   endp

; Test if the ball come to edge
;
;
hitedge proc    near
        mov     ax, ball_x
        mov     bx, ball_y

        mov     si, ball_r
        mov     si, sizes[si]
        mov     cx, 318
        sub     cx, si

        cmp     ax, cx
        jg      x_edge
        cmp     ax, 1
        jl      x_edge

        mov     cx, 200
        sub     cx, si
        cmp     bx, cx
        jg      y_out
        cmp     bx, 1
        jl      y_edge
        jmp     skip4
x_edge:
        neg     step_x
        jmp     hit_edge
y_edge:
        neg     step_y
        jmp     hit_edge

y_out:
        mov     ax, 2
        ret
hit_edge:
        mov     ax, 1
        ret
skip4:
        xor     ax, ax
        ret
hitedge endp

;
; deal with special color brick
;
; dl: current color
;
spec    proc    near
        push    ax

        cmp     dl, 7                   ; color 7 and 1 has exchanged
        jz      spec1
        cmp     dl, 2
        jz      spec2
        cmp     dl, 3
        jz      spec3
        cmp     dl, 4
        jz      spec4
        cmp     dl, 5
        jz      spec5
        cmp     dl, 6
        jz      spec6
        cmp     dl, 1
        jz      spec7
        jmp     skip12
spec1:
                                ; nothing to do
        jmp     skip12
spec2:
        mov     ax, delay_t
        cmp     ax, 20
        jle     skip13
        sub     ax, 10
        mov     delay_t, ax
skip13:
        jmp     skip12
spec3:
        mov     ax, delay_t
        cmp     ax, 60
        jge     skip14
        add     ax, 10
        mov     delay_t, ax
skip14:
        jmp     skip12
spec4:
        xor     ax, ax
        call    blit

        mov     ax, ball_r
        cmp     ax, 4
        jge     skip15
        inc     ax
        inc     ax
        mov     ball_r, ax

        mov     ax, 1
        call    blit
skip15:
        jmp     skip12
spec5:
        xor     ax, ax
        call    blit

        mov     ax, ball_r
        cmp     ax, 0
        jle     skip16
        dec     ax
        dec     ax
        mov     ball_r, ax

        mov     ax, 1
        call    blit
skip16:
        jmp     skip12
spec6:
        xor     ax, ax
        call    paint

        mov     ax, buf_len
        cmp     ax, 56
        jge     skip17
        add     ax, 8
        mov     buf_len, ax

        mov     ax, 15
        call    paint
skip17:
        jmp     skip12
spec7:
        xor     ax, ax
        call    paint

        mov     ax, buf_len
        cmp     ax, 16
        jle     skip12
        sub     ax, 8
        mov     buf_len, ax

        mov     ax, 15
        call    paint
skip12:
        pop     ax
        ret
spec    endp

; Get the color of the position
; ax: y
; bx: x
; return dl
;
getcl   proc    near
        push    ax
        push    cx
        push    si

        mov     cx, 320
        mul     cx
        add     ax, bx
        mov     si, ax

        mov     dl, byte ptr es:[si]
        
        pop     si
        pop     cx
        pop     ax
        ret
getcl   endp

; Test if the ball hit a brick
;
;
hbrick  proc    near
        mov     si, ball_r
        mov     si, sizes[si]
        shr     si, 1

        mov     bx, ball_x                  ; UP
        add     bx, si
        mov     ax, ball_y
        dec     ax
        call    getcl
        mov     dh, dl
        inc     bx
        call    getcl
        or      dl, dh
        test    dl, dl
        jnz     up_down

        mov     bx, ball_x                  ; DOWN
        add     bx, si
        mov     ax, ball_y
        add     ax, si
        add     ax, si
        call    getcl
        mov     dh, dl
        inc     bx
        call    getcl
        or      dl, dh
        test    dl, dl
        jnz     up_down

        mov     bx, ball_x                  ; LEFT
        dec     bx
        mov     ax, ball_y
        add     ax, si
        call    getcl
        mov     dh, dl
        inc     ax
        call    getcl
        or      dl, dh
        test    dl, dl
        jnz     left_right

        mov     bx, ball_x                  ; RIGHT
        add     bx, si
        add     bx, si
        mov     ax, ball_y
        add     ax, si
        call    getcl
        mov     dh, dl
        inc     ax
        call    getcl
        or      dl, dh
        test    dl, dl
        jnz     left_right
        jmp     skip7
up_down:
        neg     step_y
        jmp     hit_brick
left_right:
        neg     step_x
hit_brick:
        cmp     dl, 7
        ja      skip7

        call    spec
        dec     counter

        push    ax              ; y = y - (y mod 12)
        mov     cx, 12           
        xor     dx, dx
        div     cx
        pop     ax
        sub     ax, dx
        xchg    ax, bx          ; bx = new y, ax = x

        push    ax              ; x = x - (x mod 32)
        mov     cx, 32
        xor     dx, dx
        div     cx              
        pop     ax
        sub     ax, dx
        xchg    ax, bx          ; ax = new y, bx = new x

        mov     cx, 320
        mul     cx
        add     ax, bx
        mov     di, ax

        xor     ax, ax
        call    brick
skip7:
        ret
hbrick  endp

; Move the ball
;
;
move    proc    near
        xor     ax, ax
        call    blit

        mov     ax, ball_x
        mov     bx, ball_y

        add     ax, step_x
        add     bx, step_y

        mov     ball_x, ax
        mov     ball_y, bx

        mov     ax, 1
        call    blit
        ret
move    endp

; play while
;
;
play    proc    near
        call    bground
play_loop:
        mov     cx, delay_t
        call    delay

        call    hitedge
        cmp     ax, 2
        jz      quit
        cmp     ax, 1
        jz      skip18

        call    hbrick
skip18:
        call    move

        mov     ax, counter             ; finished all
        test    ax, ax
        jz      quit

        mov     ah, 11h
        int     16h
        jz      play_loop

        mov     ah, 07h         ; get keyboard input
        int     21h
        cmp     al, 00
        jnz     skip5
        int     21h
skip5:
        cmp     al, 'K'
        jz      left
        cmp     al, 'M'
        jz      right
        cmp     al, 'q'
        jz      quit
        cmp     al, 27
        jz      quit
        jmp     skip6
left:
        xor     ax, ax
        call    paint

        mov     ax, buffle
        cmp     ax, 16
        jle     left_edge
        sub     ax, 16
        jmp     skip11
left_edge:
        mov     ax, 0
skip11:
        mov     buffle, ax

        mov     ax, 15
        call    paint
        jmp     skip6
right:
        xor     ax, ax
        call    paint

        mov     ax, buffle
        mov     cx, 320
        sub     cx, buf_len
        cmp     ax, cx
        jge     right_edge
        add     ax, 16
        jmp     skip12
right_edge:
        mov     ax, 320
        sub     ax, buf_len
skip12:
        mov     buffle, ax

        mov     ax, 15
        call    paint
skip6:
        jmp     play_loop
quit:
        ret
play    endp

read    proc    near
        mov     ah, 3dh
        mov     al, 00
        mov     dx, offset FILE
        int     21h
        jc      error1
        mov     hfile, ax

        mov     si, offset bricks
        mov     cx, 12
loop10:
        push    cx

        mov     ah, 3fh
        mov     bx, hfile
        mov     cx, 10
        mov     dx, si
        int     21h
        jc      error1

        mov     ah, 3fh
        mov     bx, hfile
        mov     cx, 2
        mov     dx, offset dummy
        int     21h
        jc      error1

        add     si, 10

        pop     cx
        loop    loop10

        mov     cx, 120
        mov     si, offset bricks
loop11:
        mov     al, [si]
        sub     al, '0'
        cmp     al, 1
        jz      to7
        cmp     al, 7
        jz      to1
        jmp     skip10
to7:
        mov     al, 7
        jmp     skip10
to1:
        mov     al, 1
skip10:
        mov     [si], al

        test    al, al
        jz      skip19
        inc     counter
skip19:

        inc     si
        loop    loop11
success:
        xor     ax, ax
        ret
error1:
        mov     ax, -1
        ret
read    endp

main    proc    near
        mov     ax, @data
        mov     ds, ax
        mov     ax, 0a000h
        mov     es, ax

        mov     ax, 0013h
        int     10h

        cld
        call    read
        call    play

        mov     ax, 0003h
        int     10h

        mov     ax, 4c00h       ;call dos to exit
        int     21h
main    endp
        end     main

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最大色网站| 欧美丝袜丝nylons| 日本道免费精品一区二区三区| 欧美日韩在线免费视频| 久久精品一区二区三区av| 亚洲主播在线播放| 成人av第一页| 2014亚洲片线观看视频免费| 亚洲一二三四在线观看| 不卡的av电影| 久久久久青草大香线综合精品| 亚洲成av人片一区二区梦乃| 成人激情图片网| 国产三级欧美三级日产三级99| 亚洲成人av中文| 在线视频一区二区三| 亚洲欧美在线视频| 国产成人欧美日韩在线电影| 精品久久久久一区| 日韩精品91亚洲二区在线观看| 97精品超碰一区二区三区| 久久九九99视频| 国内精品写真在线观看| 日韩午夜电影在线观看| 天天综合色天天| 欧美日韩国产色站一区二区三区| 国产精品国产三级国产专播品爱网 | 91精品国产免费| 天天综合色天天综合| 欧美日韩免费观看一区三区| 亚洲精品免费视频| 91福利在线观看| 亚洲精品大片www| 在线观看日韩精品| 亚洲国产cao| 欧美三区在线观看| 日本怡春院一区二区| 在线综合视频播放| 蜜臀av国产精品久久久久| 欧美成人福利视频| 国产一区二区三区久久久| 久久影院午夜论| 国产成a人亚洲| 国产精品久久综合| 91黄色激情网站| 五月婷婷综合激情| 精品国产91九色蝌蚪| 国产美女精品在线| 国产精品久线在线观看| 在线精品亚洲一区二区不卡| 午夜电影网亚洲视频| 欧美zozozo| 99久久精品情趣| 亚洲成年人网站在线观看| 91精品国产全国免费观看| 久久精品国产在热久久| 欧美激情一二三区| 欧美在线视频日韩| 麻豆国产精品一区二区三区 | 精品一二三四区| 国产日韩影视精品| 欧美午夜精品理论片a级按摩| 蜜桃精品视频在线| 亚洲欧美偷拍三级| 欧美一区二区久久久| 床上的激情91.| 亚洲第一精品在线| 中文字幕乱码久久午夜不卡 | 91玉足脚交白嫩脚丫在线播放| 亚洲一区二区在线免费看| 日韩欧美一区二区视频| av福利精品导航| 日韩电影一二三区| 亚洲视频在线观看三级| 欧美一区二区三区播放老司机| 国产福利一区二区| 日韩经典一区二区| 亚洲女同ⅹxx女同tv| 欧美大片一区二区三区| 在线免费av一区| 国产精品一区二区三区网站| 亚洲一区二区综合| 国产精品美女久久久久高潮| 欧美电影一区二区| 一本久久a久久精品亚洲| 麻豆91在线观看| 亚洲chinese男男1069| 中文乱码免费一区二区| 欧美一卡2卡3卡4卡| 91国产福利在线| 成人精品一区二区三区四区 | 99精品欧美一区二区三区小说| 精品一区二区三区在线观看国产| 亚洲最新视频在线观看| 国产精品久久久久婷婷二区次| 日韩欧美一级在线播放| 欧美性猛交一区二区三区精品| 丰满岳乱妇一区二区三区| 精东粉嫩av免费一区二区三区| 日韩精品亚洲一区二区三区免费| 亚洲自拍偷拍av| 亚洲美女免费在线| 亚洲欧洲三级电影| 国产精品污网站| 国产日本欧美一区二区| 久久综合久久99| 欧美精品一区二区三区蜜臀| 日韩一级在线观看| 欧美一区二区免费观在线| 91麻豆精品国产91久久久久久久久| 色88888久久久久久影院野外| 成人99免费视频| 成人午夜av影视| 成人激情校园春色| 91蝌蚪porny九色| 日本韩国一区二区三区视频| 色婷婷综合五月| 欧美午夜电影网| 欧美精选一区二区| 91精品国产麻豆| 日韩欧美国产一区在线观看| 日韩免费看网站| 国产欧美日韩综合精品一区二区| 国产日韩欧美精品综合| 国产精品久久国产精麻豆99网站| 国产精品成人一区二区三区夜夜夜| 国产精品国产成人国产三级| 中文字幕亚洲一区二区va在线| 专区另类欧美日韩| 亚洲国产精品欧美一二99| 免费人成精品欧美精品| 韩国三级中文字幕hd久久精品| 国产一区在线不卡| 99久久亚洲一区二区三区青草| 一本色道亚洲精品aⅴ| 欧美久久高跟鞋激| 久久婷婷综合激情| 一区在线观看免费| 日本欧美一区二区在线观看| 国产综合色在线| 99久久精品免费看国产免费软件| 欧美色视频在线| 日韩欧美国产不卡| 国产精品精品国产色婷婷| 亚洲国产精品一区二区www在线| 久久国产精品一区二区| 波多野结衣在线aⅴ中文字幕不卡| 色婷婷av一区二区三区gif| 欧美一级高清片| 日本一区二区综合亚洲| 亚洲成av人在线观看| 国产99久久久国产精品免费看 | 久久久久久久久久久久电影| 国产精品视频看| 日韩国产一区二| 成人免费毛片片v| 91精品国产一区二区三区| 国产精品家庭影院| 久久99精品一区二区三区| 91天堂素人约啪| 精品国产一区久久| 亚洲午夜在线电影| 成人一级片在线观看| 在线播放日韩导航| 一区二区中文视频| 国产经典欧美精品| 欧美高清性hdvideosex| 亚洲天堂福利av| 国产麻豆一精品一av一免费| 在线影院国内精品| 中文字幕国产精品一区二区| 日韩精品1区2区3区| 日本福利一区二区| 国产精品欧美综合在线| 六月丁香婷婷色狠狠久久| 在线精品国精品国产尤物884a| 久久久激情视频| 久久电影国产免费久久电影| 日本道色综合久久| 亚洲视频电影在线| 成人妖精视频yjsp地址| 久久综合精品国产一区二区三区| 午夜日韩在线观看| 在线影院国内精品| 一区二区在线观看免费| 成人ar影院免费观看视频| 国产视频911| 国产成人免费视频精品含羞草妖精| 制服丝袜中文字幕一区| 一区2区3区在线看| 日本久久一区二区| 亚洲美女区一区| 在线免费观看日本一区| 有坂深雪av一区二区精品| 99热99精品| 亚洲色图制服丝袜| 91成人免费网站| 亚洲高清视频中文字幕| 欧美日韩中文字幕一区二区| 亚洲精品视频在线观看网站|