您的位置 首页 电源

6502单片机编程–中止

中断:6502有3个中断IRQBRK、NMI和RESET,每个中断都有一个16位的向量,即指针,用来存放该中断发生时中断服务函数的地址。中断发生时CPU

中止
6502有3个中止IRQ/BRK、NMI和RESET,每个中止都有一个16位的向量,即指针,用来寄存该中止产生时中止服务函数的地址。中止产生时CPU都会把状况标志和回来地址压栈,然后调用中止服务程序。
IRQ/BRK中止由一下两种状况产生:一是软件经过BRK指令产生,一是硬件经过IRQ引脚产生。
RESET在开机的时分触发,这是ROM被装入,6502跳到RESET向量指向的地址没有寄存器被修正,没有内存被清空,这些都只在开机是产生。
NMI指不行屏蔽中止,它在VBlank即屏幕改写时产生,持续时间依据体系(NTSC/PAL)不同而不同。NTSC是每秒60次,而PAL是每秒50次。6502的中止延时是7个时钟周期,也就是说,进入和脱离中止都需求7个时钟周期。它产生于PPU的每一帧完毕,NMI中止能够由$2000的第7位的1/0操控答应/制止。
大部分中止应该运用RTI指令回来,可是有些游戏不必,例如《最终幻想1》。它用一个很古怪的办法:手艺修正仓库指针,然后履行RTS指令。这种办法在技术上是可行的,可是应该尽量防止。
以上中止在ROM内有以下对应的地址:

中止地址 中止 优先权
$FFFA NMI
$FFFC RESET
$FFFE IRQ/BRK
NMI 非屏蔽中止
IRQ/BRK 屏蔽中止
RESET 开机中止

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/260225.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部