单片机中中断程序是存放在哪里的

单片机中中断程序是存放在哪里的,第1张

单片机每一个中断源对应一个入口地址有(一般从弊纳携0003h开始),当有中断时程序计数器PC指向中断源入口租伏开始,到中断结束并返回期间,执行中断程序。由于两个相邻的中断源入口地址很近,通常为8字节,不茄辩能放下完整的中断程序。因此,往往将中断程序放到其它的程序地址空间,而在相应的中断入口放置一个无条件转移指令。因此中断服务程序放在程序存储ROM里。

不同的单片机是不一样的。

像没有内部Flash空间的51系列的单片机是需要外部存储器的,无论中断程序还是其它程序都是需要外部存储器存储的。而有Flash空间的单片机,通常情况下会将程序存储到Flash中缓毕,而Flash严格来说,不算是“外部存储器”改陆,因为它是在单片机内部的。

如果有 *** 作系统的单片机,根据不同的内存核哪顷管理方式,有可能会放在RAM中。

中断向量表和中断程序是放在哪里的?

中断向量表

中断向量(矢量)表也称中断指示表。中断向量表放在存储单元地址的最低部位0000H到003FFH,占有1K字节的存储空间。中断向量表分成256组(类型码),每组由两个字(即4个字节)组成一个双字长的指针。每个双字指针指示一种中断类型,最多能识别256种不同类型的中断。通过这张中断向量表产生出各个中断服务程序的入口地址。

在双字长指针的高地址中存放的字是中断服务程序入口地址所在的代码段的基址(CS),低地址字是中断服务程序入口地址相对于段基址的补偿值(IP)。CPU通过CS和IP的值得到一个20位的地址,它就是中断服务程序的实际入口地址,过程见图8-3。计算方岩吵法同求一个存储器单元实际地址的方法一样,就是将CS基址左移4位,然后加上IP的补偿值。

=====================================================

哪些内部中断的程序都是固化在BIOS中?

int 1 -20 是bios中断, 固化在ROM芯片中

int21 专门用于dos中断。

======================================================

INT 21的功能号也是表示地址的吗?

王爽汇编上给出的表述是:

int指令的格式为: int n, n为中断类型码, 他的功能是引发中断.

cpu执行int n指令, 相当于引发一个n号中断的中断过程, 执行过程如下.

(1)  取中断类型码n

(2)  标志寄存器入栈,IF=0,TF=0

(3)  CS、IP入栈

(4)  (IP)=(n*4), (CS)=(n*4+2)

每个中断向量具有一个相应的中断类型号码,由中断类型号码确定在中断向量表中的中断向量。中断类型号码乘4,将给出中断向量表中的中断向量入陵档口第一字节的绝对地址(因为每个中断向量占4个字节)。举例说明,若中断类尺枣乱型号码为3,它指出中断向量表的第4个入口,则这个向量的第一字节的地址为:

3类型码×4=1210=00001100B=00CH

若类型3中,我们安排放置的CS=1E00H和IP=0A00H,则它们形成的服务程序的入口地址为1EA00H。CPU一旦响应中断类型3,则将转去执行从地址1EA00H(1EA00H=10H*CS+IP=10H*1E00H+0A00H)开始的类型3的中断服务程序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12559011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存