51单片机中断中的断点地址问题,坐等!!!!

资料上说CPU响应中断时首先把当前指令的下一条指令就是中断返回后将要执行的指令的地址断点地址送入堆栈,我想问的是这个地址是唯一的吗?还是不同指令处有不同的地址?比如说主程... 资料上说CPU响应中断时首先把当前指令的下一条指令 就是中断返回后将要执行的指令的地址断点地址送入堆 栈,我想问的是这个地址是唯一的吗?还是不同指令处 有不同的地址? 比如说主程序由8个指令组成, 标记为12345678,假如执行2指令以后发 生中断,那么就将3指令放到了中断地址里 面,假如执行3指令以后,发生了中断,那 么就将4指令放到了中断地址里,前后的两 个中断地址一样吗? 展开
 我来答
wdz67
2013-01-14
知道答主
回答量:3
采纳率:0%
帮助的人:7.8万
展开全部
你没有理解中断吧,中断地址是由中断向量表定好了,51的:0003H 是INT0中断地址, 0000B是T0中断地址。。。 共5个,书上有的。 而对于你说的当前地址的下一条存到堆栈,其实就是把PC的值保存到堆栈,而堆栈指针(SP)由你初始化时定的,一般是给30H(复位后是07),每要压入一个时先加1(如果当前时30H,那PUSH ACC 后,其实ACC的值存在了31H)
更多追问追答
追问
也就是是将执行完的下一条指令保存到 堆栈当中的地址里面去了,如果只执行INTO,那么我所说的这两个地址应该是同一个地址。
追答
如果之前没有其它的中断的话,两个的地址是一样的,这个由硬件来做   用汇编的话,只要加  PUSH和POP指令就行了
shangkun200901
2013-01-14 · TA获得超过296个赞
知道小有建树答主
回答量:239
采纳率:51%
帮助的人:110万
展开全部
不一样。一个指令一个地址。
追问
假如触发中断是由低电平决定,那么这个低电平是人为的,还是通过指令完成的,还是硬件自己完成的,先谢谢了!
追答
通过指令完成。比如下面的一个实验的程序:
实验四 利用中断控制LED灯
ORG 0000H
LJMP MAIN
ORG 0003H ;外中断程序入口
LJMP EXINT0
ORG 0300H
MAIN:
SETB EA;开所有中断
SETB EX0;开INT0中断
SETB IT0;负边沿引起中断 可以用MOV IE,#81代替上述3条语句
CLR P1.0
MOV R3,#20 ;脉冲数
SJMP $
EXINT0:
DJNZ R3,NEXT
MOV R3,#20
CPL P1.0
NEXT: RETI
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式