首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编程序运行不了,那位老师能帮小弟我看看完善一上程序该肿么写可以么?多谢

2012-07-26 
汇编程序运行不了,那位老师能帮我看看完善一下程序该肿么写可以么?谢谢我的汇编程序原代码如下,(这是一个

汇编程序运行不了,那位老师能帮我看看完善一下程序该肿么写可以么?谢谢
我的汇编程序原代码如下,(这是一个图文显示的程序代码),不能运行,那位老师能帮我完善将不胜感激,急用,谢谢,谢谢
各模块详细设计
下面是整体的代码,各个子模块在程序中加以注释。
DATA SEGMENT
  CAR DB 94 ;定义字符
  DB 02H,122,-5,3
  …
  DB 02H,122,0,-1
  CHAR_CNT DW ?
  POINTER DW ?
  LINE_ON DB ?
  COL_ON DB ?
  DATA ENDS
  STACKI SEGMENT
  DB 2000 DUP (?)
  STACKI ENDS
  CODE SEGMENT
  ASSUME CS:CODE,DS:DATA,SS:STACKI
  MAIN PROC FAR ;定义过程
  PUSH DS
  SUB AX,AX ;清0
  PUSH AX
  MOV AX,DATA
  MOV DS,AX
  MOV AH,0 ;0号功能调用,设置显示模式
  MOV AL,0 ;显示模式的属性为 320*200 4色 
  INT 10H ;10号中断调用,BIOS 對螢幕及顯 示器所提供的服務程式
   
  MOV AH,0BH ;0B功能调用,设置调色板,背景色或边框
  MOV BH,0 ;设置颜色
  MOV BL,2 ;颜色
  INT 10H  
   
  MOV AH,0BH
  MOV BH,01 ;选择调色板
  MOV BL,00 ;调色板00
  INT 10H
   
  CALL CLEAR_SCREEN ;调用清屏子程序
  LEA DI,CAR
  MOV DH,10
  MOV DL,2
  CALL MOVE_SHAPE
  MOV AH,8 ;8号功能调用,无回显的字符的输入
  INT 21H ;中断21
  CMP AL,71H  
  JZ EXIT ;标志位结果为0转移
  JB NEXT ;无符号数低于时转移
  NEXT: CMP AL,51H
  JZ EXIT

  MAIN ENDP

  CLEAR_SCREEN PROC NEAR ;清屏子程序
  PUSH AX ;保护现场
  PUSH BX
  PUSH CX
  PUSH DX
  MOV AH,6 ;6号功能调用,初始化屏幕
  MOV AL,0 ;清窗口
  MOV CH,0 ;窗口的左上角位置(0,0)
  MOV CL,0
  MOV DH,120 ;右下角位置(200,120)
  MOV DL,200
  MOV BH,7 ;空白区域的缺省属性
  INT 10H ;10号中断调用
  POP DX ;恢复现场
  POP CX
  POP BX
  POP AX
  RET ;返回
  CLEAR_SCREEN ENDP

  DLY_QRTR PROC NEAR ;延时子程序
  PUSH CX
  PUSH DX
  MOV DX,5000
  D11: MOV CX,25000
  D12: LOOP D12 ;循环25000次
  DEC DX ;DX-1
  JNZ D11 ;结果不为0时转移
  POP DX
  POP CX
  RET
  DLY_QRTR ENDP

  MOVE_SHAPE PROC NEAR ;擦除子程序


  PUSH AX  
  PUSH BX
  PUSH CX
  PUSH DX
  PUSH DI
  MOV AH,0FH ;读取显示器模式
  INT 10H 
  SUB CH,CH ;清0
  MOV CL,[DI]
  INC DI ;DI+1
  MOV CHAR_CNT,CX
  MOV POINTER,DI
  MOV LINE_ON,DH
  MOV COL_ON,DL
  MOV_CRSR:
  ADD DH,[DI+2] ;Y坐标
  ADD DL,[DI+3] ;X坐标
  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
  LOOP MOV_CRSR
      
  POP DI
  POP DX
  POP CX
  POP BX
  POP AX
  RET
  MOVE_SHAPE ENDP
  EXIT: MOV AH,4CH ;终止当前程序并返回调用程序
  INT 21H
  CODE ENDS
  END MAIN
要求显示输出“元旦”字样,


 

  




[解决办法]
文件功能上大致正常的吧,只是最后的结束按键判断流程上有不妥,但不会影响到显示。另外,也就是最重要的是待显示内容的点阵数据组织上,你的代码才两个点,还需要补全了。

热点排行