版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第四章
ARM匯編語言程序設(shè)計4.1匯編語言程序格式4.2ARM匯編器的偽操作4.3匯編語言上機過程4.4匯編語言程序設(shè)計4.1匯編語言程序格式4.1.1匯編語言程序的組成
AREAInit,CODE,READONLY ENTRYStart LDR R0, =0x3FF5000 LDR R1, 0xFF STR R1, [R0] LDR R0, =0x3FF5008 LDR R1, 0x01 STR R1, [R0] …. END
AREAInit,CODE,READONLY ENTRYStart LDR R0, =0x3FF5000 LDR R1, 0xFF BL PRINT_TEXT …. ….PRINT_TEXT …. …. MOV PC, LR END
;FULLSEGMENTDEFINITION-----Intel8086 ;-----stacksegment-------- STACK SEGMENT
DB 64DUP(?) STACK ENDS ;-----datasegment-------- DATA SEGMENT ;datadefinitionsareplacedhere DATA ENDS ;-----codesegment-------- CODE SEGMENT MAIN PROCFAR
ASSUMECS:CODE,DS:DATA,SS:STACK MOVAX, DATA MOVDS, AX ------ MOVAH, 4CH INT21H MAIN ENDP CODE ENDS ENDMAIN4.1.2匯編語言的語句格式ARM匯編語言程序的每行語句由1~4部分組成。[LABEL] OPERATION[OPERAND] [;COMMENT]標(biāo)號域 操作助記符域操作數(shù)域 注釋域4.2ARM匯編器的偽操作符號定義偽操作(SymbolDefinition)數(shù)據(jù)定義偽操作(DataDefinition)匯編控制偽操作(AssemblyControl)框架描述偽操作(FrameDescription)其他偽操作(Miscellaneous)數(shù)據(jù)定義偽操作數(shù)據(jù)定義偽操作用于為特定的數(shù)據(jù)分配存儲單元,同時可完成已分配存儲單元的初始化。DCB 分配一片連續(xù)的字節(jié)存儲單元并初始化。DCW 分配一片連續(xù)的半字存儲單元并初始化。DCD 分配一片連續(xù)的字存儲單元并初始化。SPACE 分配一片連續(xù)的存儲單元并初始化為0。MAP 定義一個結(jié)構(gòu)化的內(nèi)存表首地址。FIELD 定義一個結(jié)構(gòu)化的內(nèi)存表的數(shù)據(jù)域。DCB格式:標(biāo)號 DCB 表達式功能:DCB偽操作用于分配一片連續(xù)的字節(jié)存儲單 元,并用偽操作中指定的表達式初始化。其 中,表達式可以為0~255的數(shù)值或字符串。 DCB也可以用“=”代替。示例:
Str DCB “Thisisatest!”DCW格式:標(biāo)號 DCW 表達式功能:DCW偽操作用于分配一片連續(xù)的半字存儲單 元,并用偽操作中指定的表達式初始化。其 中,表達式可以為程序標(biāo)號或數(shù)值表達式。用 DCW分配的存儲單元是半字對齊的。示例:
DataTest DCW 1,2,3DCD格式:標(biāo)號 DCD 表達式功能:DCD偽操作用于分配一片連續(xù)的字存儲單 元,并用偽操作中指定的表達式初始化。其 中,表達式可以為程序標(biāo)號或數(shù)值表達式。用 DCD分配的存儲單元是字對齊的。DCD也可 以用“&”代替。示例:
Test DCD 4,5,6SPACE格式:標(biāo)號 SPACE 表達式功能:SPACE偽操作用于分配一片連續(xù)的存儲區(qū) 域并初始化為0。其中,表達式為要分配的字 節(jié)數(shù)。SPACE也可以用“%”代替。示例:
DataSpace SPACE 100MAP格式:MAP表達式{,基址寄存器}功能:MAP偽操作用于定義一個結(jié)構(gòu)化的內(nèi)存表首地 址。表達式可以為程序標(biāo)號或數(shù)值表達式,基 址寄存器為可選項,當(dāng)基址寄存器選項不存在 時,表達式的值即為內(nèi)存表的首地址。否則, 內(nèi)存表的首地址為表達式的值與基址寄存器的 和。也可以用“^”代替。示例:
MAP 0x100,R0 ;首地址的值為0x100+R0FIELD格式:標(biāo)號 FIELD表達式功能:FIELD偽操作用于定義一個結(jié)構(gòu)化的內(nèi)存表中 的數(shù)據(jù)域。表達式的值為當(dāng)前數(shù)據(jù)域在內(nèi)存表中 所占的字節(jié)數(shù)。FIELD偽操作常與MAP配合使用 來定義結(jié)構(gòu)化的內(nèi)存表。注意:MAP和FIELD僅 用于定義數(shù)據(jù)結(jié)構(gòu),并不實際分配存儲單元。 FIELD也可以用“#”代替。 由MAP和FIELD配合定義的內(nèi)存表有3種:(1)表達式是一個基于絕對地址的內(nèi)存表:MAP 0x100 ;首地址為0x100 A FIELD4 ;A的長度為4字節(jié),位置為0x100 B FIELD4 ;B的長度為4字節(jié),位置為0x104 S FIELD16 ;S的長度為16字節(jié),位置為0x108…. LDR R0, =A ;讀取A的地址0x100 LDR R1, [R0] ;將A的內(nèi)容讀到 R1(2)表達式是一個數(shù)值,是一個相對地址的內(nèi)存表:MAP 0x04 ,R9 ;首地址為R9的值
A FIELD4 ;A的長度為4字節(jié),相對位置為0 B FIELD8 ;B的長度為8字節(jié),相對位置為4 S FIELD96 ;S的長度為96字節(jié),相對位置為12 …. LDR R9, =0x900 ;表的首地址為0x904 ADR R0, A ;讀取A的地址0x904 LDR R2, [R0] ;將A的內(nèi)容讀到R2 …. LDR R9, =0x2000 ;同一表的首地址為0x2004 ADR R1, B ;讀取B的地址0x2008 STR R9, [R1] ;將R9的內(nèi)容寫到B(3)表達式是一個標(biāo)號,基于PC的內(nèi)存表:DataSPACE100 ;分配100字節(jié)的內(nèi)存單元初始化0MAP Data ;首地址為Data內(nèi)存單元
A FIELD4 ;A的長度為4字節(jié),相對位置為0 B FIELD4 ;B的長度為4字節(jié),相對位置為4 S FIELD4 ;S的長度為4字節(jié),相對位置為8…. LDR R5, B ;相當(dāng)于LDRR5,[PC,#4]
其它常用的偽操作AREA格式:AREA 段名 屬性1,屬性2,…功能:AREA偽操作定義一個代碼段、數(shù)據(jù)段或特定屬性的段。
CODE:定義代碼段。
DATA:定義數(shù)據(jù)段。
READONLY:只讀,代碼段默認(rèn)。
READWRITE:可讀可寫,數(shù)據(jù)段默認(rèn)。 一個匯編程序至少包含一個段,當(dāng)程序太長時,也可以將程序分為多個代碼段和數(shù)據(jù)段。
AREA Init,CODE,READONLY ENTRY … B START AREA Stack,DATA,READWRITE SAVE SPACE 20 AREA Init,CODE,READONLY START ADD R1,R2,R3 … … B STARTALIGN格式:ALIGN [表達式[,偏移量]功能:ALIGN可通過添加填充字節(jié)的方式,使當(dāng)前位置滿足一定的對齊方式。其中,表達式的值用于指定對齊方式,可能取的值為2的冪,如1、2、4、8、16等。如果沒有指定表達式,則將當(dāng)前位置對齊到下一個字的位置。
… ADD R0,R4,R5 B STARTDATA1 DCB “strin” ALIGN4START LDR R0,[R5]4.3匯編語言上機過程1.編輯匯編語言源程序2.編譯源程序3.鏈接匯編程序4.調(diào)試匯編程序4.4匯編語言程序設(shè)計4.3.1程序設(shè)計步驟4.3.2簡單程序設(shè)計(順序、分支、循環(huán))4.3.3子程序設(shè)計4.3.4模式切換程序設(shè)計4.3.5匯編語言和C語言編程模塊化的程序設(shè)計
(從功能分析——戰(zhàn)略上)匯編語言程序設(shè)計的基本方法(戰(zhàn)術(shù)上看)程序設(shè)計步驟(對每一模塊)
1.問題定義
2.算法設(shè)計
3.選擇指令
4.編寫程序結(jié)構(gòu)化程序設(shè)計(算法設(shè)計)
1.
順序結(jié)構(gòu)
2.分支結(jié)構(gòu)
3.
循環(huán)結(jié)構(gòu)
4.子程序設(shè)計上機過程(具體實現(xiàn))
1.
編輯程序
2.
匯編源程序
3.
鏈接程序
4.
調(diào)試源程序結(jié)構(gòu)化程序設(shè)計概述:
寫任何程序最成功的方式是先人工的解決問題——找出算法!
用結(jié)構(gòu)
IF—THEN—ELSE, CASE, REPEAT—UNTIL, WHILE—DO,
FOR—DO
寫算法,然后再將該算法翻譯成一種合適的程序設(shè)計語言——結(jié)構(gòu)化的程序設(shè)計!程序設(shè)計步驟
1.問題的定義 仔細思考程序所要解決的問題,即用自然語言描述“做什么?以及程序做這些工作時的時序” 如:1.從傳感器讀取溫度值。
2.加上調(diào)整因子。
3.將結(jié)果存儲在存儲單元里。
2.算法及表示方法 用來表示程序設(shè)計問題的操作序列或步驟——算法,即“怎樣做?”。表示方法:1)流程圖
2)偽指令3.選擇適當(dāng)?shù)闹噶睿ò垂δ埽?一、數(shù)據(jù)傳送類指令 二、算術(shù)運算指令 三、邏輯操作指令 四、程序控制指令4.編寫程序(從算法到程序)(1)建立算法使用的數(shù)據(jù)結(jié)構(gòu)
1)數(shù)據(jù)將存放在存儲器還是存放在寄存器中?
2)數(shù)據(jù)類型是字節(jié)、半字或字?
3)有多少數(shù)據(jù)項?
4)數(shù)據(jù)為無符號數(shù)還是符號數(shù)?(2)在代碼段開始處寫出變量、段寄存器、外圍設(shè)備等所需要的初始化指令(3)選擇實現(xiàn)算法中每一主要動作所需要的指令,并決定數(shù)據(jù)在這些指令中的存放形式。(4)按照主要指令的要求,用LDR、STR指令或MOV指令把數(shù)據(jù)送到正確的位置。順序程序設(shè)計: 已知32位變量X、Y存放在存儲器的地址0x90010、0x90014中,要求實現(xiàn)Z=X+Y,并且Z的值存放在0x90018中。
AREA Exam,CODE,READONLY ENTRYSTART LDR R0,=0x90010 LDR R1,[R0],#4 LDR R2,[R0],#4 ADD R1,R1,R2 STR R1,[R0] END分支程序設(shè)計: 已知32位有符號數(shù)X存放在存儲器的地址0x90010中,要求實現(xiàn):
Y=X(X〉=0)或Y=-X(X<0)
AREAExamCODEREADONLY ENTRYSTART LDR R1,=0x90010 LDR R2,[R1] MOV R0,#0 CMP R2,R0
SUBLT R2,R0,R2 STR R2,[R1] END 已知32位有符號數(shù)X存放在存儲器的地址0x90010中,要求實現(xiàn):Y=1(X〉0)或Y=0(X=0)或Y=-1(X<0)
AREAExamCODEREADONLY ENTRYSTART LDR R1,=0x90010 LDR R2,[R1] CMP R2,#0 BEQ ZERO BGT PLUS MOV R0,#-1 B FINISHLPUS
MOV R0,#1 B FINISH ZERO MOV R0,#0 FINISH STR R0,[R1] END多分支結(jié)構(gòu):
main(int){ switch(x){ case0:returnmethod_0(); case1:returnmethod_1(); case2:returnmethod_2(); case3:returnmethod_3(); default:returnmethod_d; }}
AREAExamCODEREADONLY ENTRYSTART CMP R0,#4 ADDLTPC,PC,R0,LSL#2 ;分支表結(jié)構(gòu)其偏
B method_d
;移量由R0決定
B method_0 B method_1 B method_2 B method_3
method_0 MOV R0,#1 B end0 method_1 MOV R0,#2 B end0 method_2 MOV R0,#3 B end0 method_3 MOV R0,#4 B end0
method_d MOV R0,#0 end0 B START END
ENTRY ;markthefirstinstructiontocallstart MOVr0,#1 ;setupthethreeparameters MOVr1,#3 MOVr2,#2 BLarithfunc ;callthefunctionstop MOVr0,#0x18 ;angel_SWIreason_ReportException LDRr1,=0x20026 ;ADP_Stopped_ApplicationExit SWI0x123456 ;ARMsemihostingSWIarithfunc ;labelthefunction CMPr0,#num ;Treatfunctioncodeasunsignedinteger MOVHSpc,lr ;Ifcodeis>=numthensimplyreturn ADRr3,JumpTable ;Loadaddressofjumptable LDRpc,[r3,r0,LSL#2] ;JumptotheappropriateroutineJumpTable DCDDoAdd DCDDoSubDoAdd ADDr0,r1,r2 ;Operation0 MOVpc,lr ;ReturnDoSub SUBr0,r1,r2 ;Operation1 MOVpc,lr ;Return END ;marktheendofthisfile循環(huán)程序設(shè)計:計數(shù)控制:當(dāng)循環(huán)次數(shù)已知時,通常使用計數(shù)控制法。
MOV Rn,#N ;循環(huán)初值部分
… LOOPA … ;循環(huán)體
… … SUBS Rn,Rn,#1 ;修改部分
CMP Rn,#0 BGT LOOPA ;控制部分 直到Rn=0時,循環(huán)結(jié)束。
另,每循環(huán)一次計數(shù)其加一,直到與設(shè)定的值相等時結(jié)束。
MOV Rn,#0 ;循環(huán)初值部分
… LOOPA … ;循環(huán)體
… … ADDS Rn,Rn,#1 ;修改部分
CMP Rn,#N BNE LOOPA ;控制部分 直到Rn=N時,循環(huán)結(jié)束。例如:編制程序使S=1+2*3+3*4+4*5+…+N(N+1),直到N等于10為止。
AREA Exam,CODE,READONLY ENTRYSTART MOV R0,#1 ;R0累加,置初值1,S MOV R1,#2 ;R1第一個乘數(shù)置為2,NREPEAT ADD R2,R1,#1 ;R2第二個乘數(shù),N+1 MUL R3,R2,R1 ;N(N+1)存于R3 ADD R0,R0,R3 ;將部分積累加到R0 ADD R1,R1,#1 ;修改循環(huán)次數(shù)
CMP R1,#10 BLE REPEAT B START END條件控制:有些情況下,循環(huán)次數(shù)事先無法確定,但它與某些條件有關(guān)。例如:求兩個數(shù)組DATA1、DATA2對應(yīng)的數(shù)據(jù)之和,并將和存入新數(shù)組SUM中,計算一直到兩數(shù)之和為零時結(jié)束,并把新數(shù)組的長度存于R0中。
AREA BlockData,DATA,READWRITEDATA1 DCD 2,5,0,3,-4,5,0,10,9DATA2 DCD 3,5,4,-2,0,8,3,-10,5SUM DCD 0,0,0,0,0,0,0,0,0
AREA,Exam,CODE,READONLY ENTRYSTART LDR R1,=DATA1 LDR R2,=DATA2 LDR R3,=SUM MOV R0,#0LOOP LDR R4,[R1],#4 LDR R5,[R2],#4 ADDS R4,R4,R5 ADD R0,R0,#1 STR R4,[R3],#4 BNE LOOP B START END 多重循環(huán):即循環(huán)體內(nèi)嵌套循環(huán)。設(shè)計時可以從外層循環(huán)到內(nèi)層循環(huán),一層一層的進行。通常在設(shè)計外層時,僅把內(nèi)層看成一個處理粗框,然后再將該粗框細化成置初值、工作、修改和控制等四個部分。例:在以BUF為首地址的字存儲區(qū)中存放有10個無符號數(shù)0x0FF,0x00,0x40,0x10,0x90,0x20,0x80,0x30,0x50,0x70,0x60現(xiàn)需將他們按從小到大的順序排列在BUF中,使編寫其程序。分析:“冒泡排序法”。 寄存器分配如下:
R0:指示緩沖區(qū)初始地址
R1:外循環(huán)計數(shù)器
R2:內(nèi)循環(huán)計數(shù)器
R3:外循環(huán)地址指針
R4:內(nèi)循環(huán)地址指針
R5:內(nèi)循環(huán)下一個數(shù)地址指針
R6:存放內(nèi)循環(huán)一輪比較的最小值
R7:存放內(nèi)循環(huán)取出的下一個比較值源程序如下:
AREA BlockData,DATA,READWRITEBUF DCD0x0FF,0x00,0x40,0x10,0x90,0x20,0x80, 0x30,0x50,0x70,0x60N EQU 10
AREA Exam,CODE,READONLY ENTRYSTART LDR R0,=BUF ;指向數(shù)組的首地址
MOV R1,#0 ;外循環(huán)計數(shù)器
MOV R2,#0 ;內(nèi)循環(huán)計數(shù)器LOOPI ADD R3,R0,R1,LSL#2 ;外循環(huán)首地址放入R3 MOV R4,R3 ;內(nèi)循環(huán)首地址放入R4 ADD R2,R1,#1 ;內(nèi)循環(huán)計數(shù)器初值
MOV R5,R4 ;內(nèi)循環(huán)下一地址初值
LDR R6,[R4] ;取內(nèi)循環(huán)第一個值R4LOOPJ ADD R5,R5,#4 ;內(nèi)循環(huán)下一地址值
LDR R7,[R5] ;取出下一地址值R7 CMP R6,R7 ;比較
BLT NEXT ;小則取下一個
SWP R7,R6,[R5] ;大則交換,最小值R6 MOV R6,R7 NEXT ADD R2,R2,#1 ;內(nèi)循環(huán)計數(shù)器
CMP R2,#N ;循環(huán)終止條件
BLT LOOPJ ;小于N則繼續(xù)內(nèi)循環(huán),實現(xiàn)比較一輪
SWP R7,R6,[R3] ;否則,內(nèi)循環(huán)一輪結(jié)束, ;將最小數(shù)存入外循環(huán)的首地址處
ADD R1,R1,#1 ;外循環(huán)計數(shù)
CMP R1,#N-1 ;外循環(huán)終止條件
BLT LOOPI ;小于N-1繼續(xù)執(zhí)行外循環(huán)
B START END程序運行的結(jié)果:00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0FFH4.3.3子程序設(shè)計保護現(xiàn)場、參數(shù)傳遞、恢復(fù)現(xiàn)場、子程序返回
AREA Exam,CODE,READONLY ENTRYSTART LDR R0,=0x3FF5000 LDR R1,=0x3FF5008
STMFDR13!,{R0-R2,R14} BL Print_Text …Print_Text … …
LDMFDR13!,{R0-R2,PC} MOV PC,R14 END4.3.4模式切換程序設(shè)計處理器模式說明備注USR正常程序運行的工作模式不能直接切換到其它模式特權(quán)模式SYS用于支持操作系統(tǒng)的特權(quán)任務(wù)等可直接切換到其它模式異常模式SVC操作系統(tǒng)使用的一種保護模式只有在系統(tǒng)復(fù)位和軟件中斷響應(yīng)時,才進入此模式FIQ快速中斷請求處理只有在FIQ異常響應(yīng)時,才進入此模式IRQ中斷請求處理只有在IRQ異常響應(yīng)時,才進入此模式ABT用于虛擬內(nèi)存和存儲器保護在ARM7內(nèi)核中沒有用UND支持軟件仿真的硬件協(xié)處理器只有在位定義指令異常響應(yīng)時,才進入此模式處理器工作在什么模式下是由狀態(tài)寄存器CPSR的模式位M[4:0]來決定的。注意:某些組合會導(dǎo)致處理器進入一個不可恢復(fù)的狀態(tài)。要實現(xiàn)模式之間的切換只需通過專用指令MRS、MSR修改CPSR模式位即可實現(xiàn)。例:堆棧初始化的子程序:InitStack MOV R0,LR ;R0<-LR保存返回地址 ;切換到管理模式并設(shè)置其堆棧
MSR CPSR_c,#0xd3 ;CPSR[4:0]<-10011 LDR SP,STACKSVC ;STACKSVC堆棧地址 ;切換到中斷模式并設(shè)置其堆棧
MSR CPSR_c,#0xd2 ;CPSR[4:0]<-10010 LDR SP,STACKIRQ ;STACKIRQ堆棧地址 ;切換到快中斷模式并設(shè)置其堆棧
MSR CPSR_c,#0xd1 ;CPSR[4:0]<-10001 LDR SP,STACKFIQ ;STACKFIQ堆棧地址 ;切換到中止模式并設(shè)置其堆棧
MSR CPSR_c,#0xd7 ;CPSR[4:0]<-10111 LDR SP,STACKABT ;STACKABT堆棧地址 ;切換到未定義模式并設(shè)置其堆棧
MSR CPSR_c,#0xdb ;CPSR[4:0]<-11011 LDR SP,STACKUND ;STACKUND堆棧地址 ;切換到系統(tǒng)模式并設(shè)置其堆棧
MSR CPSR_c,#0xdf ;CPSR[4:0]<-11111 LDR SP,STACKSYS ;STACKSYS堆棧地址
MOVPC,R0 ;調(diào)用返回4.3.5匯編語言和C語言編程在實際編程時,程序的初始化部分用匯編語言完成,用C或C++完成主要的編程任務(wù)。為了保證程序調(diào)用時參數(shù)傳遞的正確性,匯編語言程序的設(shè)計要遵守APCS(ARMProduceCallStandard),這些基本規(guī)則包括子程序調(diào)用過程中寄存器的使用規(guī)則、堆棧的使用規(guī)則以及參數(shù)傳遞規(guī)則等。APCS: (1)寄存器的使用規(guī)則 (2)堆棧的使用規(guī)則 (3)參數(shù)傳遞使用規(guī)則(1)寄存器的使用規(guī)則子程序間通過寄存器R0-R3來傳遞參數(shù),記作A0-A3。被調(diào)用的子程序在返回前無需恢復(fù)寄存器R0-R3的內(nèi)容—也即這些寄存器的值是由調(diào)用者保存的。子程序使用R4-R11寄存器來保存局部變量,記作V1-V8。如果被調(diào)用的子程序要用到R4-R11,在進入時要保存這些寄存器的值—壓棧,使用完后在返回前必須恢復(fù)這些寄存器的值—出棧,也即這些寄存器的值是由被調(diào)用者保存的。寄存器R12用作子程序間臨時寄存器,記作IP。寄存器R13用作數(shù)據(jù)棧指針,記作SP,不能用作他用。在子程序進入和退出時SP的值必須相等。寄存器R14稱為鏈接寄存器,記作LR。它用作保存子程序的返回地址。寄存器R15是程序計數(shù)器,記作PC。不能用作其他用途。寄存器別名特殊名稱使用規(guī)則R0A1參數(shù)/結(jié)果/臨時寄存器1R1A2參數(shù)/結(jié)果/臨時寄存器2R2A3參數(shù)/結(jié)果/臨時寄存器3R3A4參數(shù)/結(jié)果/臨時寄存器4R4V1局部變量寄存器1R5V2局部變量寄存器2R6V3局部變量寄存器3R7V4局部變量寄存器4R8V5局部變量寄存器5R9V6局部變量寄存器6R10V7SL局部變量寄存器7/堆棧限制指針R11V8FP幀指針R12IP子程序內(nèi)部調(diào)用的臨時寄存器R13SP堆棧指針R14LR鏈接寄存器R15PC程序寄存器(2)堆棧的使用規(guī)則只要有一個函數(shù)被調(diào)用,在堆棧中就產(chǎn)生一個新的活動幀,其中包含回溯記錄、局部變量等。堆??煞譃闈M棧和空棧,當(dāng)棧指針指向最后一個入棧的數(shù)據(jù)元素時,成為滿棧。否則稱為空棧。根據(jù)棧的增長方向不同可以分為遞增棧和遞減棧。 滿遞減棧(FullDescending) 空遞減棧(EmptyDescending) 滿遞增棧(FullAscending) 空遞增棧(EmptyAscending)ATPCS規(guī)定堆棧為FD類型,并且對堆棧的操作是8字節(jié)對齊的。(3)參數(shù)傳遞使用規(guī)則對于參數(shù)可變的子程序,當(dāng)參數(shù)不超過4個時,可以使用寄存器R0~R3來傳遞;當(dāng)參數(shù)超過4個時,將剩余的參數(shù)用堆棧來傳
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《膽管癌的CT診斷》課件
- 如何上好培訓(xùn)課件
- 《信息服務(wù)中的應(yīng)用》課件
- 甘肅省嘉峪關(guān)市長城路小學(xué)-家校雙向奔赴-四年級開學(xué)家長會【課件】
- 五年級數(shù)學(xué)下冊課件 通分
- 會考復(fù)習(xí)萬有引力課件
- 語文園地一 說課稿-2024-2025學(xué)年語文二年級上冊統(tǒng)編版
- 天津市部分區(qū)2024-2025學(xué)年九年級(上)期末物理試卷(含答案)
- 浙教版2023信息科技七年級下冊第4課 物聯(lián)網(wǎng)展望 說課稿
- 五年級數(shù)學(xué)(小數(shù)四則混合運算)計算題專項練習(xí)及答案
- 暖通工程合同
- 2024年營銷部工作人員安全生產(chǎn)責(zé)任制(2篇)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之3:4組織環(huán)境-4.1理解組織及其環(huán)境(雷澤佳編制-2025B0)
- 2024年國家低壓電工電工作業(yè)證理論考試題庫(含答案)
- 2025年上半年山西呂梁市柳林縣招聘畢業(yè)生70人到村(社區(qū))工作(第二批)重點基礎(chǔ)提升(共500題)附帶答案詳解
- 2024年非煤礦山年終安全生產(chǎn)工作總結(jié)
- 部編版2024-2025學(xué)年三年級上冊語文期末測試卷(含答案)
- 研發(fā)部年終總結(jié)(33篇)
- 一年級數(shù)學(xué)計算題專項練習(xí)1000題集錦
- 2024年高考物理模擬卷(山東卷專用)(考試版)
- 湖北省武漢市青山區(qū)2022-2023學(xué)年五年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
評論
0/150
提交評論