zoukankan      html  css  js  c++  java
  • masm 编译贪吃蛇游戏

    code:

    ;TITLE    GAME4TH   
    PAGE  60,132
    STSEG  SEGMENT
           DB 64 DUP (0)
    STSEG  ENDS
    ;-----------------------------------
    DTSEG  SEGMENT
    DATAH  DB   10H,10H,10H,10H,10H,10H,10H,10H,10H
    DATAL  DB   20H,21H,22H,23H,24H,25H,26H,27H,28H
    DTSEG  ENDS
    CR     EQU 0DH
    LF     EQU 0AH
    ;------------------------------------
    CDSEG SEGMENT 
    MAIN  PROC FAR
          ASSUME CS:CDSEG,DS:DTSEG,SS:STSEG
          MOV  AX,DTSEG
          MOV  DS,AX
          MOV  AX,0600H
          MOV  BH,00011110B
          MOV  CX,0
          MOV  DH,18H
          MOV  DL,04FH
          INT  10H
          
    FISH: MOV  AX,0600H
          MOV  BH,00011110B
          MOV  CX,0
          MOV  DH,18H
          MOV  DL,04FH
          INT  10H
          MOV  AH,02 
          MOV  BH,00     
          MOV  SI,OFFSET DATAH
          MOV  DI,OFFSET DATAL      
          MOV  DH,[SI]
          MOV  DL,[DI]
          INT  10H
          MOV  AX,0201H
          MOV  DL,'+'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+1
          MOV  DL,[DI]+1
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+2
          MOV  DL,[DI]+2
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+3
          MOV  DL,[DI]+3
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+4
          MOV  DL,[DI]+4
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+5
          MOV  DL,[DI]+5
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+6
          MOV  DL,[DI]+6
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+7
          MOV  DL,[DI]+7
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'#'
          INT  21H
          MOV  AH,02 
          MOV  BH,00
          MOV  DH,[SI]+8
          MOV  DL,[DI]+8
          INT  10H 
          MOV  AX,0201H
          MOV  DL,'>'
          INT  21H                      
          
    LOOP1:MOV  AH,0     ;循环输入
          MOV  AL,0
          INT  16H
          CMP  AH,72
          JE   UP                
          CMP  AH,80
          JE   DOWN   
          CMP  AH,77
          JE   RIGHT
          CMP  AH,75
          JE   LEFT  
           
    UP:   MOV  SI,OFFSET DATAH
          MOV  DI,OFFSET DATAL      
          MOV  DH,[SI]+8
          MOV  DL,[DI]+8
          MOV  CH,DH
          MOV  CL,DL
          DEC  DH
          MOV  [SI]+8,DH
          MOV  [DI]+8,DL  
          JMP  BACK            
                   
    DOWN: MOV  SI,OFFSET DATAH
          MOV  DI,OFFSET DATAL      
          MOV  DH,[SI]+8
          MOV  DL,[DI]+8
          MOV  CH,DH
          MOV  CL,DL
          INC  DH
          MOV  [SI]+8,DH
          MOV  [DI]+8,DL 
          JMP  BACK         
     
    LEFT: MOV  SI,OFFSET DATAH
          MOV  DI,OFFSET DATAL      
          MOV  DH,[SI]+8
          MOV  DL,[DI]+8
          MOV  CH,DH
          MOV  CL,DL
          DEC  DL
          MOV  [SI]+8,DH
          MOV  [DI]+8,DL 
          JMP  BACK          
      
    RIGHT:MOV  SI,OFFSET DATAH
          MOV  DI,OFFSET DATAL      
          MOV  DH,[SI]+8
          MOV  DL,[DI]+8
          MOV  CH,DH
          MOV  CL,DL
          INC  DL
          MOV  [SI]+8,DH
          MOV  [DI]+8,DL 
          JMP  BACK
                
    BACK: MOV  DH,[SI]+7
          MOV  DL,[DI]+7  
          MOV  [SI]+7,CH
          MOV  [DI]+7,CL 
          MOV  CH,DH
          MOV  CL,DL
          MOV  DH,[SI]+6
          MOV  DL,[DI]+6  
          MOV  [SI]+6,CH
          MOV  [DI]+6,CL 
          MOV  CH,DH
          MOV  CL,DL
          MOV  DH,[SI]+5
          MOV  DL,[DI]+5  
          MOV  [SI]+5,CH
          MOV  [DI]+5,CL 
          MOV  CH,DH
          MOV  CL,DL
          MOV  DH,[SI]+4
          MOV  DL,[DI]+4  
          MOV  [SI]+4,CH
          MOV  [DI]+4,CL 
          MOV  CH,DH
          MOV  CL,DL
          MOV  DH,[SI]+3
          MOV  DL,[DI]+3  
          MOV  [SI]+3,CH
          MOV  [DI]+3,CL 
          MOV  CH,DH
          MOV  CL,DL 
          MOV  DH,[SI]+2
          MOV  DL,[DI]+2  
          MOV  [SI]+2,CH
          MOV  [DI]+2,CL 
          MOV  CH,DH
          MOV  CL,DL
          MOV  DH,[SI]+1
          MOV  DL,[DI]+1  
          MOV  [SI]+1,CH
          MOV  [DI]+1,CL 
          MOV  CH,DH
          MOV  CL,DL 
          MOV  DH,[SI]
          MOV  DL,[DI]  
          MOV  [SI],CH
          MOV  [DI],CL 
          MOV  CH,DH
          MOV  CL,DL
          JMP  FISH      
          
    MAIN  ENDP 
    CDSEG ENDS       
          END  MAIN
  • 相关阅读:
    Xamarin.Forms项目无法添加服务引用
    Xamarin Android长度单位区别
    21IC菜农研究的HotWC3超级CRC运算器
    Delphi天气预报查询
    超外差接收机工作原理?
    ARM汇编指令的特点和速查表
    序列号的设计,不重复的实现一机一码
    iOS第一个简单APP
    GetEnvironmentVariable 获取常用系统变量(转)
    Delphi版的Base64转换函数(修改版)
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10879115.html
Copyright © 2011-2022 走看看