日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 今天老師布置了課后習(xí)題,有一題是判斷立即數(shù)的,大家都知道,arm里的立即數(shù)并非都是合法的。 描述:如立即數(shù)記作 ,8位常數(shù)記作immed_8,4位的循環(huán)右移值記作rotate_imm,有效的立即數(shù)是由一個(gè)8位的立即數(shù)循環(huán)左移偶

今天老師布置了課后習(xí)題,有一題是判斷立即數(shù)的,大家都知道,arm里的立即數(shù)并非都是合法的。

描述:如立即數(shù)記作 ,8位常數(shù)記作immed_8,4位的循環(huán)右移值記作rotate_imm,有效的立即數(shù)是由一個(gè)8位的立即數(shù)循環(huán)左移偶數(shù)位得到,則有效立即數(shù)immediate可表示成:
= immed_8循環(huán)右移( 2 * rotate_imm )

例:有效立即數(shù) 0x0000F200,0x00110000, 0x00012800
無(wú)效立即數(shù) 0x1010, 0x00102, 0xFF1000
顯然,對(duì)于8位立即數(shù)都是有效的。

其實(shí)從定義上判斷一個(gè)數(shù)是不是立即數(shù)也很簡(jiǎn)單的:

1.看所有的bit位為1的是否在一個(gè)字節(jié)中

2.若1條件滿足,則看是否可以經(jīng)過(guò)偶數(shù)位左移得到

滿足這兩個(gè)條件的就是合法的立即數(shù)了,不過(guò)還是寫了一個(gè)小程序來(lái)判斷,看來(lái)我還是這么的懶,嘻嘻。


#include

/************************************************************

描述:循環(huán)左移函數(shù)

輸入:val,要判斷的立即數(shù)

n,要左移的位數(shù)(0--15)

返回:循環(huán)左移n位后的立即數(shù)

************************************************************/

unsigned int left(unsigned int val, int n)

{

if (n <0 || n> 15)

{

return 0xffffffff;

}

unsigned int rtn;

rtn = val << (2 * n);

rtn |= (val & (0xffffffff << (32 - 2 * n))) >> (32 - 2 * n);

return rtn;

}

/************************************************************

描述:判斷立即數(shù)是否有效

輸入:val,要判斷的立即數(shù)

返回:true,立即數(shù)有效

false,立即數(shù)無(wú)效

************************************************************/

int Judge(unsigned int val)

{

int i = 0;

for (i = 0; i < 16; i++)

{

if(left(val, i) <= 0x000000ff )

return 1;

}

return 0;

}

int main(void)

{

int num = 0;

while(printf("請(qǐng)輸入:"), 1 == scanf("%x", &num))

{

if(Judge(num))

{

printf("是合法立即數(shù)!/n");

}

else

{

printf("非法立即數(shù)!/n");

}

}

return 0;

}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉