当前位置: 代码迷 >> 汇编语言 >> 汇编程序运行不了,那位老师能帮小弟我看看完善一上程序该肿么写可以么?多谢
  详细解决方案

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

热度:6874   发布时间:2013-02-26 00:00:00.0
汇编程序运行不了,那位老师能帮我看看完善一下程序该肿么写可以么?谢谢
我的汇编程序原代码如下,(这是一个图文显示的程序代码),不能运行,那位老师能帮我完善将不胜感激,急用,谢谢,谢谢
各模块详细设计
下面是整体的代码,各个子模块在程序中加以注释。
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 ;擦除子程序