导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教一个问题:[chan_yo]

 *第15154篇: 请教一个问题:

  
楼 主:chan_yo 2003年8月4日10:32
 请教一个问题:
是否CJNE    A,#88H,TIAO1这个语句中的CJNE有个数限制的么?
当我连续用了5个的时候,能编译过去,但是用了第六个CJNE的时候,编译
出错,“TARGET  OUT  OF  RANGE" 我用的是爱思的仿真器.
  
2楼:chan_yo 2003年8月4日11:56
 没有人知道么?
  
3楼:jingf 2003年8月4日12:34
 没有限制
没有限制,我有个程序用了8个也可以通过。可能是因为你跳转的标号超出256字节范围了吧。
  
4楼:chan_yo 2003年8月4日13:30
 我又不能用外部程序存储器
  
5楼:chan_yo 2003年8月4日13:18
 如果是你所说的问题,该怎么解决呢?

如果是你所说的问题,该怎么解决呢?
  
6楼:红心J 2003年8月4日13:31
 在寻址页内放一条转移指令作为跳板
在寻址页内放一条转移指令作为跳板
  
7楼:chan_yo 2003年8月4日13:36
 不好意思,我不太明白
  
8楼:a12345678 2003年8月4日13:36
 CJNE个数没限制,是你的跳转地址溢出了。注意TIAO1不能超过128
  
9楼:chan_yo 2003年8月4日14:24
 我的程序:
CJNE    A,#00H,TIAO1
CJNE    A,#01H,TIAO2
......
CJNE    A,#0BH,TIAO12
TIAO1:
.......
TIAO12:
.........
不知道,是不是这样引起了跳转地址溢出,如何解决,请指点
  
10楼:chan_yo 2003年8月4日13:45
 不好意思,那我如何才能保证TIAO1不超过128呢?
  
11楼:jingf 2003年8月4日14:31
 你看看这样行不行
你不是有六条CJNE指令吗,假如下面的六条,你看看这样行不行。
         CJNE    A,#81H,TIAO1
         CJNE    A,#82H,TIAO2
         CJNE    A,#83H,TIAO3
         CJNE    A,#84H,TIAO4
         CJNE    A,#85H,TIAO5
         CJNE    A,#86H,TIAO6
         LJMP    NEXT
TIAO1:
         ......;你所要处理的程序
         LJMP    NEXT
TIAO2:
         ......;你所要处理的程序
         LJMP    NEXT
TIAO3:
         ......;你所要处理的程序
         LJMP    NEXT
TIAO4:
         ......;你所要处理的程序
         LJMP    NEXT
TIAO5:
         ......;你所要处理的程序
         LJMP    NEXT
TIAO6:
         ......;你所要处理的程序
         LJMP    NEXT
NEXT:
        ......
  
12楼:guest 2003年8月4日15:06
 I think this way is ok

你不是有六条CJNE指令吗,假如下面的六条
      CJNE    A,#81H,TIAO1
         CJNE    A,#82H,TIAO2
         CJNE    A,#83H,TIAO3
         CJNE    A,#84H,TIAO4
         CJNE    A,#85H,TIAO5
         CJNE    A,#86H,TIAO6
         LJMP    NEXT
TIAO1:
         LJMP  ADDR_TIA01......;你所要处理的程序 ENTRANCE

TIAO2:
         LJMP  ADDR_TIA02......;你所要处理的程序 ENTRANCE
         
TIAO3:
         LJMP  ADDR_TIA03......;你所要处理的程序 ENTRANCE
         
TIAO4:
         LJMP  ADDR_TIA04......;你所要处理的程序 ENTRANCE
         
TIAO5:
         LJMP  ADDR_TIA05......;你所要处理的程序 ENTRANCE
      
TIAO6:
         LJMP  ADDR_TIA06......;你所要处理的程序 ENTRANCE
         
NEXT:
        ......

  
13楼:guest 2003年8月4日15:16
 This program ought t
This program ought to be written by following
            CJNE A,#81H,DIFTO1
            LJMP TIAO1
DIFTO1:CJNE A,#82H,DIFTO2
            LJMP TIO2
DIFTO2:CJNE A,#83H,DIFT03
           LJMP TIO3
DIFT03:,,,,,,,,,,,,

  
14楼:chan_yo 2003年8月4日14:37
 我有12条跳转指令,按照您说的,还是不行
  
15楼:jingf 2003年8月4日15:17
 12条也可以。
         CJ

12条也可以。
         CJNE    A,#81H,TIAO1
         CJNE    A,#82H,TIAO2
         CJNE    A,#83H,TIAO3
         CJNE    A,#84H,TIAO4
         CJNE    A,#85H,TIAO5
         CJNE    A,#86H,TIAO6
         CJNE    A,#81H,TIAO7
         CJNE    A,#82H,TIAO8
         CJNE    A,#83H,TIAO9
         CJNE    A,#84H,TIAO10
         CJNE    A,#85H,TIAO11
         CJNE    A,#86H,TIAO12
         LJMP    NEXT
TIAO1:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO2:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO3:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO4:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO5:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO6:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO7:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO8:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO9:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO10:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO11:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
TIAO12:
         LCALL   ......;你所要处理的程序
         LJMP    NEXT
NEXT:
        ......  
  
16楼:chan_yo 2003年8月4日15:16
 那么TIAO和PROC1什么关系,我没有PROC的子程序,只有TIAOD的子程序
  
17楼:guest 2003年8月4日15:21
 [quote][b]以下是引用[i]ch
以下是引用chan_yo在2003-8-4 15:16:58的发言:
那么TIAO和PROC1什么关系,我没有PROC的子程序,只有TIAOD的子程序

PROC1是新加的标号,就是你要放TIAOD等处理程序段的地方

  
18楼:guest 2003年8月4日15:12
 SORRY,程序应如下:
      

SORRY,程序应如下:
         CJNE    A,#81H,TIAO1
         LJMP    PROC1
TIAO1:
         CJNE    A,#82H,TIAO2
         LJMP    PROC2
TIAO2:
         CJNE    A,#83H,TIAO3
         LJMP    PROC3
TIAO3:
         CJNE    A,#84H,TIAO4
         LJMP    PROC4
TIAO4:
         CJNE    A,#85H,TIAO5
         LJMP    PROC5
TIAO5:
         CJNE    A,#86H,TIAO6
         ................
PROC1:
        ......
PROC2:
       .......
  
19楼:guest 2003年8月7日16:14
 我晕,你们怎么都这么厉害?
我是刚入行

我晕,你们怎么都这么厉害?
我是刚入行的,以后有不会的还希望大家给与帮助,小弟在此先谢过了。
  
20楼:chan_yo 2003年8月4日15:29
 多谢各位指点,我想应该是对的。
的确,我试验过了,编译通过了。多谢!!!

>>>>>>对该主题发表你的看法

本主题贴数26,分页: [第1页] [第2页]


[上一篇主题]:求救于老古

[下一篇主题]:求购一款二手51仿真器[原创]