7869|3

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

汇编求助 [复制链接]

在汇编时错误提示是"unexpected end of file uncountered"是出现了什么错误啊 ?
此帖出自单片机论坛

最新回复

加个 end 在编译   详情 回复 发表于 2007-1-24 13:48
点赞 关注
 

回复
举报

141

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

Re: 汇编求助

代码贴出来看看
此帖出自单片机论坛
 
 

回复

842

帖子

0

TA的资源

裸片初长成(初级)

板凳
 

Re: 汇编求助

加个 end 在编译
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 

Re: 汇编求助

DATA  SEGMENT
          X0  EQU       155
          Y0  EQU       155                 ;坐标系原点坐标(X0,Y0)
        MESS  DB        PRESS ANY KEY TO RETURN TO DOS     ;0DH,0AH;提示信息
       TMCTL  EQU       2B3H               ;8254控制口地址
        TMRO  EQU       2B0H               ;82540通道0地址
        INPR  EQU       290H                ;DAC0832输入寄存器地址
        DACR  EQU       291H                ;DAC8032DAC寄存器地址
        DAIN  DB        ?                  ;DAC8032的D/A数据
       INT3S  DW        ?                  ;IRQ的中断向量段地址保存单元
       INT3O  DW        ?                  ;IRQ的中断向量偏移地址保存单元
         IMR  DB        ?                  ;
        ADDR  EQU       2A0H               ;ADC0809的片段选址
        ADDA  EQU       ?                  ;ADC0809的采集数据
       COUNT  DB        0
         BUF  DB        240 DUP(?)
        DATA  ENDS

       WRICH  MACRO     CHAR,WH,COLOR;写出符定调用

              MOV       AH,02H           ;置光标位置功能调用
              MOV       DX,WH           ;光标位置为WH
              MOV       BH  00H
              INT       10H  09            ;写字符功能调用
              MOV       AL   CHAR        ;显示字符送AL
              MOV       BL    COLOR      ;置字符颜色
              MOV       CX, 1             ;字符长度为1
              INT       10H
              WRICH     END
     START:  MOV       AX,DATA
              MOV       DS,AX
              CLI       ;关中断
              MOV       DX,TMCTL
              MOV       AL,00110110B
              OUT       DX,AL
              MOV       DX,TMRO
              MOV       AL,00H
              OUT       DX,AL
              MOV       AL,0BH
              MOV       A,35H
              INT       21H                ;取IRQ3的中断向量并保存在INT3O
              MOV       INT3S,ES          ;和INT3S单元
              MOV       INT3O,BX
              PUSH      DS
              MOV       DX,OFFSET  ADINT
              MOV       BX,SEG      ANINT
              MOV       DS,BX
              MOV       AL,OBH
              MOV       AH,25H
              INT       21H                  ;设置新的IRQ3中断向量
              POP       DS
              IN        AL,21H
              MOV       IMR,AL            ;保存中断屏蔽字
              AND       AL,11110111B
              OUT       21H,AL             ;开放IRQ3中断
              MOV       SI,OFFSET   BUFF
              CALL      INIT                 ;屏幕图形初始化
              MOV       DAIN,80H           ;锯齿波初植80H送DIAN            BEGIAN:   MOV         AL,DAIN
              MOV       DX,INPR
              OUT       DX,AL               ;锯齿波值送DAC0832输入寄存器
              MOV       DX,DACR
              OUT       DX,AL             ;锯齿波值送DAC0832DAC寄存器
              INC       DAIN
              JNZ       QQQ
              MOV       DAIN,80H
       QQQ:  STI       ;开中断
              MOV       DX,ADDR
              OUT       DX,AL           ;启动一次A/D转换
              HLT       等待中断
              CLI
              INC       COUNT            ; 采集数据个数+1
              MOV       AL,ADDA         ;取A/D采集数据
              MOV       BX,COUNT
              MOV       BYTEPTR[SI+BX],AL ;将A/D采集数据送数据缓冲区
              CMP       COUNNP,240
              JB        DRAW
              MOV       BX,1             ;从采集数据缓冲区的第一个数据开始处理
     BUFDR:  MOV       AL,OO            ;点的颜色为黑色
              CALL      DPT               ;从显示器抹掉第一个点
              MOV       AL,BYTEPTR[SI+BX+1]
              MOV       BYTEPTR[SI+BX],AL ;将采集数据缓冲区的数据
              MOV       ALL,OFFH     ;将前移前移一个位置,并置点的
              CALL      DPT           ;颜色为白色,调用画点子程序
              INC       BX
              CMP       BX,240
              JNE       BUFDR
              MOV       COUNT,239
              JMP       NEXT
      DRAW:  MOV       AL,0FH        ;显示缓冲区未满时,
              MOV       BX,COUNT      ;直接显示采集的数据
              CALL      DPT
        NEXT  MOV       AH,06H
              MOV       DL,0FFH       ;判断是否有键按下
              INT       21H
              JZ        BEGAIN         ;没有按键,则继续
      OVER:  PUSH      DS
              MOV       DX,INTSO
              MOV       BX,INT3S
              MOV       DX,BX
              MOV       AL,0BH
              MOV       AH,25H
              INT       21H          ;恢复原IRQ3中断向量
              POP       DS
              MOV       AL,IMR
              OUT       21H,AL       ;恢复原中断屏蔽字
              STI
              MOV       AH,4CH
              INT       21H            ;返回DOS
2) 中断服务子程序
       ADINT  PROC      NEAR           ;A/D中断服务程序
                PUCH          AX
                PUCH          DX
                PUCH          DS
              MOV       AX,DATA
              MOV       DS,AX      ;送数据段地址;确保中断服务程序
              MOV       DS,ADDR    ;对数据段中的变量正确寻址
              INT       AL,DX      ;读入A/D数据并送ADDA单元
              MOV       ADDA,AL
              MOV       AL,20H
              OUT       20H,AL       ;送EOI命令
              POP       DS
              POP       DX
              POP       AX
IRTE                       ;中断返回
       ADINT  ENDP

         DPT  PROC      NEAR        ;画点子程序
              PUSH      AX
              PUSH      BX
              PUSH      CX
              PUSH      DX
              MOV       CX,X0       ;点的列位置(CX)为BX+X0
              ADD       CX,BX
              MOV       DU,00
              MOV       DL,BYTEPTR[DI+BX];取缓冲区的数据
              SHR       DX,1         ;DX/2
              MOV       BX,DX        ;DX值送BX
              MOV       DX,Y0-1      ;点的位置为YO-1-BX
              SUB       DX,BX        ;减1是为了减免将点画到坐标上
              MOV       AH,0CH       ;画点
              INT       10H
              POP       DX
              POP       CX
              POP       BX
              POP       AX
              RET
         DPT  ENDP

        INIT  PROC      NEAR             ;初始化屏幕子程序
              MOV       AH00            ;设置显示器工作方式为EGA/VGA
              MOV       AL,0EH         ;显示模式为640*200*16
              INT       10H
              WRICH     '^',0112H,0FH    ;显示坐标系的两个箭头
              WRICH     '>',124CH,0FH
              MOV       AH,0CH          ;写素描功能调用
              MOV       AL,0FH          ;颜色为白色
              MOV       CX,X0
              MOV       DX,Y0
        DRAX  INT       10H              ;画坐标系的X轴
              INT       CX
              CMP       CX,614
              JIZ       DRAX
              MOV       DX,Y0
              MOV       CO,X0
        DRAY  INT       10H             画坐标系Y轴
              MOV       DX
              MOV       DX,8
              JIZ       DRAY
              MOV       AH,0CH
以下为显示坐标系X,Y轴的刻度
              MOV       AL,OFH
              MOV       CX,X0-4          ;给定Y轴刻度初植,画第一个
              MOV       DX,25               ;刻度,长度为4点
       YBJ:  INT       10H
              INC       CX
              CMP       CX,X0
              JNZ       YBJ
              MOV       CX,X0-4            ;在Y轴画间隔为26
              ADD       DX,26             ;长度为4点的5条刻度线
              CMP       DX,Y0
              JB        YJB
              MOV       CX,X0+80          ;给定X轴刻度初植,画第一个
              MOV       DX,Y0+2          ;在X轴上画间隔为80
              ADD       CX,80             ;长度为2点的7条刻度
              CMP       CX,600
              JB        XJB
              WRICH     'V',0112H,0FH                ;显示坐标系的Y轴标识V,
;行列位置为(01H,12H),
;白色
WRICH'0',1412H,0FH                                  ;显示原点标识
WAICH'T',144CH,0FH                                   ;显示X轴标识T
WAICH'1',14Ldh,0FH                                    ;示X轴的刻度
WAICH'2',1427H,0FH                                   
WAICH'3',1431H,0FH
WAICH'4',143BH,0FH
WAICH'5',1445H,0FH;
WAICH'2',0D12H,0FH                                ;示Y轴的刻度值
WAICH'5',0312H,0FH
              PUSH      DS
              POP       ES
              MOV       AX,1200H                            ;显示字符功能调用
              LEA       BP,MESS                             ;ES:BP指向提示信息
              MOV       CX,35                               ;提示信息长度
              MOV       BL,0FH                              ;黑底,白字
              MOV       DX,1600H                            ;从16H行00列开始
              INT       10H                                  ;显示功能调用
              RET
              INT       ENDP
        CODE  ENDS
              END       START

此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表