程序写不下

[复制链接]
3762|3
 楼主| 高建明 发表于 2007-1-2 13:21 | 显示全部楼层 |阅读模式
现有一项目需要增加功能,原来使用SH69P55-44,程序有4个页面,共4*2K=8K容量,为了编程方便,程序分块编写,所以每一页都有程序(并且每一页的程序都接近2K),第0页是主程序,子程序在1,2,3页中,现在的问题是程序写不下了,原来的程序宏比较多,所以现在想把宏用子程序替换,但是如果有跳转指令的宏那么如何用子程序替换?比如像这样的:
;***4位寄存器与寄存器比较,相等则转***
CJE4_XX        MACRO    X1,BK1,X2,BK2,ADDR
        LDA    X2,BK2
        SUB    X1,BK1
        BAZ    ADDR
        ENDM
请问如何CALL?
juginhine 发表于 2007-1-3 08:36 | 显示全部楼层

可以用一個標誌

按照你說的那種跳轉設計,一般都是不能用call來替換的。不過可以換一下來實現用call。就是加入一個位標誌。如果2個單元相等,那麽位標誌等於1,如果2個單元不相等,那麽位標誌等於0。然後在call返回時返回這個位標誌。在call的下一個指令中用位跳轉來跳到你要的位置。不過這樣實現節省不了什麽空間,每次可以節省一個字節。
請試下。
melovecho 发表于 2007-1-4 10:27 | 显示全部楼层

ggf

请不要发广告,谢谢合作!!
                        本版版主   WARM_ICE
                       2007-01-04
 楼主| 高建明 发表于 2007-1-5 20:35 | 显示全部楼层

谢谢,是个好思路

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

本版积分规则

46

主题

203

帖子

0

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