Thumb指令集

發(fā)布時(shí)間:2023-11-28
thumb指令集可以看做arm指令集的一個(gè)子集,其用于支持存儲(chǔ)系統(tǒng)數(shù)據(jù)總線(xiàn)為16位的應(yīng)用系統(tǒng)。thumb指令長(zhǎng)度為16位,這樣,與32位的arm指令集相比,有效地節(jié)省了系統(tǒng)的存儲(chǔ)空間。但thumb指令集中的數(shù)據(jù)處理指令的操作數(shù)仍然是32位的,指令尋址地址也是32位的。
在實(shí)際應(yīng)用中,若對(duì)系統(tǒng)的性能有較高要求,則選arm指令集和32位的memory;若對(duì)系統(tǒng)的功耗有較高要求時(shí),則選thumb指令集和16位的memory;一般將兩者混合使用,根據(jù)系統(tǒng)不同部分的不同需求,選用合適的指令,發(fā)揮兩者的優(yōu)勢(shì)。
thumb指令集由數(shù)據(jù)處理指令、跳轉(zhuǎn)指令、load/store指令和軟件中斷指令4大類(lèi)構(gòu)成。
數(shù)據(jù)處理指令 格 式 功 能
mov rd,imm_8; rd=imm_8;rd為r0~r7,imm_8為8位立即數(shù)
mov rd,rn; rd=rn;rd、rn為r0~r15
mvn rd,rn; rd=~rn;rd、rn為r0~r7
neg rd,rn; rd=-rn;rd、rn為r0~r7
add rd,rn,imm; rd=rn+imm;rd為r0~r7,rn為r0~r7或pc或sp;
rn為pc或sp時(shí),imm為10位立即數(shù);
否則,imm為3位立即數(shù)
add rd,rn,rm; rd=rn+rm;rd、rn、rm為r0~r7
add rd,imm; rd=rd+imm;rd為r0~r7或sp
rd為sp時(shí),imm為-508~+508間的4整數(shù)倍的數(shù)
否則,imm為8位立即數(shù)
add rd,rn; rd=rd+rn;rd、rn為r0~r15
adc rd,rn; rd=rd+rn+carry;rd、rn為r0~r7,carry為進(jìn)位標(biāo)志值
sub rd,rn,imm_3; rd=rn-imm_3;rd、rn為r0~r7,imm_3為3位立即數(shù)
sub rd,rn,rm; rd=rn-rm;rd、rn、rm為r0~r7,
sub rd,imm; rd=rd-imm;rd為r0~r7或sp
rd為sp時(shí),imm為-508~+508間的4整數(shù)倍的數(shù)
否則,imm為8位立即數(shù)
sbc rd,rn; rd=rd-rn-!carry;rd、rn為r0~r7,carry為進(jìn)位標(biāo)志值
mul rd,rn; rd=rd×rn;rd、rn為r0~r7
and rd,rn; rd=rd&rn;rd、rn為r0~r7
orr rd,rn; rd=rd|rn;rd、rn為r0~r7
eor rd,rn; rd=rd^rn;rd、rn為r0~r7
bic rd,rn; rd=rd&(~rn);rd、rn為r0~r7
asr rd,rn; rd=rd算術(shù)右移rn位;rd、rn為r0~r7
asr rd,rn,imm_5; rd=rn算術(shù)右移imm_5位;rd、rn為r0~r7,
imm_5為1~32間的數(shù)值
lsl rd,rn; rd=rd邏輯左移rn位;rd、rn為r0~r7
lsl rd,rn,imm_5; rd=rn邏輯左移imm_5位;rd、rn為r0~r7
lsr rd,rn; rd=rd邏輯右移rn位;rd、rn為r0~r7
lsr rd,rn,imm_5; rd=rn邏輯右移imm_5位;rd、rn為r0~r7
ror rd,rn; rd=rd循環(huán)右移rn位;rd、rn為r0~r7
cmp rn,rm; 根據(jù)rn-rm的值,修改cpsr的狀態(tài)標(biāo)志位;
rn、rm為r0~r7
cmp rn,imm_8; 根據(jù)rn-imm_8的值,修改cpsr的狀態(tài)標(biāo)志位;
rn為r0~r7
cmn rn,rm; 根據(jù)rn+rm的值,修改cpsr的狀態(tài)標(biāo)志位;
rn、rm為r0~r7
tst rn,rm; 根據(jù)rn&rm的值,修改cpsr的狀態(tài)標(biāo)志位;
rn、rm為r0~r7
跳轉(zhuǎn)指令 格 式 功 能
b{cond} label pc=label;
若有cond,則label必須在當(dāng)前指令的-256~+256字節(jié)范圍內(nèi);
否則,label必須在當(dāng)前指令的-2kb~+2kb范圍內(nèi)
bl label r14=pc+4,pc=label;
label必須在當(dāng)前指令的-4mb~+4mb范圍內(nèi)
bx rn pc=rn,且切換處理器狀態(tài)
load/store指令 格 式 功 能
ldr rd,[rn,imm]; rd=地址(rn+imm)中的字?jǐn)?shù)據(jù);rd為r0~r7,rn為r0~r7或sp或pc;若rn為pc或sp,imm為5位立即數(shù),否則imm為8位立即數(shù)
ldr rd,[rn,rm]; rd=地址(rn+rm)中的字?jǐn)?shù)據(jù);rd、rn、rm為r0~r7
ldrh rd,[rn,imm_5]; rd=地址(rn+imm_5)中的無(wú)符號(hào)半字?jǐn)?shù)據(jù);rd、rn為r0~r7,imm_5為5位立即數(shù)
ldrh rd,[rn,rm]; rd=地址(rn+rm)中的無(wú)符號(hào)半字?jǐn)?shù)據(jù);rd,rn,rm為r0~r7
ldrb rd,[rn,imm_5]; rd=地址(rn+imm_5)中的無(wú)符號(hào)字節(jié)數(shù)據(jù);rd、rn為r0~r7
ldrb rd,[rn,rm]; rd=地址(rn+rm)中的無(wú)符號(hào)字節(jié)數(shù)據(jù);rd,rn,rm為r0~r7
ldrsh rd,[rn,rm]; rd=地址(rn+rm)中的有符號(hào)半字?jǐn)?shù)據(jù);rd,rn,rm為r0~r7
ldrsb rd,[rn,rm]; rd=地址(rn+rm)中的有符號(hào)字節(jié)數(shù)據(jù);rd,rn,rm為r0~r7
ldr rd,label; rd=地址(label)中的字?jǐn)?shù)據(jù);rd為r0~r7
str rd,[rn,imm]; 地址(rn+imm)處的字?jǐn)?shù)據(jù)=rd;rd為r0~r7,rn為r0~r7或sp或pc;若rn為pc或sp,imm為5位立即數(shù),否則imm為8位立即數(shù)
軟件中斷指令 格 式 功 能
swi 8位立即數(shù) 8位立即數(shù)為中斷號(hào)
上一個(gè):如何將安卓的數(shù)據(jù)傳到蘋(píng)果上(如何把安卓數(shù)據(jù)導(dǎo)入iphone)
下一個(gè):oppoa59怎么看像素,oppoa59像素從哪里看

電腦鍵盤(pán)功能基礎(chǔ)知識(shí)打字手勢(shì),電腦打字手該在鍵盤(pán)上怎么放
如何快速學(xué)會(huì)26鍵打字,怎么才能學(xué)會(huì)打26鍵
哪些苗木適合室內(nèi)無(wú)土栽培法?
導(dǎo)致開(kāi)關(guān)插座引發(fā)火災(zāi)的十大隱患
常見(jiàn)海魚(yú)的種類(lèi)圖片和名字,海魚(yú) 種類(lèi) 快點(diǎn) 多少個(gè)都行
win11 分盤(pán),惠普win11分盤(pán)
復(fù)合地板主材計(jì)算方法有哪些?
沙糖桔的運(yùn)輸要求與方式
魅族2手電筒怎么打開(kāi),魅族MX2 37自帶手電筒在哪
iphone官網(wǎng)怎么查找序列號(hào)(進(jìn)入iphone官網(wǎng)查序列號(hào)蘋(píng)果官網(wǎng))
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos