欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: PIC的35條指令扭曲理解法 [打印本頁]

作者: 51黑apple    時間: 2016-6-21 16:15
標(biāo)題: PIC的35條指令扭曲理解法
以下理解純屬惡搞,例子使用搜狗輸入法輸入,全角還是半角的懶得理了!


第一條當(dāng)然是NOP,
NOP 垃圾指令
操作數(shù):垃圾當(dāng)然不用說最好是沒有的就好!
指令編碼:00 0000 0xx0 0000   這個全是0啦,還要xx
執(zhí)行時間:清理垃圾也要一個指令的
執(zhí)行過程:掃垃圾,除了清理外其他什么都沒變
狀態(tài)標(biāo)志:垃圾當(dāng)然無視
說明:這個垃圾除了用來浪費時間外什么也實現(xiàn)不了,一般用來延時
指令例子:   BSF         PORTB,0      ;   PORTB  端口0輸出高電平
                       NOP                               ;丟個垃圾浪費下時間讓IO輸出穩(wěn)定

第二條應(yīng)該是MOVWF

MOVWF          拆開 解釋一下先,
MOV就是寄存器縮寫的意思,
W就是一個叫W的SB老爸給它起的名字,
F==??發(fā)(fa的縮寫?),發(fā)送或者傳送的意思,
整個串起來就是把W寄存器里面的數(shù)傳到數(shù)據(jù)寄存器。

語法形式:MOVWF     f
操作數(shù):f是數(shù)據(jù)寄存器的低7位地址(0x00-0x7f)
指令編碼:00 0000 1fff ffff  (要反反復(fù)復(fù))

執(zhí)行時間:一個指令周期

執(zhí)行過程:把W那個SB的數(shù)傳送到數(shù)據(jù)寄存器 里面,W那個SB是不會變的
狀態(tài)標(biāo)志影響:無
說明:一般是給數(shù)據(jù)寄存器賦值(給別人做嫁妝啦)
指令例子:     MOVLW    0x55    ;W那個SB在吃飯 

             MOVWF    Data    ;W那個SB給人家添飯
                        ;Data = 0x55  

第三條   MOVF   寄存器發(fā)送
把數(shù)據(jù)寄存器的數(shù)傳到目的寄存器
語法形式:    MOVF    f,d
操作數(shù):        f是數(shù)據(jù)寄存器的低7位地址(0x00-0x7f)
            d=w,這d真虛偽,把W添的飯又退回去了!
         d=f,這d真壞,把飯又拿回來,還看看碗里的飯是不是沒了!
指令編碼:    00 1000 dfff ffff (是人都討厭的d竟然還要定了得反反復(fù)復(fù))
執(zhí)行時間:    一個指令周期  (還好只用了一個,要不然跑不了非得被人家敲死)
執(zhí)行過程;     [f] -d  (連數(shù)據(jù)寄存器都要給d給惡搞了)
狀態(tài)標(biāo)志影響:  Z      (搞成這樣子要是Z還沒被影響的絕對是個SB)
說明:    這個指令通過W寄存器把數(shù)據(jù)寄存器的數(shù)傳到別的地方,或者對數(shù)據(jù)寄存器判0操作,如果發(fā)現(xiàn)是0就會把標(biāo)志Z置位。(這家伙夠壞的吧,先把W那個SB當(dāng)跳板把數(shù)據(jù)寄存器的飯搞到別的地方去,還要看看碗里是否有飯,沒飯的話就大呼小叫的!)
指令例子:   例1                 ;數(shù)據(jù)傳送
            MOVF    Var1,w    ;Var1把飯?zhí)斫oW那個SB
           MOVWF   Var2      ;W那個SB只能當(dāng)傳飯的傳送給Var2
                        ;Var2 = Var1 (不用說這碗飯是不變的)
        例2              ;數(shù)據(jù)判0(看看這個飯碗里面有沒有飯)
          MOVF    Var3,f     ;Var3的數(shù)被傳送給自身(Var3添完飯后給自己)
         BTFSC    STATUS,Z   ;如果Var3不等于0就會跳到下一指令(自己給自己添飯就這樣的)
        GOTO    Var3Zero    ;如果Var3等于0就轉(zhuǎn)做相關(guān)操作(自己添不到飯肯定要干別的了)


第四條    CLRW  W寄存器的數(shù)清0(W這個SB的飯被搶了)
CLR就是清除的縮寫,W。。。。。。這個SB又被搞了。。。。。。無語中
語法形式:   CLRW
操作數(shù):    無(飯都被搶了還吃個毛啊)
指令編碼:   00 0001 0000 0011 (被搶了還幺幺的叫)
執(zhí)行時間:   一個指令周期(搶的速度也不慢啊)
執(zhí)行過程:   0x00 - W  (飯就這樣被搶了)
       1 - W  (要是不叫才怪了)
狀態(tài)標(biāo)志影響:Z              (W叫得也不小,把Z給驚動了)
說明:該指令對W寄存器清0,同時置位0標(biāo)志Z,另外有一條指令movlw 0x00也可以使W寄存器清0,
   但不影響任何狀態(tài)。(看來W的飯被搶也要看看誰搶的,l去搶的話連聲都不干吭一聲)
指令例子:    CLRW    ;W=0(W的飯沒了)

第五條    CLRF     數(shù)據(jù)寄存器的數(shù)清0 (看來連傳送過程也會被搶)
語法形式:CLRF    f
操作數(shù):        f是數(shù)據(jù)寄存器的低7位地址(0x00-0x7f)指令編碼:    00 0001 1fff ffff  (叫了兩下就拂拂褲子就走了)
執(zhí)行時間:    一個指令周期 (搶的速度)
執(zhí)行過程:    0x00 - f        (f被搶,還叫兩聲)

            1 - Z    (結(jié)果還是把Z驚動)
狀態(tài)標(biāo)志影響:Z       (還是這個家伙被驚動)
說明:    該指令對數(shù)據(jù)寄存器清0,同時置位0標(biāo)志Z(f在傳送過程中被搶,同時Z被驚動)
指令例子:    CLRF    TRISB    ;端口B的所有I/O引腳設(shè)為輸出模式(因為飯在傳送中被搶了,結(jié)果全部挨餓)

第六條    ADDWF    數(shù)據(jù)寄存器的數(shù)和W寄存器相加
(傳送中的飯和W的飯不滿要求服務(wù)員加飯)
語法形式:    ADDWF    f,d    (這次被搞的是f和d)
操作數(shù):        f是數(shù)據(jù)寄存器的低7位地址(0x00-0x7f)
            d=f,結(jié)果放在數(shù)據(jù)寄存器內(nèi),W的數(shù)不變(飯加進f的碗里,W碗里的飯沒變)

            d=w,結(jié)果放在W寄存器里,數(shù)據(jù)寄存器的數(shù)不變(飯加進W碗里去了,f碗里不變)
指令編碼:    00 0111 dfff ffff  (都是叫飯的)
執(zhí)行時間:    一個指令周期(加飯的效率也夠快的)
執(zhí)行過程:    [f] + [W] -d
狀態(tài)標(biāo)志影響:Z  DC  C (加飯要求驚動了睡覺的家伙和服務(wù)員還有煮飯的家伙)
說明:數(shù)據(jù)寄存器的數(shù)和W寄存器相加,結(jié)果按照d指定的目的地存數(shù)
(送飯的和W要求加飯,結(jié)果按照d指定放在哪個碗里面)
指令例子:    MOVLW     0x55    ;W=0x55,假定 Sum=0xaa (W碗里有小半碗飯,假定sun碗里有大半碗)  
            ADDWF    Sum,f   ;W不變,Sum=0xff  (W碗里沒加成,Sum加滿了)  












歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1