版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2.3 指令類型指令類型2.3.1 傳送指令傳送指令源地址源地址 目的地址目的地址數(shù)據(jù)數(shù)據(jù)傳送指令的指令特點(diǎn)傳送指令的指令特點(diǎn):功能功能1. 規(guī)定傳送范圍規(guī)定傳送范圍用戶編程能夠指定的用戶編程能夠指定的源端源端和和目的端目的端:寄存器寄存器 (R) 存儲(chǔ)器存儲(chǔ)器(M) RRRMMM范圍、單位、尋址方式范圍、單位、尋址方式例例. Intel 80X86: R M, R RIBM370:R M, R R, M MR MDJS-100系列系列:傳送范圍的指定涉及多方面因素傳送范圍的指定涉及多方面因素:復(fù)雜性、速度、價(jià)格等復(fù)雜性、速度、價(jià)格等R MR R盡可能讓數(shù)據(jù)在盡可能讓數(shù)據(jù)在R之間傳送之間傳送,
2、速度快速度快, 復(fù)雜性增加復(fù)雜性增加M M速度慢速度慢, 利于編程利于編程介于前兩者之間介于前兩者之間例例. 80X86的串傳送指令的串傳送指令: REP MOVSWMOV AX, BX (16位位)MOV AL, BL (8位位)MOV EAX, EBX (32位位)(字傳送字傳送, SI DI, 傳送次數(shù)由計(jì)數(shù)器傳送次數(shù)由計(jì)數(shù)器CX控制控制)2. 指明傳送單位指明傳送單位例例. VAX-11(用操作碼說(shuō)明用操作碼說(shuō)明):MOVB8位位MOVL32位位MOVW16位位Intel 80X86:(用地址量說(shuō)明用地址量說(shuō)明)3. 設(shè)置尋址方式設(shè)置尋址方式 不同機(jī)器各不相同不同機(jī)器各不相同, 但一般
3、都具有基本的但一般都具有基本的尋址方式尋址方式 尋址方式越多尋址方式越多, 編程越方便,但機(jī)器的實(shí)編程越方便,但機(jī)器的實(shí)現(xiàn)越復(fù)雜現(xiàn)越復(fù)雜針對(duì)數(shù)據(jù)傳送指令設(shè)置的尋址方式針對(duì)數(shù)據(jù)傳送指令設(shè)置的尋址方式:2.3.2 輸入輸入/輸出指令輸出指令1. I/O指令的功能擴(kuò)展指令的功能擴(kuò)展如何用通用如何用通用I/O指令實(shí)現(xiàn)對(duì)各種不同設(shè)備的控制指令實(shí)現(xiàn)對(duì)各種不同設(shè)備的控制? (1) I/O指令中留有擴(kuò)展余地指令中留有擴(kuò)展余地指令中某些字段編碼事先不定義指令中某些字段編碼事先不定義, 需要時(shí)再約需要時(shí)再約定其含義。定其含義。 各種信息各種信息主機(jī)主機(jī) 外設(shè)外設(shè) 比如比如: 設(shè)置設(shè)置I/O指令時(shí)需考慮指令時(shí)需考慮
4、:操作碼操作碼 操作數(shù)操作數(shù)1 操作數(shù)操作數(shù)2三位空閑三位空閑, 接口設(shè)計(jì)時(shí)定義接口設(shè)計(jì)時(shí)定義 譯碼器譯碼器三位編碼三位編碼, 定義定義8種功能種功能應(yīng)用范圍應(yīng)用范圍: 用于外設(shè)種類、數(shù)量不多的場(chǎng)合。用于外設(shè)種類、數(shù)量不多的場(chǎng)合。(2) I/O接口中設(shè)置接口中設(shè)置控制控制/狀態(tài)寄存器狀態(tài)寄存器 主機(jī)用輸出指令或傳送指令將具體設(shè)備的控主機(jī)用輸出指令或傳送指令將具體設(shè)備的控 制命令按約定的代碼格式送往接口中的制命令按約定的代碼格式送往接口中的控制控制寄存器寄存器, 向外設(shè)發(fā)出命令。向外設(shè)發(fā)出命令。 外設(shè)的狀態(tài)信息也以某種格式放在接口的狀外設(shè)的狀態(tài)信息也以某種格式放在接口的狀態(tài)寄存器中態(tài)寄存器中,
5、主機(jī)用輸入指令或傳送指令從主機(jī)用輸入指令或傳送指令從狀態(tài)寄存器狀態(tài)寄存器中取出有關(guān)信息進(jìn)行查詢中取出有關(guān)信息進(jìn)行查詢、分析。分析。如何設(shè)置控制如何設(shè)置控制/ /狀態(tài)寄存器是接口設(shè)計(jì)的關(guān)鍵狀態(tài)寄存器是接口設(shè)計(jì)的關(guān)鍵。例例:處理器處理器 I/O 設(shè)備設(shè)備 總線總線可編程接可編程接口芯片口芯片 控制寄存器控制寄存器 狀態(tài)寄存器狀態(tài)寄存器控制寄存器控制寄存器 .C7 C6 C5 .C0 狀態(tài)寄存器狀態(tài)寄存器 .D7 D6 D5 .D0 OUT n1, ALIN AL, n22. 主機(jī)對(duì)外設(shè)的尋址方式主機(jī)對(duì)外設(shè)的尋址方式I/O端口端口尋找尋找外設(shè)外設(shè)或或I/O接口中的寄存器接口中的寄存器的方式。的方式。
6、如何為如何為I/O端口分配地址?端口分配地址? I/O設(shè)備設(shè)備 I/O接口邏輯接口邏輯 寄存器寄存器 譯譯碼碼器器端口地址端口地址數(shù)據(jù)數(shù)據(jù)端口地址與存儲(chǔ)器地址的關(guān)系?端口地址與存儲(chǔ)器地址的關(guān)系?(1) 單獨(dú)編址單獨(dú)編址 編址到設(shè)備編址到設(shè)備: 編址到寄存器編址到寄存器(端口獨(dú)立編址端口獨(dú)立編址) : 端口地址的位數(shù)一般遠(yuǎn)少于存儲(chǔ)單元地址的位數(shù)端口地址的位數(shù)一般遠(yuǎn)少于存儲(chǔ)單元地址的位數(shù) I/O地址空間不占主存空間地址空間不占主存空間 因此因此I/O地址可與內(nèi)存地址重疊地址可與內(nèi)存地址重疊每個(gè)設(shè)備有各自的設(shè)備編碼每個(gè)設(shè)備有各自的設(shè)備編碼; I/O指令給出設(shè)指令給出設(shè)備碼備碼, 并指明訪問(wèn)該設(shè)備的哪
7、個(gè)寄存器。并指明訪問(wèn)該設(shè)備的哪個(gè)寄存器。為每個(gè)寄存器為每個(gè)寄存器(I/O端口端口)分配獨(dú)立的端口地分配獨(dú)立的端口地 址址, I/O指令中給出端口地址。指令中給出端口地址。單獨(dú)編址的特點(diǎn)單獨(dú)編址的特點(diǎn):例例: 端口獨(dú)立編址端口獨(dú)立編址 (地址重疊地址重疊)存儲(chǔ)空間存儲(chǔ)空間: 容量容量64K, 編址編址0000H FFFFH端口編址端口編址: 00H FFH (假設(shè)都已分配給不同端口假設(shè)都已分配給不同端口)處理器處理器 地址總線地址總線外設(shè)端口外設(shè)端口寄存器寄存器存儲(chǔ)器存儲(chǔ)器數(shù)據(jù)總線數(shù)據(jù)總線RD 讀存儲(chǔ)單元讀存儲(chǔ)單元FF30H, 處理器輸出地址處理器輸出地址 ,存儲(chǔ)器從存儲(chǔ)器從16位地址總線上接收
8、位地址總線上接收FF30H, 并接收讀命令并接收讀命令RD 由于采用總線結(jié)構(gòu)由于采用總線結(jié)構(gòu), 外設(shè)端口也將從地址總線外設(shè)端口也將從地址總線的低的低8位收到處理器發(fā)出地址的低位收到處理器發(fā)出地址的低8位位(30H), 并并收到讀命令收到讀命令 。RD 如果不加控制如果不加控制, 存儲(chǔ)單元存儲(chǔ)單元FF30H和地址為和地址為30H的的端口的數(shù)據(jù)被同時(shí)讀出到數(shù)據(jù)總線端口的數(shù)據(jù)被同時(shí)讀出到數(shù)據(jù)總線, 導(dǎo)致會(huì)亂。導(dǎo)致會(huì)亂。處理器處理器 地址總線地址總線外設(shè)端口外設(shè)端口寄存器寄存器存儲(chǔ)器存儲(chǔ)器數(shù)據(jù)總線數(shù)據(jù)總線RD關(guān)鍵原因關(guān)鍵原因: 地址碼本身不能區(qū)分地址碼本身不能區(qū)分存儲(chǔ)單元存儲(chǔ)單元或或端口端口。(2)
9、統(tǒng)一編址統(tǒng)一編址I/O端口占據(jù)部分處理器提供的全部尋址空端口占據(jù)部分處理器提供的全部尋址空間的一部分。可將存儲(chǔ)空間的低端分配給主間的一部分??蓪⒋鎯?chǔ)空間的低端分配給主存單元存單元, 高端分配給高端分配給I/O端口端口, 以示區(qū)分以示區(qū)分。 編址到寄存器編址到寄存器:為每個(gè)寄存器為每個(gè)寄存器(I/O端口端口)分配總線地址分配總線地址;訪問(wèn)外設(shè)時(shí)訪問(wèn)外設(shè)時(shí), 指令中給出總線地址。指令中給出總線地址。 (即即 與存儲(chǔ)器單元統(tǒng)一編址與存儲(chǔ)器單元統(tǒng)一編址)因此因此, 地址本身能夠區(qū)分出地址本身能夠區(qū)分出存儲(chǔ)單元地址存儲(chǔ)單元地址還是還是I/O端口地址端口地址, 無(wú)需其它控制無(wú)需其它控制, 不會(huì)出現(xiàn)存儲(chǔ)單不
10、會(huì)出現(xiàn)存儲(chǔ)單元和端口的讀寫發(fā)生會(huì)亂。元和端口的讀寫發(fā)生會(huì)亂。 端口獨(dú)立編址端口獨(dú)立編址: 用專門的用專門的/輸入輸出指令來(lái)完成輸入輸出指令來(lái)完成端口的讀寫操作端口的讀寫操作 統(tǒng)一編址統(tǒng)一編址:無(wú)需專門輸入無(wú)需專門輸入/輸出指令輸出指令, 采用一般數(shù)采用一般數(shù)據(jù)傳送指令即可端口的讀寫操作據(jù)傳送指令即可端口的讀寫操作比如比如: 輸入指令輸入指令 IN Ri , n 輸出指令輸出指令 OUT n , Ri比如比如: 某外設(shè)接口有某外設(shè)接口有3各寄存器各寄存器, 分別為分別為: 數(shù)據(jù)寄存器數(shù)據(jù)寄存器 分配地址分配地址 FF00 命令字寄存器命令字寄存器 分配地址分配地址 FF01 狀態(tài)寄存器狀態(tài)寄存器
11、 分配地址分配地址 FF02 CPU內(nèi)部有寄存器內(nèi)部有寄存器R0 、R1 、R2 、 R3數(shù)據(jù)寄存器數(shù)據(jù)寄存器 分配地址分配地址 FF00命令字寄存器命令字寄存器 分配地址分配地址 FF01狀態(tài)字寄存器狀態(tài)字寄存器 分配地址分配地址 FF02則指令則指令: MOV FF01 , R0 R0的內(nèi)容輸出到命令字寄存器的內(nèi)容輸出到命令字寄存器MOV R1 , FF02 狀態(tài)字輸入狀態(tài)字輸入CPU內(nèi)內(nèi)R1MOV R2 , FF00 數(shù)據(jù)寄存器內(nèi)容輸入數(shù)據(jù)寄存器內(nèi)容輸入CPU內(nèi)內(nèi)R2MOV FF00 , R3 R3的內(nèi)容輸出到數(shù)據(jù)寄存器的內(nèi)容輸出到數(shù)據(jù)寄存器CPU設(shè)置標(biāo)志來(lái)區(qū)分訪問(wèn)對(duì)象設(shè)置標(biāo)志來(lái)區(qū)分訪問(wèn)
12、對(duì)象, 如如Intel80 86= 0 訪問(wèn)訪問(wèn)I/O端口端口M/IO 對(duì)于端口獨(dú)立編址:對(duì)于端口獨(dú)立編址:= 1 訪問(wèn)存儲(chǔ)器訪問(wèn)存儲(chǔ)器電路如何實(shí)現(xiàn)電路如何實(shí)現(xiàn)(體現(xiàn)體現(xiàn)) 兩種不同的編址方式??jī)煞N不同的編址方式? 對(duì)于統(tǒng)一編址:對(duì)于統(tǒng)一編址:譯碼電路對(duì)地址碼的譯碼區(qū)分出需要讀寫譯碼電路對(duì)地址碼的譯碼區(qū)分出需要讀寫的單元或端口。的單元或端口。當(dāng)執(zhí)行當(dāng)執(zhí)行I/O所指令時(shí)所指令時(shí), 該引腳為該引腳為0 ;(引腳引腳)當(dāng)訪問(wèn)存儲(chǔ)器時(shí)當(dāng)訪問(wèn)存儲(chǔ)器時(shí)(執(zhí)行任何需訪存的指令、執(zhí)行任何需訪存的指令、取指令等取指令等), 該引腳為該引腳為1 ;(引腳引腳 的利用的利用):M/IO電路原理電路原理存儲(chǔ)存儲(chǔ)芯片芯
13、片 I/O端口端口M地址地址譯碼器譯碼器I/O地址地址譯碼器譯碼器M/IOENEN地址總線地址總線CSCS 端口的類型以及選中的方式端口的類型以及選中的方式:端口的常見(jiàn)類型有端口的常見(jiàn)類型有: 寄存器寄存器(常作輸出端口常作輸出端口) 帶三態(tài)輸出的寄存器帶三態(tài)輸出的寄存器 (常作輸入端口常作輸入端口) 觸發(fā)器觸發(fā)器輸出端口輸出端口端口選中方式端口選中方式: 接口電路接口電路 寄存器寄存器數(shù)據(jù)總線數(shù)據(jù)總線 譯碼器譯碼器地址總線地址總線CLK(端口地址端口地址)到外設(shè)到外設(shè)打入脈沖打入脈沖 接口電路接口電路 數(shù)據(jù)總線的某一位數(shù)據(jù)總線的某一位 譯碼器譯碼器地址總線地址總線CLK(端口地址端口地址)D
14、CQQ觸發(fā)器觸發(fā)器輸入端口輸入端口 接口電路接口電路 三態(tài)輸出寄存器三態(tài)輸出寄存器數(shù)據(jù)總線數(shù)據(jù)總線 譯碼器譯碼器地址總線地址總線EN(端口地址端口地址)自外設(shè)自外設(shè)開(kāi)門信號(hào)開(kāi)門信號(hào)3. I/O指令設(shè)置方式指令設(shè)置方式(1)(1)設(shè)置專用設(shè)置專用I/O指令指令 顯式顯式I/O指令指令針對(duì)端口獨(dú)立編址針對(duì)端口獨(dú)立編址, 用用I/O指令訪問(wèn)指令訪問(wèn)I/O端口。指端口。指令中說(shuō)明輸入令中說(shuō)明輸入/輸出操作輸出操作, 給出給出設(shè)備碼或端口地址。設(shè)備碼或端口地址。例例1. DJS-100系列系列I/O指令設(shè)置指令設(shè)置 輸入輸入: DIB C 2, 設(shè)備碼設(shè)備碼; 接口內(nèi)寄存器接口內(nèi)寄存器主機(jī)內(nèi)寄存器主機(jī)內(nèi)
15、寄存器AC2并清除并清除B (C表示清除表示清除) 3 2 3 2 6 特征位特征位 累加器號(hào)累加器號(hào) 操作碼操作碼 控制功能控制功能 設(shè)備碼設(shè)備碼 完成完成:(B)例例2. Intel 80X86 I/O指令設(shè)置指令設(shè)置端口地址端口地址 輸入輸入: IN AL, n ;(n) AL(端口直接尋址端口直接尋址)間接端口地址間接端口地址IN AL, DX ;OUT n, AL ; (AL) n(端口直接尋址端口直接尋址)OUT DX, AL ; (AL) (DX)(端口間接尋址端口間接尋址) 輸出輸出: (端口間接尋址端口間接尋址)(DX)AL 輸出:輸出:DOA 3, 設(shè)備碼設(shè)備碼;(AC3)
16、 A接口內(nèi)寄存器接口內(nèi)寄存器主機(jī)內(nèi)寄存器主機(jī)內(nèi)寄存器(2) 用用傳送指令傳送指令實(shí)現(xiàn)實(shí)現(xiàn)I/O操作操作 隱式隱式I/O指令指令 例例. 某機(jī)某機(jī)I/O接口中設(shè)置接口中設(shè)置 控制控制/狀態(tài)寄存器狀態(tài)寄存器CSR, 其總線地址為其總線地址為177550 (8進(jìn)制進(jìn)制) 數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器DBR, 其總線地址為其總線地址為177552 (8進(jìn)制進(jìn)制)針對(duì)統(tǒng)一編址針對(duì)統(tǒng)一編址, 用傳送指令訪問(wèn)用傳送指令訪問(wèn)I/O端口。端口。不設(shè)專用不設(shè)專用I/O指令。指令。主機(jī)調(diào)用輸入機(jī)主機(jī)調(diào)用輸入機(jī):控制控制/狀態(tài)字格式狀態(tài)字格式:出錯(cuò)出錯(cuò) 故障故障 忙忙 完成完成 允許中斷允許中斷 維護(hù)維護(hù) 校驗(yàn)校驗(yàn)
17、啟動(dòng)啟動(dòng)15 14 12 7 6 2 1 0啟動(dòng)啟動(dòng):177550傳送指令傳送指令控制字控制字(啟動(dòng)位為啟動(dòng)位為1)主機(jī)主機(jī)測(cè)試測(cè)試: 主機(jī)主機(jī)傳送指令傳送指令狀態(tài)字狀態(tài)字177550取數(shù)取數(shù):177552傳送指令傳送指令數(shù)據(jù)數(shù)據(jù)主機(jī)主機(jī)(3) 通過(guò)通過(guò)I/O處理機(jī)進(jìn)行處理機(jī)進(jìn)行I/O操作操作兩級(jí)兩級(jí)I/O指令指令 CPU執(zhí)行簡(jiǎn)單執(zhí)行簡(jiǎn)單I/O指令指令(啟動(dòng)、停止、查詢、清除啟動(dòng)、停止、查詢、清除) I/O處理機(jī)執(zhí)行處理機(jī)執(zhí)行I/O操作指令操作指令(輸入、輸出輸入、輸出)主機(jī)主機(jī) I/O 設(shè)備設(shè)備 I/O處理機(jī)處理機(jī) I/O 設(shè)備設(shè)備.設(shè)置時(shí)需考慮設(shè)置時(shí)需考慮操作數(shù)類型操作數(shù)類型、符號(hào)符號(hào)、進(jìn)
18、位制進(jìn)位制等等;運(yùn)算結(jié)束后設(shè)置相應(yīng)運(yùn)算結(jié)束后設(shè)置相應(yīng)狀態(tài)標(biāo)志狀態(tài)標(biāo)志。1. 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令2.3.3 算術(shù)邏輯運(yùn)算指令算術(shù)邏輯運(yùn)算指令2. 邏輯運(yùn)算指令邏輯運(yùn)算指令實(shí)現(xiàn)對(duì)數(shù)據(jù)的實(shí)現(xiàn)對(duì)數(shù)據(jù)的設(shè)置、測(cè)試、清除、修改設(shè)置、測(cè)試、清除、修改等等與與或或異或異或 OR AL, 60H將將AL的的D6、D5位置位置1 TEST AL, 83H測(cè)試測(cè)試AL的的D7、D1、D0位是否為位是否為0XOR AL, 0AH將將AL的的D3、D1位變反位變反用于控制程序指令的流程。用于控制程序指令的流程。1. 轉(zhuǎn)移指令轉(zhuǎn)移指令2.3.4 程序控制指令程序控制指令2. 轉(zhuǎn)子指令與返回指令轉(zhuǎn)子指令與返回指令轉(zhuǎn)子轉(zhuǎn)子指令指令: 操作碼操作碼 子程序入口
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 肺炎狀況課件教學(xué)課件
- 2024年度產(chǎn)品代理合同與物業(yè)費(fèi)詳細(xì)構(gòu)成
- 課件腕關(guān)節(jié)教學(xué)課件
- 2024年乙方向甲方購(gòu)買設(shè)備的購(gòu)銷合同
- 2024年建筑信息模型(BIM)合作協(xié)議
- 2024年住宅買賣雙方合同
- 2024年度4S店租賃期內(nèi)客戶資料保密協(xié)議
- 制備氧氣課件教學(xué)課件
- 2024廣州房屋租賃合同范本2
- 【幼兒園語(yǔ)言文字教學(xué)的規(guī)范化分析3000字(論文)】
- 瓶口分液器校準(zhǔn)規(guī)范
- (完整版)醫(yī)療器械網(wǎng)絡(luò)交易服務(wù)第三方平臺(tái)質(zhì)量管理文件
- 信息管理監(jiān)理實(shí)施細(xì)則水利水電工程
- (醫(yī)學(xué)課件)DIC患者的護(hù)理
- 跨境數(shù)據(jù)流動(dòng)的全球治理進(jìn)展、趨勢(shì)與中國(guó)路徑
- 【多旋翼無(wú)人機(jī)的組裝與調(diào)試5600字(論文)】
- 2023年遼陽(yáng)市宏偉區(qū)事業(yè)單位考試真題
- 環(huán)境工程專業(yè)英語(yǔ) 課件
- 繼電保護(hù)動(dòng)作分析報(bào)告課件
- 五年級(jí)數(shù)學(xué)上冊(cè)8解方程課件
評(píng)論
0/150
提交評(píng)論