版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.引言 CPU寄存器狀態(tài)字的各位給出了有關(guān)指令狀態(tài)或結(jié)果的信息以及所出現(xiàn)的錯(cuò)誤,我們可以將二進(jìn)制邏輯操作狀態(tài)位信號(hào)狀態(tài)直接集成到程序中,以控制程序執(zhí)行的流程。 2.狀態(tài)字寄存器 先簡(jiǎn)單介紹一下CPU中狀態(tài)字。 首次檢查位:狀態(tài)字的0位稱作首次檢查位,如果/FC 位的信號(hào)狀態(tài)為“0”,則表示伴隨著下一條邏輯指令,程序中將開始一個(gè)新的邏輯串。FC前面的斜杠表示對(duì)FC取反。 邏輯運(yùn)算結(jié)果:狀態(tài)字的第1位為RLO 位(RLO= “邏輯運(yùn)算結(jié)果”),在二進(jìn)制邏輯運(yùn)算中用作暫時(shí)存儲(chǔ)位。比如,一串邏輯指令中的某個(gè)指令檢查觸點(diǎn)的信號(hào)狀態(tài),
2、并根據(jù)布爾邏輯運(yùn)算規(guī)則將檢查的結(jié)果(狀態(tài)位)與RLO位進(jìn)行邏輯門運(yùn)算,然后邏輯運(yùn)算結(jié)果又存在RLO位中。 狀態(tài)位:狀態(tài)位(第2位)用以保存被尋址位的值。狀態(tài)位總是向掃描指令(A,AN,O,)或?qū)懼噶睿?,S,R,)顯示尋址位的狀態(tài)(對(duì)于寫指令,保存的尋址位狀態(tài)是本條寫指令執(zhí)行后的該尋址位的狀態(tài))。 OR位:在用指令OR執(zhí)行或邏輯操作之前,執(zhí)行與邏輯操作的時(shí)候,就需要用到OR這一狀態(tài)位。OR位表示先前執(zhí)行的與邏輯操作產(chǎn)生的值為“1”,于是,邏輯操作或的執(zhí)行結(jié)果就已被確定為“1”。 OV位:溢出表示算術(shù)或比較指令執(zhí)行時(shí)出現(xiàn)了錯(cuò)誤。根據(jù)所執(zhí)行的算術(shù)或邏輯指令結(jié)果對(duì)該位進(jìn)行設(shè)置。 OS位:溢出存儲(chǔ)位是
3、與OV位一起被置位的,而且在更新算術(shù)指令之后,它能夠保持這種狀態(tài),也就是說(shuō),它的狀態(tài)不會(huì)由于下一個(gè)算術(shù)指令的結(jié)果而改變。 這樣,即使是在程序的后面部分,也還有機(jī)會(huì)判斷數(shù)字區(qū)域是否溢出或者指令是否含有無(wú)效實(shí)數(shù)。OS位只有通過(guò)如下這些命令進(jìn)行復(fù)位:JOS(若OS = 1,則跳轉(zhuǎn))命令,塊調(diào)用和塊結(jié)束命令。 CC1及CC0位:CC1和CC0(條件代碼)位給出有關(guān)下列結(jié)果的相關(guān)信息: • 算術(shù)指令結(jié)果 • 比較指令結(jié)果 • 字邏輯指令• 在移位功能中,移出位相關(guān)信息。 可以用以下指令來(lái)檢查條件代碼CC1和CC0。 CC1
4、CC0 檢查完成后,如果:0 0 A = 0 結(jié)果 =0 1 0 A > 0 結(jié)果 > 0 0 1 A < 0 結(jié)果 < 0 BR位:狀態(tài)字的第8位稱為二進(jìn)制結(jié)果位。它將字處理程序與位處理聯(lián)系起來(lái),在一段既有位操 作又有字操作的程序中,用于表示字邏輯是否正確。將BR位加入程序后,無(wú)論字操作結(jié)果如何,都不會(huì)造成二進(jìn)制邏輯鏈中斷。在梯形圖的方塊指令中,BR位與ENO位有對(duì)應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯(cuò)誤,BR位為0,ENO位也為0;如果功能被正確執(zhí)行,BR位為1,
5、 ENO位也為1。在用戶編寫的FB/FC程序中,應(yīng)該對(duì)BR位進(jìn)行管理,功能塊正確執(zhí)行后,使BR位為1,否則使其為0。使用SAVE指令將RLO存入BR中,從而達(dá)到管理BR位目的。狀態(tài)字的9-15位未使用。3.具體使用 下面我們結(jié)合STEP7中的指針編程來(lái)具體介紹條件碼CC0/CC0的用法。 不同的指令在CPU中執(zhí)行時(shí)間是不同的。浮點(diǎn)數(shù)比定點(diǎn)數(shù)執(zhí)行時(shí)間要長(zhǎng);字邏輯指令比位邏輯指令執(zhí)行時(shí)間要長(zhǎng);在某些程序中適當(dāng)使用狀態(tài)字來(lái)進(jìn)行編程可以減少CPU程序的執(zhí)行時(shí)間。例1:比如說(shuō)要比較一個(gè)DB中塊的DBBO-DB
6、B99這100個(gè)字節(jié)是正數(shù)是負(fù)數(shù)還是0,正數(shù)用1來(lái)表示;負(fù)數(shù)用-1來(lái)表示;0用0來(lái)表示。并且將對(duì)應(yīng)結(jié)果存入MB200開始的100個(gè)字節(jié)中。我們通常的做法可能為:如果利用條件碼來(lái)進(jìn)行編程,既可以減少程序的大小還會(huì)減少一定的指令執(zhí)行時(shí)間,我們只需要將中間的比較程序加以優(yōu)化,即可以達(dá)到目的。 例2:根據(jù)狀態(tài)位C0和CC1的狀態(tài)而跳轉(zhuǎn)的跳轉(zhuǎn)功能指令JZ不改變?nèi)魏螤顟B(tài)位的狀態(tài),而且邏輯操作結(jié)果RLO值也會(huì)“隨著”該跳轉(zhuǎn)功能帶到跳轉(zhuǎn)程序段中,供用戶程序其它邏輯操作之用(不改變/FC狀態(tài))。 示例 兩個(gè)整數(shù)相減并需進(jìn)行連續(xù)判斷: L MW2
7、160; L MW8 -I JZ ZERO / 如果結(jié)果等于“0”,則跳轉(zhuǎn)至標(biāo)號(hào)ZERO處 / 結(jié)果不等于“0”時(shí)所執(zhí)行的指令 ZERO: / 結(jié)果等于“0”時(shí),所要執(zhí)行的指令 如果用戶不熟悉JZ指令和狀態(tài)位C0和CC1的具體含義,編程時(shí)就需要通過(guò)比較指令將比較結(jié)果存入一個(gè)二進(jìn)
8、制位中,再根據(jù)這個(gè)二進(jìn)制位通過(guò)JC/JCN指令來(lái)控制程序的執(zhí)行了。例3:我們實(shí)際應(yīng)用中可能要利用某些協(xié)議轉(zhuǎn)換網(wǎng)關(guān)(比如說(shuō)Hilscher公司的NTTAP系列網(wǎng)關(guān))來(lái)和某些串口協(xié)議的儀表進(jìn)行通信時(shí),會(huì)遇到CRC校驗(yàn)的問(wèn)題,關(guān)于CRC校驗(yàn)時(shí)需要判斷溢出位是否為1的問(wèn)題來(lái)進(jìn)行程序的進(jìn)一步計(jì)算。我們以EURO2408的MODBUS通信時(shí)需要的CRC校驗(yàn)為例說(shuō)明CRC校驗(yàn)的步驟:1、裝載16#FFFF到一個(gè)16位CRC寄存器;2、將CRC寄存器的高8位字節(jié)與信息中的第一個(gè)8位字節(jié)相異或,結(jié)果返回到CRC寄存器中;3、將CRC寄存器數(shù)據(jù)向右移動(dòng)一位;4、如果溢出的位等于1,則將CRC寄存器與16#A001相異或,結(jié)果返回到CRC寄存器中;4、如果溢出的位等于0,則重復(fù)第3步;5、重復(fù)第3、4步驟,直到已經(jīng)移位了8次;6、將CRC寄存器的高8位字節(jié)與信息中的下一個(gè)8位字節(jié)相異或,結(jié)果返回到CRC寄存器中;7、重復(fù)第3步到第6步,直到信息中所有字節(jié)都與CRC寄存器相異或,并都移位了8次;8、最后的CRC寄存器中的結(jié)果即為CRC校驗(yàn)碼,最后被添加到信息(數(shù)據(jù))的末尾(交換!低8位在前,高8位在后;)在第4步中需要判斷溢出的位是否為1,如何判斷對(duì)于整個(gè)程序有著重要的影響。我們可以用A&
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年新人教版七年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件 3.1 第2課時(shí) 列代數(shù)式
- DBJ50∕T-229-2023 建筑地基處理技術(shù)標(biāo)準(zhǔn)
- 中藥涂擦課件教學(xué)課件
- 趙州橋課件教學(xué)課件
- 《現(xiàn)代順風(fēng)耳電話》課件
- 【課件】分子和原子(第2課時(shí)分子可以分為原子)課件九年級(jí)化學(xué)人教版(2024)上冊(cè)
- 催化裂化工藝流程及主要設(shè)備
- 2024-2025學(xué)年上海市徐匯區(qū)位育實(shí)驗(yàn)學(xué)校九年級(jí)(上)月考數(shù)學(xué)試卷(9月份) (含解析)
- 的入門課件教學(xué)課件
- 食品安全 課件
- 財(cái)務(wù)主管崗位招聘筆試題及解答(某大型集團(tuán)公司)
- 綜合實(shí)踐項(xiàng)目(一)制作細(xì)胞模型教案-2024-2025學(xué)年人教版七年級(jí)生物學(xué)上冊(cè)
- 2024年公共衛(wèi)生基本知識(shí)考試題庫(kù)(附含答案)
- 5.2 外力作用與地表形態(tài)高三地理一輪復(fù)習(xí)課件
- 2024秋季開學(xué)第一課巴黎奧運(yùn)會(huì)主題班會(huì)1
- 2024年四川省成都市中考化學(xué)試卷(含官方答案及解析)
- 行政管理的未來(lái)發(fā)展趨勢(shì)
- 部編人教版三年級(jí)上冊(cè)道德與法治全冊(cè)教案
- JTS 206-2-2023 水運(yùn)工程樁基施工規(guī)范
- 《哦香雪》課件++2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 醫(yī)療機(jī)構(gòu)麻精藥品處方登記表
評(píng)論
0/150
提交評(píng)論