資源描述:
《1貼子主題 有關(guān)TF》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、1.貼子主題:有關(guān)TF002xxx(2003/05/1810:55am)關(guān)于TF標(biāo)志位的設(shè)置和清除是由程序來做的,沒有特定的指令可以完成。書上P464倒數(shù)第二段說在中斷服務(wù)程序返回前TF位既不是1也不是0,當(dāng)指令I(lǐng)RET執(zhí)行時才把TF位改為新的值。我想問的是thenewstate是什么?是在從中斷服務(wù)子程序返回時從堆棧中POP出的原來的FLAG原封不動的值,還是在返回的時刻又有新的中斷來時,原來的FLAG不POP出來,而是再裝入這個新的中斷的FLAG標(biāo)志?后面的這一點也就是P463上面第三行的語句。002
2、yyy(2003/05/1811:30am)我是這么想的,不知對不對:平時TF應(yīng)該為“0”吧,否則不是單步執(zhí)行方式了嗎?TRON和TROFF是對堆棧中的flags的TF位執(zhí)行的,但因書上example12-1,example12-2兩個程序的末尾都是“IRET”所以會再把它返回給當(dāng)前的flagregister--進(jìn)行中斷時的flagregister?我對意思是,設(shè)置TF位的狀態(tài)是對于中斷服務(wù)子程序來說的,如果你想單步執(zhí)行你的中斷服務(wù)子程序,那么進(jìn)行TRON,否則TROFF。qbxiong(2003/05/
3、1910:25am)兩位充分利用書上的例子來獲取更多實用技術(shù)的做法值得提倡。對于標(biāo)志寄存器中的中斷標(biāo)志IF,設(shè)有專門的指令STI將其置位,專門的指令CLI將其復(fù)位;但是,卻并沒有類似的指令,可以直接地操縱標(biāo)志寄存器中的陷阱標(biāo)志TF。不過,這并不意味著就沒有辦法可以改變標(biāo)志寄存器中T位的狀態(tài)了;辦法總比問題多:書上的例子是,因中斷時標(biāo)志寄存器自動地壓入了堆棧,故可以在中斷服務(wù)程序中,用BP間址找到標(biāo)志寄存器存放的內(nèi)存單元,并用OR指令將其中的對應(yīng)于TF的第8位置位;這樣,當(dāng)IRET指令使堆棧中存放的原標(biāo)志寄
4、存器內(nèi)容自動地彈回到CPU中去時,其中的TF已是新的狀態(tài)“1”了。以上是464頁例12-1標(biāo)號為TRON的中斷服務(wù)程序。同一頁例12-2標(biāo)號為TROFF的中斷服務(wù)程序,原理與之相同,不同的只是用AND指令將其中的第8位復(fù)位。推而廣之,這種將CPU或I/O接口中的寄存器,先復(fù)制到內(nèi)存中,在內(nèi)存中改變其中的某些位,然后再復(fù)制回去,從而改變了CPU或I/O接口中寄存器的相應(yīng)位的狀態(tài),不失為一種普適的做法。其實,在我們課本已經(jīng)接觸到的例子中,也還有這樣的做法,只是沒有如此明講而已。哪位還能找到其它的例子嗎?002
5、xxx(2003/05/1912:09pm)那么當(dāng)從中斷服務(wù)程序返回時,如果有新的中斷打斷它,此時FLAG還從堆棧中彈出來嗎?002yyy(2003/05/1907:22pm)因為之前已經(jīng)清了IF,所以此時應(yīng)該不會響應(yīng)新的中斷(我認(rèn)為這里處于p462最下端的第二步)。2.貼子主題:書474頁圖12-13關(guān)于用緩沖器擴(kuò)充中斷結(jié)構(gòu)的方法有個疑問002zzz(2003/05/1712:43pm)器件74ALS244為什么八個端口不各接一個IR引腳,這樣不就可以擴(kuò)充到8個,而書中是拿一個通過上拉電阻接電源,這樣不
6、就少接一個IR了嗎?它有什么特殊的作用嗎?qbxiong(2003/05/1705:00pm)問得好。請再讀一下474頁最后那個自然段。002uuu(2003/05/1709:35pm)我有同樣的問題,而且最后一個自然段的說明我沒有看明白.書上說“如果兩個或者更多的中斷請求連續(xù)發(fā)生,那么就產(chǎn)生一個新的中斷向量.當(dāng)/IR0,/IR1同時發(fā)出中斷請求那么FCH為新的中斷向量號,而且若/IR0收到的中斷優(yōu)先級比較高的話那么這個新的地址FCH就作為為/IR0的中斷向量地址”我的問題是下一句,為什么說“theent
7、iretophalfofthevectortableanditsinterruptvectorsmustbeusedtoaccommodateallpossibleconditionsofthesesseveninterruptrequestinputs”它這里的128個向量是由這7個中斷輸入組合形成的嗎?就這道例題而言,它的中斷向量表應(yīng)該是怎樣的?而且我想不出這種處理多個中斷輸入的方式有什么效率可言.qbxiong(2003/05/1809:36am)討論已漸入佳境,002uuu已注意到“theenti
8、retophalfofthevectortable”的問題。還請注意,002zzz首問中的“書中是拿一個通過上拉電阻接電源”,這“一個”,從圖中看是D7,決非偶然。大家不妨翻回課本第459頁,看一下倒數(shù)第2個自然段,也就是“InterruptVectors”小節(jié)中的第2段,或許能悟出其中的道理了吧。002uuu看書很仔細(xì),有意義的詞都不放過,這是值得提倡的學(xué)習(xí)精神,問到的“效率”,可能是指474頁最后那個自然段中的“cost-