日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux编写弹球游戏,汇编写的DOS弹球游戏

發(fā)布時間:2023/12/18 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux编写弹球游戏,汇编写的DOS弹球游戏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

;左移右移End鍵結(jié)束游戲

;編譯環(huán)境?TASM3.0?編譯成.com文件比較好!

sleep?macro?timeb;延時宏指令

push?cx

mov?cx,?timeb

call?waits

pop??cx

endm

cls?macro?;清屏宏指令

push?ax

push?bx

push?cx

push?dx

mov?ah,?06H

mov?al,?0

mov?ch,?0

mov?cl,??0

mov?dh,?30h

mov?dl,??5fh

mov?bh,?0fh

int?10H

pop?dx

pop?cx

pop?bx

pop?ax

endm

drawRect?macro?x,?y,?w,?h,?att;繪圖宏指令

push?ax

push?bx

push?cx

push?dx

mov?ah,?06h

mov?ch,??y

mov?cl,???x

Call?SafeXY;保證坐標(biāo)安全

mov?dl,??cl

mov?dh,?ch

add??dl,???w

add??dh,??h

mov?al,???dh

sub??al,???ch

mov?bh,?att

int?10H

pop?dx

pop?cx

pop?bx

pop?ax

endm;==========主程序開始===========

Code?segment?USE16

assume?cs:code,?ds:code

org?100H

start:

mov?dl,??1;dl,dh寄存器作為全局坐標(biāo)增量

mov?dh,?1

for1:?cls;所有操作全部在for1?循環(huán)里

push?cx;雙For繪制磚塊

mov?cx,??4

mov?byte?ptr[recy],??0

mov?si,?offset?rec_array

rec1:

push?cx

mov?cx,?12

mov?byte?ptr[recx],?0

rec2:

cmp?byte?ptr[si],?0;判斷是否已經(jīng)被銷毀

JZ?go4;已經(jīng)不存在了

drawRectrecx,?recy,?6,?2,?clr1;還存在

mov?bh,?byte?ptr[ypos];判斷小球的臨時坐標(biāo)

mov?bl,??byte?ptr[xpos]

cmp?bh,??recy;

JG?go4;是否進(jìn)入磚塊區(qū)

push?ax

mov?ah,?0

mov?al,??recx

cmp?bl,??al

JL?te

add??al,??6

cmp?bl,?al

JG?te;是否撞上磚塊

mov??byte?ptr[si],??0;將此坐標(biāo)置為0

NOT?dh;小球要反彈

te:?pop???ax

go4:

add?byte??ptr[recx],??6

add?byte??ptr[clr1],??0fh

cmp?byte?ptr[clr1],??7fh

JL?go3

mov?byte?ptr[clr1],??1fh

go3:?inc?si

loop?rec2

pop???cx

add??byte?ptr[recy],??3

loop?rec1

pop???cx

IN?AL,?60H;讀取鍵盤操作左右

CMP?AL,?79

jne?ifL

jmp?Exit0

ifL:?cmp?al,?75;操作擋板左右移動

jne?ifR

cmp?byte?ptr[ballx],?6

JL?go2

sub?byte?ptr[ballx],?6

ifR:?cmp?al,?77

jne?go2

cmp?byte?ptr[ballx],?64

JG?go2

add?byte?ptr[ballx],?6

go2:?;移動小球

add?byte?ptr?[xpos],?dl

add?byte?ptr?[ypos],?dh

drawRect???xpos,??ypos,??1,?1,??2eh

drawRect???ballx,??bally,??12,1,?3eh

sleep??60

push?bx

mov?bl,??byte?ptr[xpos]

mov?bh,?byte?ptr[ypos]

b1:?cmp?bl,?72;撞上右邊界?

JL?b2

NOT?dl

b2:?cmp?bl,???1;撞上左邊界?

JG?b3

add?byte?ptr[xpos],?4

NOT?dl

b3:?cmp?bh,??46;掉到下邊界,程序結(jié)束!

JL?b4

jmp?Exit0

b4:?cmp?bh,??1;撞上頂?

JG?b5

add?byte?ptr[ypos],?2

NOT?dh

b5:?push?ax;判斷小球是否撞到擋板

mov?ah,?0

mov?al,??bally

sub??al,??12

cmp?bh,?al

JL?be

mov?al,??ballx

cmp?bl,??al

JL?be

add??al,???6

cmp?bl,??al

JG?be

NOT?dh

be:???pop?ax

go1:?pop???bx

jmp?for1;返回for1

Exit0:?mov?ah,?4ch

int?21h

;===========延時子程序===========

waits?proc?near

w1:?Wait

push?cx

mov?cx,?0ffh

w2:?Wait

push?cx

mov?cx,?0fffh

w3:?Wait

Loop?w3

pop???cx

Loop?w2

pop???cx

Loop?w1

RET

waits?endp

SafeXY?proc?near;保證坐標(biāo)安全子程序

d0:?cmp?ch,?1

jg?d1

mov?ch,?1

d1:?cmp?cl,??1

jg?d2

mov?cl,?1

d2:?cmp?cl,?64

jl?d3

mov?cl,?64

d3:?ret

SafeXY?endp

;============數(shù)據(jù)段=============

rec_arraydb?4*12?dup(1)

recxdb2

recydb0

clr1db1fh

xpos?db12

ypos?db7

xddb2

yddb1

ballxdb32

ballydb44

code?ends

end?start

總結(jié)

以上是生活随笔為你收集整理的linux编写弹球游戏,汇编写的DOS弹球游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。