易码技术论坛

 找回密码
 加入易码
搜索
查看: 423904|回复: 10

有个问题

[复制链接]
发表于 2006-10-30 15:50:26 | 显示全部楼层
6502有三种中断:复位中断,软件中断,硬件中断
发表于 2006-10-30 15:51:36 | 显示全部楼层
中断向量在0xfffa-0xffff
 楼主| 发表于 2006-10-30 16:29:22 | 显示全部楼层
能详细的说明下吗?比如 int$ac09的程序在哪?
发表于 2006-10-30 16:48:46 | 显示全部楼层
6502没有int指令
6502的软中断指令是brk
发表于 2006-10-30 20:04:31 | 显示全部楼层
6502系统共有三种中断源
1.RESET
中断优先级:最高
中断时pc指向fffc
屏蔽:不可屏蔽
说明:此中断在按下"RESET"键时发生,中断后系统将初始化状态,并转向执行jmp($fffc)

2.NMI
中断优先级:高
中断时pc指向fffa
屏蔽:不可屏蔽
说明:NMI意即:no maskable interrupt,不可屏蔽中断,wqx用它来刷新屏幕,每隔一段时间,将显存中的内容刷新到屏幕,对应的刷新程序在jmp($fffa),这个中断是不可被sei命令关闭的。

3.IRQ/BRK
中断优先级:最低
中断时pc指向fffe
屏蔽:irq可以被sei命令屏蔽
说明:这个中断处理两种情况:irq(硬件中断)和brk(软件中断),在中断响应程序中会辨别是irq还是brk以执行不同的部分,irq主要响应一些硬件变化,比如当系统时间改变,键盘有键按下,自动关机等等,即会进行相应处理,比如将按键更新到内存或关闭系统等等。brk则是我们平时在汇编中用到的int$命令,wqx中用于跨页执行代码。当执行了sei命令将中断允许位i设为1后,irq中断将不再发生
 楼主| 发表于 2006-10-31 15:55:16 | 显示全部楼层
那软中断的程序执行地址怎么寻找呢?
 楼主| 发表于 2006-10-31 22:20:13 | 显示全部楼层
lee,你能帮我详细解答下吗?
发表于 2006-11-2 19:44:56 | 显示全部楼层
$ac09 翻到$ac页 然后取$4000+9*2和$4001+9*2为地址 跳转
如果是$cxyy 这样的 则是让地址$0a=#$0x 然后取$a000+yy*2和$a001+yy*2为地址
好似是这样的 很久没碰过汇编了 不晓得记得对不对=v=
发表于 2006-11-2 22:45:28 | 显示全部楼层
引用第8楼不炫耀会死星人2006-11-02 19:44发表的“”:
$ac09 翻到$ac页 然后取$4000+9*2和$4001+9*2为地址 跳转
如果是$cxyy 这样的 则是让地址$0a=#$0x 然后取$a000+yy*2和$a001+yy*2为地址
好似是这样的 很久没碰过汇编了 不晓得记得对不对=v=
没有错的,哈哈!!
 楼主| 发表于 2006-11-4 00:34:07 | 显示全部楼层
明白了,太感谢了!
 楼主| 发表于 2006-10-30 15:19:28 | 显示全部楼层 |阅读模式
请问6502中中断调用的子程序的入口地址怎么找?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 20:38 , Processed in 0.015453 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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