在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 指令+s對(duì)cpsr中標(biāo)志位的影響

            指令+s對(duì)cpsr中標(biāo)志位的影響

            作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
            標(biāo)志位的含義如下:

            所有ARM數(shù)據(jù)處理指令的乘法指令均可選擇使用S后綴,并影響狀態(tài)標(biāo)志位。而其它指令一般不允許加S后綴,如B 、LDR、SWI、MRS等。

            N運(yùn)算結(jié)果的最高位反映在該標(biāo)志位。對(duì)于有符號(hào)二進(jìn)制補(bǔ)碼,結(jié)果為負(fù)數(shù)時(shí)N=1,結(jié)果為正數(shù)或零時(shí)N=0;
            例如:執(zhí)行movs r0,#0x7FFFFFFF后N=0;因?yàn)镽0最高位為0
            執(zhí)行movs r0,#0x80000000后N=1;因?yàn)镽0最高位為1
            執(zhí)行CMP r0,r0后N=0;因?yàn)镽0-R0=0x00000000;
            故N一般看目標(biāo)寄存器的最高位,即N = Rd[31]。

            Z指令結(jié)果為0時(shí)Z=1(通常表示比較結(jié)果“相等”),否則Z=0;
            例如:執(zhí)行CMP r0,r0后Z=1
            執(zhí)行MOVS R0,#0后Z=1
            故Z一般看目標(biāo)寄存器的值是否為0,Rd=0時(shí)Z=1,否則Z=0。

            C當(dāng)進(jìn)行加法運(yùn)算(包括CMN指令),并且最高位產(chǎn)生進(jìn)位時(shí)C=1,否則C=0。當(dāng)進(jìn)行減法運(yùn)算(包括CMP 指令),
            并且最高位產(chǎn)生借位時(shí)C=0,否則C=1。對(duì)于結(jié)合移位操作的非加法/減法指令,C為從最高位最后移出的值,
            其它指令C通常不變;
            例如:執(zhí)行 mov r0,#0xF0000000
            ADDS R0,R0,R0
            后C=1;
            執(zhí)行 SUBS R2,R2,R2后C=1,因?yàn)镽2-R2=0不需要借位。
            執(zhí)行 CMP R3,R3后C=1;
            執(zhí)行MOV R1,0x80000000
            movs r0,r1 ,lsr #32
            后C=1;
            執(zhí)行mov r0,#0x10
            mov r1,#0x7FFFFFFF
            subs r3,R0,r1 ,lsr #1
            后C=0;
            總之,一般情況下加法進(jìn)位,減法無借位時(shí)C=1;對(duì)于結(jié)合移位操作的非加/減法指令,C為最后移出的值。

            V當(dāng)進(jìn)行加法/減法運(yùn)算,并且發(fā)生有符號(hào)溢出時(shí)V=1,否則V=0,其它指令V通常不變。
            例如:執(zhí)行mov r1,#0x80000000
            adds r1,r1,r1 后V=1;
            執(zhí)行 mov r1,#0x70000000
            adds r1,r1,r1或 CMN R1,R1 后V=1;
            執(zhí)行 LDR R0,=0x8000000
            LDR R1,=0x7FFFFFFF
            CMP R0,R1 后V=1;
            總之,兩個(gè)負(fù)數(shù)運(yùn)算結(jié)果第31位為0,則V=1
            兩個(gè)正數(shù)運(yùn)算結(jié)果第31位為1,則V=1。

            另外THUMB指令一般不需要S后綴,便能影響狀態(tài)標(biāo)志位。
            如在THUMB狀態(tài)下下面兩條指令相同
            movs r0,#0x00
            mov r0,#0x00

            本文引用地址:http://www.biyoush.com/article/201611/318728.htm
            MOV一般不影響CPSR, 除非執(zhí)行類似MOV pc, lr,效果上等同于BX lr
            MOVS總是會(huì)影響CPSR, 包括N,Z,C標(biāo)志位
            執(zhí)行MOV pc, lr,可能會(huì)影響到T標(biāo)志位,執(zhí)行MOVS pc, lr時(shí),CPSR會(huì)被SPSR覆蓋(內(nèi)核態(tài))

            在Thumb代碼里不能使用B跳轉(zhuǎn)到ARM代碼,因?yàn)門標(biāo)志不會(huì)切換,即使跳到ARM代碼,
            也會(huì)按照Thumb方式來執(zhí)行,BX是跳特殊指令,會(huì)根據(jù)目標(biāo)寄存器地址來切換T標(biāo)志。


            關(guān)鍵詞: 指令+scpsr標(biāo)志

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉