當前位置:編程學習大全網 - 編程語言 - plc中移位寄存器,狀態寄存器,怎麽理解。用通俗易懂的話幫我解釋下。謝謝

plc中移位寄存器,狀態寄存器,怎麽理解。用通俗易懂的話幫我解釋下。謝謝

寄存器

在數字電路中,用來存放二進制數據或代碼的電路稱為寄存器。

寄存器是由具有存儲功能的觸發器組合起來構成的。壹個觸發器可以存儲壹位二進制代碼,存放N位二進制代碼的寄存器,需用n個觸發器來構成。

按功能可分為:基本寄存器和移位寄存器。

移位寄存器

移位寄存器中的數據可以在移位脈沖作用下壹次逐位右移或左移,數據既可以並行輸入、並行輸出,也可以串行輸入、串行輸出,還可以並行輸入、串行輸出,串行輸入、並行輸出,十分靈活

壹、狀態寄存器

PSW(Program?Flag)程序狀態字寄存器,是壹個16位寄存器,由條件碼標誌(flag)和控制標誌構成,如下所示:

15?14?13?12?11?10?9?8?7?6?5?4?3?2?1?0?

OF?DF?IF?TF?SF?ZFAFPFCF?

條件碼:

①OF(Overflow?Flag)溢出標誌。溢出時為1,否則置0。

②SF(Sign?Flag)符號標誌。結果為負時置1,否則置0.

③ZF(Zero?Flag)零標誌,運算結果為0時ZF位置1,否則置0.

④CF(Carry?Flag)進位標誌,進位時置1,否則置0.

⑤AF(Auxiliary?carry?Flag)輔助進位標誌,記錄運算時第3位(半個字節)產生的進位置。有進位時1,否則置0.

⑥PF(Parity?Flag)奇偶標誌。結果操作數中1的個數為偶數時置1,否則置0.

控制標誌位:

⑦DF(Direction?Flag)方向標誌,在串處理指令中控制信息的方向。

⑧IF(Interrupt?Flag)中斷標誌。

⑨TF(Trap?Flag)陷井標誌。

二、?直接標誌轉移(8位尋址)

指令格式?機器碼?測試條件?如...則轉移?

指令格式?機器碼?測試條件?如...則轉移?

JC72?C=1?有進位?JNS?79?S=0?正號?

JNC73?C=0?無進位?JO?70?O=1?有溢出?

JZ/JE74?Z=1?零/等於?JNO?71?O=0?無溢出?

JNZ/JNE75?Z=0?不為零/不等於?JP/JPE?7A?P=1?奇偶位為偶?

JS?78?S=1?負號?JNP/IPO?7B?P=0?奇偶位為奇?

三、間接標誌轉移(8位尋址)

指令格式?機器碼?測試格式?如...則轉移?

JA/JNBE(比較無符號數)?77?C或Z=0?>?高於/不低於或等於?

JAE/JNB(比較無符號數)?73?C=0?>=?高於或等於/不低於?

JB/JNAE(比較無符號數)?72?C=1?<?低於/不高於或等於?

JBE/JNA(比較無符號數)?76?C或Z=1?<=?低於或等於/不高於?

JG/JNLE(比較帶符號數)?7F?(S異或O)或Z=0?>?大於/不小於或等於?

JGE/JNL(比較帶符號數)?7D?S異或O=0?>=?大於或等於/不小於?

JL/JNGE(比較帶符號數)?7C?S異或O=1?<?小於/不大於或等於?

JLE/JNG(比較帶符號數)?7E?(S異或O)或Z=1?<=?小於或等於/不大於?

四、無條件轉移指令(fisheep譯?fisheep@sohu.com)

操作碼偽碼指令?含義?

EB?cb?JMP?rel8?相對短跳轉(8位),使rel8處的代碼位下壹條指令?

E9?cw?JMP?rel16相對跳轉(16位),使rel16處的代碼位下壹條指令?

FF?/4?JMP?r/m16?絕對跳轉(16位),下壹指令地址在r/m16中給出?

FF?/4?JMP?r/m32?絕對跳轉(32位),下壹指令地址在r/m32中給出?

EA?cb?JMP?ptr16:16?遠距離絕對跳轉,?下壹指令地址在操作數中?

EA?cb?JMP?ptr16:32遠距離絕對跳轉,?下壹指令地址在操作數中?

FF?/5?JMP?m16:16?遠距離絕對跳轉,?下壹指令地址在內存m16:16中?

FF?/5?JMP?m16:32遠距離絕對跳轉,?下壹指令地址在內存m16:32中?

五、16位/32位尋址方式(fisheep譯?fisheep@sohu.com)?

操作碼?偽碼指令?跳轉含義跳轉類型?跳轉的條件(標誌位)?

0F?87?cw/cd?JA?rel16/32?大於?near?(CF=0?and?ZF=0)?

0F?83?cw/cd?JAE?rel16/32?大於等於?near?(CF=0)?

0F?82?cw/cd?JB?rel16/32?小於?near?(CF=1)?

0F?86?cw/cd?JBE?rel16/32?小於等於?near?(CF=1?or?ZF=1)?

0F?82?cw/cd?JC?rel16/32?進位?near?(CF=1)?

0F?84?cw/cd?JE?rel16/32?等於?near?(ZF=1)?

0F?84?cw/cd?JZ?rel16/32?為0?near?(ZF=1)?

0F?8F?cw/cd?JG?rel16/32?大於?near?(ZF=0?and?SF=OF)?

0F?8D?cw/cd?JGE?rel16/32大於等於?near?(SF=OF)?

0F?8C?cw/cd?JL?rel16/32?小於near?(SF<>OF)?

0F?8E?cw/cd?JLE?rel16/32?小於等於?near?(ZF=1?or?SF<>OF)?

0F?86?cw/cd?JNA?rel16/32不大於?near?(CF=1?or?ZF=1)?

0F?82?cw/cd?JNAE?rel16/32?不大於等於?near?(CF=1)?

0F?83?cw/cd?JNB?rel16/32?不小於?near?(CF=0)?

0F?87?cw/cd?JNBE?rel16/32?不小於等於?near?(CF=0?and?ZF=0)?

0F?83?cw/cd?JNC?rel16/32不進位?near?(CF=0)?

0F?85?cw/cd?JNE?rel16/32?不等於?near?(ZF=0)?

0F?8E?cw/cd?JNG?rel16/32?不大於?near?(ZF=1?or?SF<>OF)?

0F?8C?cw/cd?JNGE?rel16/32不大於等於?near?(SF<>OF)?

0F?8D?cw/cd?JNL?rel16/32?不小於?near?(SF=OF)?

0F?8F?cw/cd?JNLE?rel16/32不小於等於?near?(ZF=0?and?SF=OF)?

0F?81?cw/cd?JNO?rel16/32?未溢出?near?(OF=0)?

0F?8B?cw/cd?JNP?rel16/32不是偶數?near?(PF=0)?

0F?89?cw/cd?JNS?rel16/32非負數?near?(SF=0)?

0F?85?cw/cd?JNZ?rel16/32?非零(不等於)?near?(ZF=0)?

0F?80?cw/cd?JO?rel16/32溢出?near?(OF=1)?

0F?8A?cw/cd?JP?rel16/32偶數?near?(PF=1)?

0F?8A?cw/cd?JPE?rel16/32?偶數?near?(PF=1)?

0F?8B?cw/cd?JPO?rel16/32奇數?near?(PF=0)?

0F?88?cw/cd?JS?rel16/32?負數?near?(SF=1)?

0F?84?cw/cd?JZ?rel16/32為零(等於)?near?(ZF=1)?

註:壹些指令操作數的含義說明:?

rel8表示?8?位相對地址?

rel16?表示?16?位相對地址?

rel16/32表示?16或32?位相對地址?

r/m16?表示16位寄存器?

r/m32?表示32位寄存器

  • 上一篇:課間十分鐘大班教案
  • 下一篇:性能卓越的AMD多媒體電腦配置,讓您_活享受!
  • copyright 2024編程學習大全網