| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2368 人关注过本帖
标题:编程在屏幕上显示一个开动的汽车
只看楼主 加入收藏
纸莎草
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:5 
编程在屏幕上显示一个开动的汽车
编程在屏幕上显示一个开动的汽车
提示:在屏幕上显示出动画的效果,可分5步进行
     1、在屏幕上显示图形(单字符或多字符图形)。
       2、延迟一个时间周期,这样图形更清晰。
       3、清除图形。                                 
     4、改变图形的行列坐标。
       5、返回第一步,重复上述过程。
搜索更多相关主题的帖子: 屏幕 汽车 开动 
2008-01-03 10:43
纸莎草
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-10-21
收藏
得分:0 
帮忙给我改一改,急要!!!!!!!感谢感谢!!!!!
源程序如下:
DATA    SEGMENT
   CAR DB   7
       DB 52H,7,0,0
       DB 0B1H,7,0,1
       DB 0DBH,7,0,1
       DB 0DBH,7,0,1
       DB 4FH,7,1,0
       DB 4FH,7,0,-3
       DB 2,7,-2,1   
CHAR_CNT    DW ?               
   POINTER    DW ?
LINE_ON    DB ?                  
 COL_ON     DB ?
DATA    ENDS
CODE        SEGMENT
        ASSUME CS:CODE,DS:DATA
MAIN         PROC    FAR            
         PUSH     DS
        SUB       AX,AX
        PUSH    AX
        MOV     AX,DATA       ; ;初始化DS
MOV     DS,AX
        MOV     AH,0  ; ;设置300×200彩色图形方式
        MOV     AL,4            
            INT     10H
        MOV     AH,0BH    ;;设置背景颜色
        MOV     BH,0            
              MOV         BL,2
    INT    10H
        MOV     AH,0BH   ; ;设置彩色调板
        MOV     BH,01           
              MOV         BL,00
    INT    10H
        CALL    CLEAR_SCREEN   ; ;清屏
LEA     DI,CAR            ; ;DI指向字符图形表
        MOV     DH,5        ;;从第5行5列位置开始
        MOV     DL,5       ;  ;显示汽车
    CALL    MOVE_SHAPE
    RET           
     MAIN  ENDP

CLEAR_SCREEN     PROC NEAR
        PUSH    AX      ;;保护寄存器
    PUSH    BX
    PUSH    CX
PUSH    DX
        MOV     AH,6  ; ;屏幕上卷功能
        MOV     AL,0
        MOV     CH,0  ; ;左上角行号
            MOV CL,0  ; ;左上角列号
        MOV     DH,24 ; ;右下角行号
        MOV     DL,79 ; ;右下角列号
        MOV     BH,7  ; ;卷入行属性
        INT     10H    ; ;调用显示属性
        POP     DX      ;;恢复寄存器
POP    CX
    POP    BX
    POP    AX
        RET    ; ;返回主程序
CLEAR_SCREEN  ENDP
;
MOVE_SHAPE PROC NEAR
        PUSH    AX     ; ;保护寄存器
    PUSH    BX      
  PUSH    CX
    PUSH    DX      
  PUSH    DI
MOV     AH,0FH    ; ;取当前显示方式
    INT    10H
        SUB     CH,CH  ;;清除计数器CX的高字节
        MOV     CL,[DI]        ;;CL放循环次数
        INC     DI      ; ;DI指向字符图形表中的第一个字符
        MOV     CHAR_CNT,CX   ; ;保存循环次数
        MOV     POINTER,DI
         MOV     LINE_ON,DH

            MOV COL_ON,DL
PLOT_NEXT:
        ADD     DH,[DI+2]     ; ;改变行列指针
        ADD     DL,[DI+3]
        CMP     DL,80      ; ;出屏否?
    JB    MOV_CRSR
    CALL    ERASE
    POP     DI         
           POP    DX
    POP    CX           
            POP    BX
    POP    AX            
           RET
MOV_CRSR:      MOV     AH,2  ; ;移动光标位置
    INT    10H      
             MOV        AL,[DI]
        MOV     BL,[DI+1]     ; ;取字符值及属性
    PUSH    CX        
               MOV       CX,1
        MOV     AH,09 ; ;显示字符
    INT    10H      
              POP    CX
        ADD     DI,4 ;  ;DI指向下一个字符
    LOOP    PLOT_NEXT
        CALL    DLY_QRTR      ;  ;调用延时子程序
CALL    ERASE               ; ;调用擦除子程序
     JMP    SHORT      PLOT_NEXT
MOVE_SHAPE    ENDP

ERASE       PROC    NEAR
        MOV     CX,CHAR_CNT
        MOV     DI,POINTER
        MOV     DH,LINE_ON
        MOV     DL,COL_ON
ERASE_NEXT:
        ADD     DH,[DI+2]         
ADD     DL,[DI+3]
        MOV     AH,2                  
  INT    10H
        MOV     AL,[DI]              
MOV     BL,0
    PUSH    CX                     
  MOV   CX,1
            MOV AH,9                  
 INT    10H
    POP    CX                        
ADD     DI,4
    LOOP    ERASE_NEXT
        MOV     CX,CHAR_CNT
MOV     DI,POINTER
        MOV     DH,LINE_ON
    INC    COL_ON
        MOV     DL,COL_ON
    RET
ERASE    ENDP
DLY_QRTR   PROC NEAR   ; ;延时子程序
    PUSH    CX
PUSH    DX
        MOV     DX,5000
D11:   MOV     CX,2801
D12:   LOOP    D12        
  DEC    DX
    JNZ    D11         
POP    DX
    POP    CX         
  RET
DLY_QRTR    ENDP
CODE    ENDS
    END MAIN

2008-01-03 10:47
longziyong
Rank: 2
来 自:四川省威远县
等 级:禁止访问
帖 子:77
专家分:23
注 册:2007-8-22
收藏
得分:0 
初学汇编,能用汇编显示图形,历害啦!请问CAR是汽车图形字符的组合,还是汽车图形的保存地址?

LZY'Blog http://www.
2008-01-04 12:21
JerryWong
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-1-10
收藏
得分:0 
有没有其他图形,不一定要car
2008-06-24 11:45
nwpu063417
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:428
专家分:28
注 册:2007-5-11
收藏
得分:0 
确实很强啊

2008-06-26 00:21
YpNaruto
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-6-27
收藏
得分:0 
不懂
2008-06-27 13:09
快速回复:编程在屏幕上显示一个开动的汽车
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018066 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved