1. <pre id="srmtd"></pre>
      
      
    2. <menuitem id="srmtd"></menuitem>

    3. 什么是狀態(tài)字?狀態(tài)字的作用

      狀態(tài)字用于表示CPU執(zhí)行指令時所具有的狀態(tài)。一些指令是否執(zhí)行或以何方式執(zhí)行可能取決于狀態(tài)字中的某些位;執(zhí)行指令時也可能改變狀態(tài)字中的某些位,也能在位邏輯指令或字邏輯指令中訪問并檢測他們。狀態(tài)字的結(jié)構(gòu)如下:


      31……………9 8 7 6 5 4 3 2 1 0

       

      BR

      CC1

      CC0

      OS

      OV

      OR

      STA

      RLO

      (1) 首位檢測位(

      狀態(tài)字的位0稱為首位檢測位。若位的狀態(tài)為0,則表明一個梯形邏輯網(wǎng)絡(luò)的開始,或指令為邏輯串的第一條指令。CPU對邏輯串第一條指令的檢測(稱為首位檢測)產(chǎn)生的結(jié)果直接保存在狀態(tài)字的RLO位中,經(jīng)過首次檢測存放在RLO中的01被稱為首位檢測結(jié)果。位在邏輯串的開始時總是0,在邏輯串指令執(zhí)行過程中位為1,輸出指令或與邏輯運算有關(guān)的轉(zhuǎn)移指令(表示一個邏輯串結(jié)束的指令)將0。

      (2) 邏輯操作結(jié)果(RLO

      狀態(tài)字的位1稱為邏輯操作結(jié)果RLOResult of Logic Operation)。該位存儲邏輯指令或算術(shù)比較指令的結(jié)果。在邏輯串中,RLO位的狀態(tài)能夠表示有關(guān)信號流的信息。RLO的狀態(tài)為1,表示有信號流(通);為0,表示無信號流(斷)??捎?span >RLO觸發(fā)跳轉(zhuǎn)指令。

      (3) 狀態(tài)位(STA

      狀態(tài)字的位2稱為狀態(tài)位。狀態(tài)位不能用指令檢測,它只是在程序測試中被CPU解釋并使用。如果一條指令是對存儲區(qū)操作的位邏輯指令,則無論是對該位的讀或?qū)懖僮鳎?span >STA總是與該位的值取得一致;對不訪問存儲區(qū)的位邏輯指令來說,STA位沒有意義,此時它總被置為1。

      (4) 或位(OR

      狀態(tài)字的位3稱為或位(OR)。在先邏輯“與”后邏輯“或”的邏輯串中,OR位暫存邏輯“與”的操作結(jié)果,以便進(jìn)行后面的邏輯“或”運算。其它指令將OR位清0

      (5) 溢出位(OV

      狀態(tài)字的位4稱為溢出位。溢出位被置1,表明一個算術(shù)運算或浮點數(shù)比較指令執(zhí)行時出現(xiàn)錯誤(錯誤:溢出、非法操作、不規(guī)范格式)。后面的算術(shù)運算或浮點數(shù)比較指令執(zhí)行結(jié)果正常的話OV位就被清0。

      (6) 溢出狀態(tài)保持位(OS

      狀態(tài)字的位5稱為溢出狀態(tài)保持位(或稱為存儲溢出位)。OV被置1OS也被置1;OV被清0OS仍保持。所以它保存了OV位,可用于指明在先前的一些指令執(zhí)行中是否產(chǎn)生過錯誤。只有下面的指令才能復(fù)位OS位:JOSOS=1時跳轉(zhuǎn));塊調(diào)用指令和塊結(jié)束指令。

      (7) 條件碼1CC1)和條件碼0CC0

      狀態(tài)字的位7和位6稱為條件碼1和條件碼0。這兩位結(jié)合起來用于表示在累加器1中產(chǎn)生的算術(shù)運算或邏輯運算結(jié)果與0的大小關(guān)系;比較指令的執(zhí)行結(jié)果或移位指令的移出位狀態(tài)。詳見表4.4.2.1和表4.4.2.2。

      4.4.2.1算術(shù)運算后的CC1CC0

      CCl

      CCO

      算術(shù)運算

      無溢出

      整數(shù)算術(shù)運算

      有溢出

      浮點數(shù)算術(shù)運算

      有溢出

      0

      0

      結(jié)果=0

      整數(shù)加時產(chǎn)生負(fù)范圍溢出

      平緩下溢

      0

      1

      結(jié)果<0

      乘時負(fù)范圍溢出;加、減、取負(fù)時正溢出

      負(fù)范圍溢出

      1

      0

      結(jié)果>0

      乘、除時正溢出;加、減時負(fù)溢出

      正范圍溢出

      1

      1

      在除時除數(shù)為0

      非法操作

      4.4.2.2 比較、移位和循環(huán)移位、字邏輯指令后的CC1CC0

      CCl

      CCO

      比較指令

      移位和循環(huán)指令

      字邏輯指令

      0

      0

      累加器2=累加器1

      移位=0

      結(jié)果=0

      0

      1

      累加器2<累加器1

      1

      0

      累加器2>累加器1

      結(jié)果≠0

      1

      1

      不規(guī)范

      (只用于浮點數(shù)比較)

      移出位=1

      (8) 二進(jìn)制結(jié)果位(BR

      狀態(tài)字的位8稱為二進(jìn)制結(jié)果位。它將字處理程序與位處理聯(lián)系起來,在一段既有位操作又有字操作的程序中,用于表示字操作結(jié)果是否正確(異常)。將BR位加入程序后,無論字操作結(jié)果如何,都不會造成二進(jìn)制邏輯鏈中斷。在LAD的方塊指令中,BR位與ENO有對應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,BR位為0,ENO也為0;如果功能被正確執(zhí)行,BR位為1,ENO也為1。

      在用戶編寫的FBFC程序中,必須對BR位進(jìn)行管理,當(dāng)功能塊正確運行后使BR位為1,否則使其為0。使用STL指令SAVELAD指令——SAVE),可將RLO存入BR中,從而達(dá)到管理BR位的目的。當(dāng)FBFC執(zhí)行無錯誤時,使RLO1并存入BR,否則,在BR中存入0

      日韩无码a片精彩视频,精品国产一区二区三区免费看,U久久精品国产99国产精品亚洲,亚洲色欧美色国产精品

        1. <pre id="srmtd"></pre>
          
          
        2. <menuitem id="srmtd"></menuitem>