首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >6502上的中断行为

6502上的中断行为
EN

Stack Overflow用户
提问于 2021-01-14 03:38:19
回答 1查看 159关注 0票数 0

关于6502的一个简单而愚蠢的问题。例如,指令NOP需要2个周期。如果中断发生在6502上,它会发生在NOP的两个周期之间吗?

那么,这是一种可能的情况:

代码语言:javascript
复制
NOP cycle 1
[ INTERRUPT ]
NOP cycle 2

当然,这个问题也适用于其他说明。是否会中断“等待”整个指令完成,或者它会中断指令本身?

EN

回答 1

Stack Overflow用户

发布于 2021-01-15 01:08:07

将评论四舍五入为社区维基:

当前指令finishes first:“当外围设备需要服务并将中断请求(IRQ线)拉到低电平时,允许当前执行的机器语言指令结束,并启动7时钟中断序列。此序列类似于执行未写入程序的指令,但由于IRQ线被拉到逻辑低电平的事实而隐式插入。”

仅在指令的倒数第二个周期检查中断状态;因此,如果中断请求正在进行,但在序列之前设置了中断禁用标志:

代码语言:javascript
复制
CLI
SEI

则会发生以下情况:

在命令行界面结束前一个周期,中断禁用标志仍被设置,因此在命令行界面结束后不会发生任何事情;

  • 在命令行界面结束前一个周期,中断禁用标志现在被禁用,因此安排中断;

  • SEI设置中断禁用标志;以及
  • 随后响应中断请求,导致堆栈上的P设置了中断禁用标志。<代码>H211<代码>F212
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65708717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档