找回密码
 立即注册
楼主: tzz1983

关于"访问"的表达是否准确?

[复制链接]

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 13:03:05 来自手机 | 显示全部楼层
是的,写完IE之后还会执行下一条.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2023-9-19 13:07:08 | 显示全部楼层
熊*** 发表于 2023-9-19 12:51
取地址,译码,执行
译码的时候读取下一条。根据下一条是否,写入 IE操作,来延期中断。

是的, 如果追求极限速度, 我认为可以
PUSH  IE  
CLR EA



POP R11
ORL A #080H
ORL IE A

进临界区2个时间, 出来三个时钟

点评

ANL A,#0X80  详情 回复 发表于 2023-9-19 13:31
这个就是方法二啊,在网上查了,说有堆栈寻址的不适合。具体没有去验证  发表于 2023-9-19 13:11
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 13:07:42 来自手机 | 显示全部楼层
所以这部分一定要用汇编写才能准确.
C估计不准确的,不然读取EA到C,或者到A,然后保存到变量。再执行EA=0。

点评

是的, cpu_sr=EA; EA=0; 如果这样, 就错了  发表于 2023-9-19 13:13
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 13:13:34 来自手机 | 显示全部楼层
pendSV中断里面,还是直接EA=0  EA=1,简单粗暴,完事了

本来就不可能返回来的时候是关中断。关中断都是程序员的bug。
这里真没必要考虑嵌套

点评

嗯 是的, 文档内加个说明, 限定出中断时不可关中断  发表于 2023-9-19 13:17
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 13:31:15 来自手机 | 显示全部楼层
tzz1983 发表于 2023-9-19 13:07
是的, 如果追求极限速度, 我认为可以
PUSH  IE  
CLR EA

ANL A,#0X80
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2023-9-19 14:32:17 | 显示全部楼层
本帖最后由 tzz1983 于 2023-9-19 14:33 编辑

嗯, 我经常出写错这种错.
从广泛的整体面说, 我认为方法2确实会有"堆栈寻址的不适合",这个问题, 因为编绎器我们管不住它, 谁知道它会用什么方法来实现自己的目的
只用在局部是没问题的, 就像刚才说的中断那个位置, 前后代码都可控.
只调了一个外部函数, 就算是用到栈基寻址,调用过后是用新的栈基址了, 无关了

点评

同意说法  发表于 2023-9-19 14:39
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 14:58:42 | 显示全部楼层
PUSH  IE  
CLR EA



POP PSW
MOV   EA,C

这样前后都2条指令,更优。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-06-16 07:26:17

1

主题

55

回帖

86

积分

注册会员

积分
86
发表于 2023-9-19 15:04:24 | 显示全部楼层
熊*** 发表于 2023-9-19 14:58
PUSH  IE  
CLR EA

这样会改变PSW,会有问题

点评

POP PSW对应PUSH IE,是要把入栈的IE放到PSW里,恢复EA后会再次POP PSW(对应PUSH PSW)。  详情 回复 发表于 2023-9-19 15:19
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 15:13:45 来自手机 | 显示全部楼层
不会,PSW,ACC都是可以操作的。判断的时候才用到。
回复 支持 反对

使用道具 举报 送花

11

主题

340

回帖

939

积分

荣誉版主

积分
939
发表于 2023-9-19 15:18:31 来自手机 | 显示全部楼层
用户的指令不会中断,判断语句。
有硬件中断才会,但是中断会入栈。

如果会出错的话,那就没法调用函数了。函数里面都在操作这两个最为繁忙的寄存器

点评

是的,只要不用PSW中的标志位就没问题  发表于 2023-9-19 15:26
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 18:03 , Processed in 1.716192 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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