匯編語言課程設計貪吃蛇
① 求用匯編語言編寫的小游戲代碼
前兩天剛編了一個「貪吃蛇」的游戲。雖然是小游戲,功能非常簡單,整整做了兩天才出來,但代碼300多行。
② 匯編語言貪吃蛇游戲
使用匯編語言編游戲,簡直是在玩命
③ 匯編語言課程設計
CODESEGMENT
ASSUMECS:CODE
STR1DB'$'
LENGTH1DB0
START:PUSHCS
POPDS
CALLCOUNT
MOVAL,LENGTH1
CALLDSPAL
MOVAH,4CH
INT21H
;===============================
COUNT:
LEASI,STR1
CLD
@1:
LODSB
CMPAL,'$'
JE@EXIT
CMPAL,'0'
JB@1
CMPAL,'9'
JA@1
INCBYTEPTRLENGTH1
JMP@1
@EXIT:
RET
;===============================
DSPALPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
XORAH,AH
XORCX,CX
MOVBL,10
@DSPAL1:
DIVBL
INCCX
MOVDL,AH
XORAH,AH
ORDX,30H
PUSHDX
CMPAL,0
JNE@DSPAL1
MOVAH,2
@DISPAL2:
POPDX
INT21H
LOOP@DISPAL2
MOVDL,32
INT21H
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPALENDP
;================================
CODEENDS
ENDSTART
④ 匯編語言課程設計做九九乘法表!誰能幫忙解釋每行代碼的功能嗎我明天上午課程設計的論文答辯!謝謝
data segment ;數據段定義
d1 db ' ','$' ;輸出空格
d2 db ' ',13,10,'$' ;輸出回車換行
data ends
assume cs:code,ds:data
code segment
start:
mov ax,data ;裝載ds
mov ds,ax ;
mov bh,1 ;准備開始做乘法
mov bl,1 ;
mov cx,9 ;從1—9的乘法
lop_0:
push cx ;保護cx,保障大循環的次數
push bx
mov bh,0
mov cx,bx
pop bx
mov bh,1
lop_1:
mov ah,02h ;輸出1
mov dl,bl
or dl,30h
int 21h
mov ah,02h ;輸出*
mov dl,'*'
int 21h
mov ah,02h ;輸出bh
mov dl,bh
or dl,30h
int 21h
mov ah,02h ;輸出等於號
mov dl,'='
int 21h
mov al,bh ;做乘法用BH裡面的乘以bL裡面的數
mul bl
mov dl,al
cmp al,09h ;判斷數的大小 選擇輸出的函數,建議寫一個函數!
ja dtoc
jb disp0
je disp0
ff:
mov dx,offset d1 ;輸出換行
mov ah,09h
int 21h
inc bh ;bh加1
loop lop_1 ;循環做 bl * bh ,bl一直沒變,通過bh增加得到 1*1 1*2 1*3 .........
lea dx,d2 ;輸出換行
mov ah,09h
int 21h
inc bl ;bl增加1 下次從2開始 2*1 2*2 ,,, 不斷循環 從而得到 3 , 4 , 5, 6
pop cx ;恢復cx 得到大循環次數
loop lop_0
jmp exit00 ;下面都是轉換輸出的,建議寫一個函數 就不多說了
disp0:
mov ah,02h
or dl,30h
int 21h
jmp ff
dtoc:
push ax
push bx
push cx
push dx
mov cx,2
lp5:
mov ah,0
mov bh,10
div bh
push ax
loop lp5
mov cx,2
lp6:
pop ax
mov dl,ah
or dl,30h
mov ah,02h
int 21h
loop lp6
pop dx
pop cx
pop bx
pop ax
jmp ff
exit00:
mov ah,4ch
int 21h
code ends
end start
⑤ 怎樣使用匯編語言,讓貪吃蛇穿牆
- >
⑥ 匯編語言貪吃蛇
;*****************************************************************
;程序名 : 貪吃蛇
;程序作者: Softgsy
;編程時間: 2008-04-19
;修改時間: 2008-04-23;04-25;04-26
;*****************************************************************
;___________________________________________________文檔__________
;函數功能:
;Protect和Recover : 保護和恢復寄存器現場
;Display : 顯示蛇頭的'*'和用' '覆蓋舊蛇尾的'*'
;Curser : 將游標置於方框外
;Move : 移動蛇,並判斷蛇長是否已經滿15,並置al:ffh
;nextstep : 蛇移動一步
;judge : 判斷蛇的前方是什麼(al作介面):
; 00h:食物 0fh:正常 f0h:障礙
;food : 置食物
;_________________________________________________________________
include macro_snake.inc
;*********************************************數據段定義**********
Data segment
snake dw 0101h,0102h,0103h,13 p(0000h)
graph db 9 p('#'),0dh,0ah,'#*** #',0dh,0ah
db 11 p('#',7 p(' '),'#',0dh,0ah)
db 9 p('#'),0dh,0ah,'$'
win db 'You Win!',0dh,0ah,'$'
lose db 'What a pity!',0dh,0ah,'$'
direction dw 0064h
speed1 equ 1000h
speed2 equ 0100h
Data ends
;*********************************************堆棧段定義**********
Stack segment stack
dw 0ffh p(?)
Stack ends
;*********************************************附加段定義**********
Extra segment
snake_food dw 0b06h,0703h,0c01h,0204h,0606h,0a02h,0405h,0905h
dw 0101h,0c04h,0502h,0207h,0c07h,0604h,0c02h,0304h
Extra ends
;*********************************************代碼段定義**********
Code segment
assume cs:Code,ds:Data,ss:Stack,es:Extra
;*********************************************主程序定義**********
start:
mov ax,Data
mov ds,ax
mov ax,Stack
mov ss,ax
mov ax,Extra
mov es,ax
mov dx,offset graph
mov ah,09h
int 21h
mov bx,0000h ;蛇尾位置及bh頁號
mov si,0002h ;蛇頭位置
mov di,offset snake_food
call food
xor ax,ax
outloop:
cmp al,0ffh
jz gamewin
cmp al,0f0h
jz gamelose
call nextstep
jmp outloop
gamewin:
mov dx,offset win
mov ah,09h
int 21h
jmp gameover
gamelose:
mov dx,offset lose
mov ah,09h
int 21h
gameover:
mov ax,4c00h
int 21h
;*********************************************子程序定義**********
;_____________________________________________向前走一步__________
nextstep proc near
input:
get_direction direction,speed1,speed2
mov ax,direction
cmp al,'a'
jz m_l
cmp al,'A'
jz m_l
cmp ah,4bh
jz m_l
cmp al,'d'
jz m_r
cmp al,'D'
jz m_r
cmp ah,4dh
jz m_r
cmp al,'w'
jz m_u
cmp al,'W'
jz m_u
cmp ah,48h
jz m_u
cmp al,'s'
jz m_d
cmp al,'S'
jz m_d
cmp ah,50h
jz m_d
jmp input
m_l:
Move sub,0001h
jmp ret_
m_r:
Move add,0001h
jmp ret_
m_u:
Move sub,0100h
jmp ret_
m_d:
Move add,0100h
jmp ret_
ret_: ret
nextstep endp
;_____________________________________________判斷下一步__________
judge proc near ;00h:食物,0fh:正常,f0h:障礙
push cx
mov ah,02h
int 10h
mov ah,08h
int 10h
mov ch,al
mov al,00h
cmp ch,'o'
jz outjudge
mov al,0fh
cmp ch,' '
jz outjudge
mov al,0f0h
outjudge:
pop cx
ret
judge endp
;_____________________________________________置食物函數__________
food proc near
Protect
inc si
and si,000fh
mov cx,bx
getfood:
add di,0002h
cmp di,20h
jb go_on
xor di,di
go_on:
mov bx,cx ;保證每次檢查都從尾開始
lp:
shl bx,1
mov dx,es:[di]
cmp dx,snake[bx]
jz getfood
shr bx,1
inc bx
and bx,000fh
cmp bx,si
jnz lp
mov dx,es:[di]
mov ah,02h
int 10h
mov al,'o'
mov ah,0eh
int 10h
Curser
Recover
ret
food endp
;*********************************************子程序結束**********
Code ends
end start
⑦ 匯編語言課程設計題目要求如下
用C語言寫,然後反匯編
⑧ 單片機8*8點陣的貪吃蛇游戲 51單片機匯編程序
單片機,晶振,液晶屏,按鍵,電阻,電容,電源及PCB板等,認為必要的話,還可准備一些發光二極體作指示燈。也可采購一套開發板套件,大部分開發板套件都有上述器件。
⑨ 簡單的匯編語言貪吃蛇
正在編制...
能提高懸賞更好,不能提高,我也會繼續編制,只是這個題目確有難度,累得我頭暈眼花。