keil c中断用汇编免去LJMP

[复制链接]
4369|6
 楼主| mrkingxu 发表于 2009-6-4 14:57 | 显示全部楼层 |阅读模式
在KEIL C里写中断程序,如果在中断程序里只是对某位取反或置位,keil c会在中断入口地址产生一条LJMP指令跳到取反或置位指令处,我想问一下大家,有没有办法使KEIL C直接在中断入口处执行掉这条取反或置位指令,节省中断时间。
期待大家的解答。
wh6ic 发表于 2009-6-4 15:09 | 显示全部楼层

写个汇编的中断服务子程序不就行了,想那么复杂干什么?

ayb_ice 发表于 2009-6-4 21:00 | 显示全部楼层

既然这么简单还是自己动手好些

lws 发表于 2009-6-4 22:00 | 显示全部楼层

能这么做吗

中断入口就只能放一条语句,不用LJMP,我倒要看看你怎么RETI,难道你的时序要求这么高
computer00 发表于 2009-6-4 22:07 | 显示全部楼层

可以借用其它的不用的中断地址嘛...当然也刚好不用才行

bg6nw 发表于 2009-6-4 22:44 | 显示全部楼层

8个字节还不够写一个取反和一个RETI吗

三块石头 发表于 2009-6-21 01:28 | 显示全部楼层

用汇编写吧,可以绝对定位到中断入口地址去

而且其实用c的话也没有函数去调用~

计算一下空间:
mov  c, bit    ; 2 bytes
cpl  c         ; 1 byte
mov  bit, c    ; 2 bytes
reti           ; 1 byte

似乎还剩余2字节~~
缺点是没有push和pop
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

13

帖子

0

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