公司設(shè)計(jì)網(wǎng)站需要注意哪些sem優(yōu)化是什么意思
國(guó)慶day6
匯編語言的組成
偽操作
不參與程序的執(zhí)行,但是用于告訴編譯器程序該怎么編譯 如:
.text .global .end .if .else .endif .data
匯編指令
匯編器將一條匯編指令編譯成一條機(jī)器碼,在內(nèi)存里一條指令占4字節(jié)內(nèi)存,一條指令可以實(shí)現(xiàn)一個(gè)特定的功能。
偽指令
不是指令,但是看似一條指令,可以實(shí)現(xiàn)指令類似的功能,一條偽指令可能是由多條指令共同實(shí)現(xiàn)。
注釋
單行注釋:@多行注釋:/**/
條件編譯
.if 0
@text
.else
@text
.endif
匯編指令的介紹
基本數(shù)據(jù)操作指令
數(shù)據(jù)搬移指令:=
數(shù)據(jù)位移指令:<< >>
數(shù)據(jù)算數(shù)運(yùn)算指令:+ - * /
位運(yùn)算指令:$ | ~ ^
數(shù)據(jù)比較指令:cmp 第一操作數(shù),第二操作寄存器,其有很多條件碼,如果條件碼滿足則執(zhí)行對(duì)應(yīng)的指令
跳轉(zhuǎn)指令
內(nèi)存讀寫指令
狀態(tài)寄存器讀寫指令
軟中斷指令
匯編指令的基本語法格式
基本格式: {cond}{s} Rd,Rn,#oprand2
解釋:
opcode:指令碼
cond:條件碼
指令不加條件碼,指令默認(rèn)無條件執(zhí)行
指令加條件碼,指令有條件執(zhí)行
s:狀態(tài)位
指令不加s,指令執(zhí)行的結(jié)果不會(huì)影響CPSR寄存器
指令加s,指令執(zhí)行的結(jié)果會(huì)影響CPSR寄存器
Rd:目標(biāo)寄存器
Rn:第一操作寄存器
#oprand2:第二操作數(shù)
1)立即數(shù)
2)有效數(shù):將一個(gè)數(shù)取反之后,變成立即數(shù)
3)寄存器
4)經(jīng)過移位的寄存器
注意事項(xiàng):
1)匯編指令中不區(qū)分大小寫
2)匯編指令不需要以;號(hào)結(jié)尾
3){cond}{s}:需要連在一起寫
4)Rd,Rn,#oprand2:需要用逗號(hào)分隔開
5) {cond}{s}和Rd,Rn,#oprand2需要用空格分隔開
數(shù)據(jù)搬移指令
指令碼:mov mvn
格式:{cond}{s} Rd,#oprand2
@ 代碼1:mov r0,#0xf @ r0 = 0xfmov r1,#0xff@ mov r2,#0xfff @ error@ mov r3,#0xffff @ error@ mov r4,#0xfffff @ errormov r5,#0xffffffmov r6,#0xfffffffmov r7,#0xffffffff/*------------------ ------------------ ---------------*/
@ 代碼2:mvn r5,#0xff @ 0xff按位取反之后,賦值給r5mov r0,#0xff000000 @ 0xff 8mov r1,#0x1f800000 @ 0x7e 10mov r2,#0x00ffffff @ ~r2 = 0xff000000mov r3,#0x0fffffff @ ~r3 = 0xf0000000mov r4,#0xffffffff @ ~r4 = 0x00000000