1贴子主题有关TF_第1页
1贴子主题有关TF_第2页
1贴子主题有关TF_第3页
1贴子主题有关TF_第4页
1贴子主题有关TF_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. 贴子主题:有关 TF002xxx ( 2003/05/18 10:55am)关于 TF 标志位的设置和清除是由程序来做的,没有特定的指令可以完成。书上P464 倒数第二段说在中断服务程序返回前 TF 位既不是 1 也不是 0,当指令 IRET 执行时才把 TF 位改为新的值。我想问的是the new state 是什么?是在从中断服务子程序返回时从堆栈中POP 出的原来的 FLAG 原封不动的值,还是在返回的时刻又有新的中断来时,原来的 FLAG 不 POP 出来,而是再装入这个新的中断的FLAG 标志?后面的这一点也就是P463 上面第三行的语句。002yyy ( 2003/05/18

2、 11:30am)我是这么想的,不知对不对:平时 TF 应该为“ 0”吧,否则不是单步执行方式了吗?TRON 和 TROFF 是对堆栈中的 flags 的 TF 位执行的,但因书上example12 1, example12 2 两个程序的末尾都是“IRET”所以会再把它返回给当前的flag register-进行中断时的flag register?我对意思是,设置TF 位的状态是对于中断服务子程序来说的,如果你想单步执行你的中断服务子程序,那么进行 TRON,否则 TROFF。qbxiong ( 2003/05/19 10:25am)两位充分利用书上的例子来获取更多实用技术的做法值得提倡。对

3、于标志寄存器中的中断标志 IF ,设有专门的指令似的指令,可以直接地操纵标志寄存器中的陷阱标志STI 将其置位,专门的指令TF。CLI 将其复位;但是,却并没有类不过,这并不意味着就没有办法可以改变标志寄存器中T 位的状态了;办法总比问题多:书上的例子是,因中断时标志寄存器自动地压入了堆栈,故可以在中断服务程序中,用BP 间址找到标志寄存器存放的内存单元, 并用 OR 指令将其中的对应于 TF 的第 8 位置位; 这样,当 IRET 指令使堆栈中存放的原标志寄存器内容自动地弹回到 CPU 中去时,其中的 TF 已是新的状态“ 1”了。以上是 464 页例 12-1 标号为 TRON 的中断服务

4、程序。同一页例 12-2 标号为 TROFF 的中断服务程序,原理与之相同,不同的只是用 AND 指令将其中的第 8 位复位。推而广之, 这种将 CPU 或 I/O 接口中的寄存器,先复制到内存中,在内存中改变其中的某些位,然后再复制回去,从而改变了 CPU 或 I/O 接口中寄存器的相应位的状态,不失为一种普适的做法。其实,在我们课本已经接触到的例子中,也还有这样的做法,只是没有如此明讲而已。哪位还能找到其它的例子吗?002xxx ( 2003/05/19 12:09pm)那么当从中断服务程序返回时,如果有新的中断打断它,此时FLAG 还从堆栈中弹出来吗?002yyy ( 2003/05/1

5、9 07:22pm)因为之前已经清了IF ,所以此时应该不会响应新的中断(我认为这里处于p462 最下端的第二步)。2. 贴子主题:书 474 页图 1213 关于用缓冲器扩充中断结构的方法有个疑问002zzz ( 2003/05/17 12:43pm)器件 74ALS244 为什么八个端口不各接一个 IR 引脚,这样不就可以扩充到源,这样不就少接一个 IR 了吗?它有什么特殊的作用吗?8 个,而书中是拿一个通过上拉电阻接电qbxiong ( 2003/05/17 05:00pm)问得好。请再读一下474 页最后那个自然段。002uuu( 2003/05/17 09:35pm)我有同样的问题

6、, 而且最后一个自然段的说明我没有看明白.书上说“如果两个或者更多的中断请求连续发生, 那么就产生一个新的中断向量. 当 /IR0,/IR1同时发出中断请求那么 FCH 为新的中断向量号 , 而且若 /IR0 收到的中断优先级比较高的话那么这个新的地址FCH 就作为为 /IR0 的中断向量地址”我的问题是下一句, 为什么说“ the entire top half of the vector table and its interrupt vectors mustbe used to accommodate all possible conditions of theses seven int

7、errupt request inputs”它这里的 128 个向量是由这 7 个中断输入组合形成的吗?就这道例题而言 , 它的中断向量表应该是怎样的?而且我想不出这种处理多个中断输入的方式有什么效率可言.qbxiong ( 2003/05/18 09:36am)讨论已渐入佳境,002uuu 已注意到“ the entire top half of the vector table”的问题。还请注意,002zzz首问中的“书中是拿一个通过上拉电阻接电源”,这“一个”,从图中看是D7,决非偶然。大家不妨翻回课本第 459 页,看一下倒数第 2 个自然段,也就是“ Interrupt Vector

8、s ”小节中的第 2 段,或许能悟出其中的道理了吧。002uuu 看书很仔细, 有意义的词都不放过, 这是值得提倡的学习精神,问到的“效率”,可能是指474 页最后那个自然段中的“ cost - effective”吧,那是节省成本的意思,英文文献中也经常出现。002xxx ( 2003/05/18 10:18am)the entire top half of the vector table and its interrupt vectors是指从中断矢量号为80H-0FFH 的这128 个中断矢量。它刚好是the vector table的上一半。这就是为什么D7 接 1 的原因所在了,D

9、7 为 1 则限制了这个电路所产生的中断至少得从80H 开始。这个 D7 接 1 不是偶然的,因为只有前 32 个中断向量是被reservedby Intel.后面的 244 个才是 user interrupt vectors.故只有 D7 接上拉电阻,使其为 1,保证中断矢量号从31H 以上的 80H开始。002zzz ( 2003/05/20 04:49pm)谢谢大家,我知道了,原来它这样接个上拉电阻,是为了使这里的中断向量号在USER INTRERRUPT 的允许范围内。3. 贴子主题:书上 478 页图不懂之处002vvv ( 2003/05/13 02:00pm)图中 A1 为何如

10、此连呢?002www( 2003/05/13 10:34pm)你注意到了吗?一个8259A 的两个端口之间相差 2,所以要用 A1 连,而不能用 A0002ppp( 2003/05/14 10:43pm)不过想问一下 , 为什么书上很多的例子的端口号都要两个两个隔开的?有什么道理吗qbxiong ( 2003/05/15 04:04pm)有道理。请回顾 pp.395-397 的标题为“8 - And 16-BitI/O Ports ”的那一小节。看395 页图 11-13 ,设想将 8259A 的 8 根数据引脚接数据总线的D7-D0,比较自然的做法就是将这片8259A 要用的 2 个端口地址

11、,安排为连续的偶地址。再回到 476 页,看倒数第 3 个自然段关于 8259A 的“D7- D0”的描述,可以理解其道理了吧。002zzz ( 2003/05/16 03:23pm)对,因为数据线的缘故,16 位有两个bank,所以到底用哪个bank 呢,这个就可以通过地址线A0 来设置qbxiong ( 2003/05/17 11:11am)注意到 002zzz 在新辟的“是否 A00 时,8 位 IO 端口一定接的是D0 到 D7,难道不可以接“我觉得,把数据线接到哪个bank 是人为规定的吧, 像我这样的想法不知道可不可以,讲到了 bank,也就讲到了问题的实质。D8 到 D15 吗?

12、”主题中提出:还是机器默认的规则?”;我想,可以在本主题中将此话题继续下去:478 页的图 12-16 是把 8259A 的 8 根数据引脚接数据总线的D7-D0,所以将这片 8259A 要用的 2 个端口地址, 安排为连续的偶地址;当然也可以人为安排把8259A 的 8 根数据引脚接数据总线的 D15-D8,那么,这片 8259A 的 2 个端口地址,就是连续的 2 个奇地址了。接下来的问题就是:若如此,图12-16 又应作何改动呢?当然,书上没有给出图中 16L8 的编程,那其实是有关系的。002qqq( 2003/05/17 08:59pm)不过为什么同样接d0 到 d7, 484 页图

13、将 A0 接到 8259A 的 A0 了呢?002yyy ( 2003/05/17 09:06pm)我的 maybe 不成熟看法:484 页的是 cpu 是 8088,外部数据线是8 位的,它只有一个体的002vvv ( 2003/05/17 09:12pm)因为 484 页这张图书上说“ the 8259A is decoded at 8 -bit I/O ports 48h and 49h 。这两个端口地址只差一,所以接A0 了002qqq( 2003/05/17 09:14pm)哦,应该是数据总线8 位的缘故吧。002rrr ( 2003/05/19 12:16pm)本来我也想问的,现在

14、看了明白了不少4. 贴子主题:P469 FIGURE 12-8002sss ( 2003/05/10 12:51pm为什么会有两个 *INTA?)002ttt ( 2003/05/10 01:54pm)书上说 Thereare two *INTA pulses generatedby the system thatae used to insertthe vectortype numberon the data bus.而对于图上打* 处,时序图下又有这么一句注释This portion of the data bus is ignoredand usually contains the ve

15、ctor number.这是否指系统响应中断请求时,通过*INTA 在数据总线 D7-D0 上放上的有效的中断类型号是第二次*INTA 脉冲处的。这里很不好理解,其中有何道理吗?我也不明白为何有两处*INTA 。哪位懂时序图的,帮忙解释一下啊!qbxiong ( 2003/05/10 02:45pm)下面引用由002ttt 在 2003/05/10 01:54pm 发表的内容:而对于图上打 * 处,时序图下又有这么一句注释This portion of the data bus is ignored and usuallycontains the vector number.这是否指系统响应中

16、断请求时, 通过 *INTA 在数据总线 D7-D0 上放上的有效的中断类型号是第二次 *INTA 脉冲处的。问得好;并且理解了这张图本身。*INTA 是微处理器发出的,微处理器的设计者这样设计,即中断响应周期中先后发两个*INTA ,是考虑了级连Cascade)的情况: 第 1 级汇总多个第 2 级的中断请求给微处理器的 INTR;响应的时候,微处理器用第 1 个 *INTA告诉第 1 级,我已进入中断响应周期, 然后第 1 级就可以去通知第 2 级中发出请求的那位, 你可以在下面那个 *INTA到来时,把自己的向量号放到数据总线上去;微处理器在这第2 个*INTA 期间采样数据总线,得到请

17、求中断者的向量号。但是,实际的系统中,也有中断源并不多,不用级连的情况,比如书上这第12-2 节中所有的例子,看图就知道,在第 1 个和第 2 个*INTA 到来时,都会有同样的向量号放上数据总线;当然,微处理器已设计为在第2 个 *INTA 期间采样数据总线,对于第1 个 *INTA 期间数据总线上的向量号,就只能是ignore 了。002yyy ( 2003/05/11 09:17am)那么书上的这个图是不是不对的?应像 ch12-1&2.pdf 中 slides20 那样?002sss (2003/05/11 12:31pm)应该是的,谢谢。5. 贴子主题 : P469 FIGU

18、RE 12-8汇集者注:此主题与4天前开始的上一主题(碰巧同名)问题一样,内容也重复,这种情况最好不要新开主题002aaa( 2003/05/14 08:41pm)为什么有两个 *INTA?002vvv ( 2003/05/14 09:43pm)这个好像老师讲过的,这是在cascade 情况下,先传给master,再传给 slave002www( 2003/05/14 10:17pm)在一个 8259A 的情况下,第一个*INTA 使得 ISR 的相应位置 1,第二次时将相应中断号放到数据总线上。在级联模式下, 作用相似, 只不过是要通过三根 cas 将设备号传输到 slave,第二次响应后由

19、 slave 将中断号放到数据线上002bbb( 2003/05/14 10:47pm)我想一楼问的是为什么图上会有两个/INTA 的线吧,我也不懂,请赐教002ccc ( 2003/05/20 04:09pm)*LOCK 又是什么东西?好象和第1 个*INTA 配合的很紧密嘛。qbxiong( 2003/05/20 09:15pm)问得好。提示:关于 *LOCK,可以看教案 ch09-1 第 31 页的定义。不过,此处的*LOCK 并非由带“ LOCK:”前缀的指令引起,而是进入中断响应周期就自动变为有效,直到中断响应完毕(即向量号放上了数据总线)才撤去。还有,*LOCK 信号可以通过即将在

20、 13-3 节讲的 8289 总线判优器起作用 (见已在课程主页上发布的教案ch13-3 第 12页)。大家知道 *LOCK 信号的作用了吧。想一下:为什么在中断响应周期先后两个*INTA 期间,要让*LOCK 引脚变为有效呢?002ddd( 2003/05/20 09:38pm)两个中断响应周期有严格的时序逻辑,如果在一个响应周期以后,总线被其它控制器占据,之后总线将失效,因为它并没有允许插入等待状态。不知道是不是这样?qbxiong( 2003/05/20 10:05pm)讲得对,用 *LOCK 面向的就是多处理器系统,单处理器系统是用不着*LOCK 的。今天上课讲 DMAC 时已经讲到,

21、 若有请求, CPU 是会在完成一个机器周期之后就放弃总线控制权的;而中断响应用了两个机器周期, 每发一个 *INTA 就是一个机器周期; 大家可以想一下: 如果在这两个机器周期之间放弃了总线控制权,会发生什么情况呢?qbxiong( 2003/05/21 04:30pm)下面引用由 002bbb 在 2003/05/14 10:47pm我想一楼问的是为什么图上会有两个 /INTA发表的内容:的线吧,我也不懂,请赐教正确的图见教案ch12-1&2 第 20 页。002uuu( 2003/05/21 06:24pm)再多罗嗦一句问一个问题 ,多个 8259A 级联 ,如书后的问题 9 个

22、 8259A 形成 64 个中断入口 ,Master 的 CAS0-CAS2 和Slave 的 CAS0-CAS2 是如何连接的呢 ?我的方式是通过三个八个引脚的 NAND gate 连接其他 8 个 8259A 的对应位置 ,因为没有经验 ,不知道这么处理是否妥当 .002www( 2003/05/21 06:37pm)让 master 的 cas2-cas0 直接分别连到各个slave 就可以了吧,我觉得似乎没必要用与门。002qqq( 2003/05/21 09:26pm)同意楼上的说法,直接相连即可qbxiong( 2003/05/21 09:53pm)下面引用由 002uuu 在20

23、03/05/21 06:24pm 发表的内容:再多罗嗦一句问一个问题,多个 8259A 级联 ,如书后的问题9 个8259A形成64 个中断入口,Master的CAS0-CAS2 和 Slave 的 CAS0-CAS2 是如何连接的呢 ?确实应该问,并非“罗嗦”。可看教案 ch12-3to5 第 19 页的图和 20-21 页的说明;注意CAS0-CAS2 也被称为一种 “bus”。002uuu( 2003/05/22 11:49am)大概有些明白这个 cascade bus 的意思了 ,CAS0-CAS2 一共 3 条线 ,若是对所有的 slave 进行内部操作 ,作为具体某一个 slave

24、 的内部地址可以通过这三条线选通 ,这样就和总线的形式很像了 ,我想 总线 的意思就是这样吧 .qbxiong( 2003/05/22 03:38pm)对。这种拓扑,是教案由它发,其它都是ch01_Bus 第 17 页讲的“合用线”的一个子类,特点是“不对称”:只有一个Slave ,并且都只能收,曾有人将这种拓扑称为“Multidrop ”。Master ,只能6. 贴子主题:P476 EXAMPLE 12-7002eee( 2003/05/10 02:48pm)想问一下LEVEL_1,LEVEL_2,LEVEL_3 分别是什么,跳转到它们所指的地方在哪里?程序中没有标出来啊?qbxiong

25、( 2003/05/10 03:18pm)LEVEL_0 是为第 1 片 82C55 端口 B 中断请求服务的中断服务程序的入口;LEVEL_1 是为第 1 片 82C55 端口 A 中断请求服务的中断服务程序的入口;LEVEL_2 是为第 2 片 82C55 端口 B 中断请求服务的中断服务程序的入口;LEVEL_3 是为第 2 片 82C55 端口 A 中断请求服务的中断服务程序的入口。7. 贴子主题: 书本的 487 的修改和问题 ?002fff ( 2003/05/15 12:18pm )P489 的 Example-12-3 的代码倒数第四行的OUT 49H,AL应改为 OUT 48

26、H,AL问题为 :这条指令使 8259 产生哪些信号 ?002zzz ( 2003/05/16 01:41pm)我觉得就是书中所说的产生8259A 的 EOI 信号,你可以看看书中关于OCW2 的定义8. 贴子主题:课本的 P473 上的 EXAMPLE12-中 6 的汇编代码的倒数第 3 行的 INC 对吗?002ccc ( 2003/05/17 09:30am)课本的 P473 上的 EXAMPLE12-6 中的汇编代码的倒数第是否应改成 DEC3 行的 INC 对吗?002ppp( 2003/05/18 08:19am)INC 应该是对的吧 .OUTP 是队列的头指针, 移动头指针使数据出队列. 在 P472 里的 Code 的 0121 行是移动 INP, 也就是队列的尾指针使数据入队列. 用的也是 INC, 只要头指针和尾指针移动方向一样就会构成队列的.比如 INP 和 OUTP 开始都指向 0, 然后 a,b,c,d 入了队列 ,INP 就指向 4,OUTP 还是 0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论