指令问题

[复制链接]
2904|13
 楼主| 冰清玉洁 发表于 2011-8-3 10:15 | 显示全部楼层 |阅读模式
以下情况是否可行?

1)      ORG      0800H

        BC         XXXX

XXXXX:


2)   ORG      0000H


      CALL      XXXX

XXXX:
      X
      X
      JMP       XXXX_BANK

      ORG     0800H


XXXX_BANK:

        X
        X
       RTNI
wenfen 发表于 2011-8-3 10:18 | 显示全部楼层
第一种可行
wenfen 发表于 2011-8-3 10:29 | 显示全部楼层
第二种部分错误:XXXX_ BANK返回时,不能使用RTNI
 楼主| 冰清玉洁 发表于 2011-8-3 10:52 | 显示全部楼层
wenfen 发表于 2011-8-3 10:57 | 显示全部楼层
而要使用JMP,CALL和返回指令只能在同一个BANK(0~2K,2K~4K........以此类推),跨BANK调用时,要使用JMP
tian111 发表于 2011-8-3 11:08 | 显示全部楼层
第二种貌视可以吧
neyo.zhong 发表于 2011-8-3 11:28 | 显示全部楼层
第二种,XXXX_BANK返回时依然要使用JMP指令,如下:

;-------------------------------------位于07FFH以内的程序---------------------------------
ORG    0100H
MAIN:
           XX   XX
           XX   XX
           XX   XX
           JMP  SUM_BANK1
SUM_BANK1_RTNI:
           XX   XX
           XX   XX
           JMP  MAIN

;-------------------------------------位于07FFH以后的程序---------------------------------
ORG   0800H
SUM_BANK1:
            XX  XX
            XX  XX
            JMP  SUM_BANK1_RTNI
neyo.zhong 发表于 2011-8-3 11:30 | 显示全部楼层
而要使用JMP,CALL和返回指令只能在同一个BANK(0~2K,2K~4K........以此类推),跨BANK调用时,要使用JMP
wenfen 发表于 2011-8-3 10:57


5楼的wenfen兄说的对,CALL指令只能在同一个BANK内使用,跨BANK要用JMP
zhuhuis 发表于 2011-8-3 11:32 | 显示全部楼层
第二种貌视可以吧
tian111 发表于 2011-8-3 11:08
bank0到bank1的時候,已经是用的jmp指令了。
 楼主| 冰清玉洁 发表于 2011-8-3 12:19 | 显示全部楼层
第二种方式怎么会有两种结果呢

不过就实际运用中好象没什么问题,怕就是会影响代码稳定性
宋倩2010 发表于 2011-8-3 12:23 | 显示全部楼层
那就无所谓了?
 楼主| 冰清玉洁 发表于 2011-8-3 12:26 | 显示全部楼层
那好吧,就这样吧
lolp 发表于 2011-8-6 09:00 | 显示全部楼层
我还没看明白呢 o(︶︿︶)o 唉
huanghuac 发表于 2011-8-10 13:59 | 显示全部楼层
楼上不高兴了,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

307

主题

3250

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部