找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10040|回复: 3
打印 上一主题 下一主题
收起左侧

编译时显示错误,求帮忙看下是什么问题

[复制链接]
跳转到指定楼层
楼主
ID:62923 发表于 2014-6-13 16:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
显示是这样的错误:
Rebuild target 'Target 1'
assembling 123.asm...
123.asm(5): error A40: INVALID REGISTER
123.asm(5): error A9: SYNTAX ERROR
Target not created
程序:ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
      MOV R1,#DPTR
          MOV   DPTR,#7FF8H
          MOV R7,#08H
LOOP:MOVX  @DPTR,A
HER:  JNB  P3.0,HER
      MOVX  A,@DPTR
          MOV   @R1,A
          INC   DPTR
          INC   R1
          DJNZ  R7,LOOP
        k1: LCALL DISP
        JB P3.2,K2
                INC @R1
        LCALL DISP
    k2: JB P3.3,K1
             DEC @R1
       LCALL DISP         
DISP: MOV  A,@R1
      MOV  B,#10
          DIV  AB
          MOV  20H,A
          MOV  21H,B
          CLR  P2.4
          SETB P2.5
          MOV  A,20H
          MOVC  A,@A+DPTR
          MOV  P1,A
          LCALL  DELAY
      CLR   P2.5
      SETB  P2.4
      MOV   A,21H
          MOVC  A,@A+DPTR
      MOV   P1,A
      RET
DELAY: MOV  R6,#01H
DL0:   MOV  R5,#61H
       DJNZ  R5,$
       DJNZ  R6,DL0
       RET
TABLE:  DB   0C0H,0F9H,0A4H,0B0H,99H      ;
        DB  92H,82H,0F8H,80H,90H

END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:7485 发表于 2014-6-13 20:50 | 只看该作者
MOV  R1,  #DPTR  这一句有问题。

“DPTR”是51单片机唯一的一个16位寄存器(其实是由DPH和DPL两个8位寄存器组成的“寄存器对”。所以DPTR既不可以作为“立即数”赋值给R1,也不可以将DPTR中的16位内容赋值给8位的R1。更何况“#DPTR"没有一个确定的值。也不可能是DPTR的2个地址。
只有“MOV R1,#DPH”或“MOV R1,#DPL”是合法的,但是传送的DPH或DPL的地址82H或83H。
回复

使用道具 举报

板凳
ID:262 发表于 2014-6-14 01:18 | 只看该作者
是的 还是 老大厉害
回复

使用道具 举报

地板
ID:62923 发表于 2014-6-15 13:33 | 只看该作者
ahshmj 发表于 2014-6-13 20:50
MOV  R1,  #DPTR  这一句有问题。

“DPTR”是51单片机唯一的一个16位寄存器(其实是由DPH和DPL两个8位寄 ...

谢谢,是这个问题,已经解决。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表