freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式實(shí)驗(yàn)報(bào)告二(精選合集)-文庫(kù)吧

2024-10-28 18:56 本頁(yè)面


【正文】 期結(jié)果 程序代碼:x EQU 20 y EQU 120 stack_top EQU 0X1000 ENTRY MOV sp,stack_top MOV r0,x STR r0,[sp] MOV r0,y LDR r1,[sp] ADD r0,r0,r1 STR r0,[sp] Stop B Stop END 程序結(jié)果為:r0 = x+y = 140 = 0X8C實(shí)驗(yàn)三 ARM匯編語(yǔ)言程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模瑢W(xué)會(huì)使用ARM的匯編語(yǔ)言編程,及if條件、循環(huán)、循環(huán)及循環(huán)的匯編實(shí)現(xiàn)二、實(shí)驗(yàn)設(shè)備,仿真器驅(qū)動(dòng)程序三、實(shí)驗(yàn)內(nèi)容,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果 程序代碼:Num EQU 20。定義常量Num = 20 START。LDR r0,=src。將src數(shù)據(jù)塊的開(kāi)始地址存入r0中 LDR r1,=dst。將dst數(shù)據(jù)塊的開(kāi)始地址存入r1中 MOV r2,Num。設(shè)置r2的值為20 MOV sp,0x400。堆棧指針sp指向0x400 blockcopy。MOVS r3,r2,LSR 3。將r2左移3位移入r3并且影響標(biāo)志位 BEQ copywords。結(jié)果為0的話跳轉(zhuǎn)到copywords STMFD SP!,{r4r11}。將r4r11的值入棧 octcopy。LDMIA r0!,{r4r11}。將src的前8個(gè)字?jǐn)?shù)據(jù)存入讓r4r11 STMIA r1!,{r4r11}。將r4r11中的數(shù)據(jù)放入dst數(shù)據(jù)塊中 SUBS r3,r3,1。r3 = r31 BNE octcopy。結(jié)果不為0跳轉(zhuǎn)到octcopy LDMFD SP!,{R4R11}。恢復(fù)原來(lái)的r4r11 copywords。ANDS r2,r2,7。r2 = r2amp。7 BEQ stop。結(jié)果為0跳轉(zhuǎn)到stop wordcopy。LDR r3,[r0],4。將r0指向的字?jǐn)?shù)據(jù)放入r3中,r0 = r0+4 STR r3,[r1],4。將r3中的數(shù)據(jù)存入到dst數(shù)據(jù)塊中,r1 = r1+4 SUBS r2,r2,1。r2 = r21 BNE wordcopy。不為0跳轉(zhuǎn)到wordcopy處 stop。B stop。src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4。dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0。END。程序結(jié)果:將src的數(shù)據(jù)全部存入到dst中,并自行編寫(xiě)程序,分別使用LDR,STR,LDMIA,STMIA操作,實(shí)現(xiàn)對(duì)某段連續(xù)存儲(chǔ)單元寫(xiě)入數(shù)據(jù),并觀察結(jié)果 程序代碼:MOV R4,1。設(shè)置r4 = 1; MOV R5,2。設(shè)置r5 = 1; MOV R6,3。設(shè)置r4 = 1;LDR R0,=dst。R0保存dst的首地址STR R4,[R0]。將r4的值裝入r0執(zhí)行的內(nèi)存中STR R5,[R0,4]。將r5的值裝入r0+4執(zhí)行的內(nèi)存中 STR R6,[R0,8]。將r6的值裝入r0+8執(zhí)行的內(nèi)存中 LDR R7,=src。R0保存src的首地址LDMIA R7,{R8R10}。將r7執(zhí)行的地址的數(shù)據(jù)讀入r8=r10 LDR R3,=N。r3保存N的首地址STMIA R3!,{R8R10}。將r8r10裝入r3指向的內(nèi)存 N DCD 0,0,0 src DCD 1,2,3 dst DCD 0,0,0 END 程序結(jié)果:熟悉使用LDMIA,STMIA和LDR,STR指令,使用ARM匯編指令實(shí)現(xiàn)for條件執(zhí)行,使用ARM匯編指令實(shí)現(xiàn)while條件執(zhí)行,使用ARM匯編指令實(shí)現(xiàn)do…while條件執(zhí)行。程序代碼:實(shí)現(xiàn)if條件: MOV R0,1 MOV R1,2 CMP R0,R1 BGT LOOP1 BLT LOOP2 LOOP1 MOV R3,R0 LOOP2 MOV R3,R1 END 程序結(jié)果:實(shí)現(xiàn)for和while條件:MOV R1,1 MOV R3,0 MOV R2,101。LOOP ADD R3,R1,R3 ADD R1,R1,1 CMP R1,R2 BLT LOOP END 程序結(jié)果:實(shí)現(xiàn)do…while條件:MOV R0,1 MOV R1,100 MOV R3,0 LOOP CMP R0,R1 BGT STOP ADD R3,R0,R3 ADD R0,R0,1 B LOOP STOP END 程序結(jié)果:實(shí)驗(yàn)四 基于ARM的C語(yǔ)言程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?C語(yǔ)言的基本框架,學(xué)會(huì)使用ARM的C語(yǔ)言編程。二、實(shí)驗(yàn)設(shè)備,PentiumII以上的PC機(jī),仿真器電纜。三、ARM C語(yǔ)言簡(jiǎn)介與使用規(guī)則在應(yīng)用系統(tǒng)的程序設(shè)計(jì)中,若所有的編程任務(wù)均由匯編語(yǔ)言來(lái)完成,其工作量巨大,并且不宜移植。由于ARM的程序執(zhí)行速度較高,存儲(chǔ)器的存儲(chǔ)速度和存儲(chǔ)量也很高,因此,C語(yǔ)言的特點(diǎn)充分發(fā)揮,使得應(yīng)用程序的開(kāi)發(fā)時(shí)間大為縮短,代碼的移植十分方便,程序的重復(fù)使用率提高,程序架構(gòu)清晰易懂,管理較為容易等等。因此,C語(yǔ)言的在ARM編程中具有重要地位。 C語(yǔ)言程序的基本規(guī)則在ARM程序的開(kāi)發(fā)中,需要大量讀寫(xiě)硬件寄存器,并且盡量縮短程序的執(zhí)行時(shí)間的代碼一般使用匯編語(yǔ)言來(lái)編寫(xiě),比如ARM的啟動(dòng)代碼,ARM的操作系統(tǒng)的移植代碼等,除此之外,絕大多數(shù)代碼可以使用C語(yǔ)言來(lái)完成。C語(yǔ)言使用的是標(biāo)準(zhǔn)的C語(yǔ)言,ARM的開(kāi)發(fā)環(huán)境實(shí)際上就是嵌入了一個(gè)C語(yǔ)言的集成開(kāi)發(fā)環(huán)境,只不過(guò)這個(gè)開(kāi)發(fā)環(huán)境和ARM的硬件緊密相關(guān)。在使用C語(yǔ)言時(shí),要用到和匯編語(yǔ)言的混合編程。當(dāng)匯編代碼較為簡(jiǎn)潔,則可使用直接內(nèi)嵌匯編的方法,否則,使用將匯編文件以文件的形式加入項(xiàng)目當(dāng)中,通過(guò)ATPCS的規(guī)定與C程序相互調(diào)用與訪問(wèn)。ATPCS,就是ARM、Thumb的過(guò)程調(diào)用標(biāo)準(zhǔn)(ARM/Thumb Procedure Call Standard),它規(guī)定了一些子程序間調(diào)用的基本規(guī)則。如寄存器的使用規(guī)則,堆棧的使用規(guī)則,參數(shù)的傳遞規(guī)則等。在C程序和ARM的匯編程序之間相互調(diào)用必須遵守ATPCS。而使用ADS的C語(yǔ)言編譯器編譯的C語(yǔ)言子程序滿足用戶指定的ATPCS的規(guī)則。但是,對(duì)于匯編語(yǔ)言來(lái)說(shuō),完全要依賴用戶保證各個(gè)子程序遵循ATPCS的規(guī)則。具體來(lái)說(shuō),匯編語(yǔ)言的子程序應(yīng)滿足下面3個(gè)條件:● 在子程序編寫(xiě)時(shí),必須遵守相應(yīng)的ATPCS規(guī)則; ● 堆棧的使用要遵守相應(yīng)的ATPCS規(guī)則; ● 在匯編編譯器中使用atpcs選項(xiàng)。基本的ATPCS規(guī)定,請(qǐng)?jiān)斠?jiàn)相關(guān)技術(shù)文檔。匯編程序調(diào)用C程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時(shí)參數(shù)正確傳遞。在匯編程序中使用IMPORT偽指令聲明將要調(diào)用的C程序函數(shù)。在調(diào)用C程序時(shí),要正確設(shè)置入口參數(shù),然后使用BL調(diào)用。C程序調(diào)用匯編程序匯編程序的設(shè)置要遵循ATPCS規(guī)則,保證程序調(diào)用時(shí)參數(shù)正確傳遞。在匯編程序中使用EXPORT偽指令聲明本子程序,使其他程序可以調(diào)用此子程序。在C語(yǔ)言中使用extern關(guān)鍵字聲明外部函數(shù)(聲明要調(diào)用的匯編子程序)。在C語(yǔ)言的環(huán)境內(nèi)開(kāi)發(fā)應(yīng)用程序,一般需要一個(gè)匯編的啟動(dòng)程序,從匯編的啟動(dòng)程序,跳到C語(yǔ)言下的主程序,然后,執(zhí)行C程序,在C環(huán)境下讀寫(xiě)硬件的寄存器,一般是通過(guò)宏調(diào)用,在每個(gè)項(xiàng)目文件的Startup44b0/,那里面定義了所有關(guān)于44B0的硬件寄存器的宏,對(duì)宏的讀寫(xiě),就能操作44B0的硬件。具體的編程規(guī)則同標(biāo)準(zhǔn)C語(yǔ)言。四、實(shí)驗(yàn)內(nèi)容理解下列程序,新建工程,加入下面的程序,并觀察實(shí)驗(yàn)結(jié)果。程序代碼:/*實(shí)現(xiàn)5個(gè)數(shù)的相加*/ int sum5(int a,int b,int c,int d,int e){ return(a+b+c+d+e)。}。匯編語(yǔ)言IMPORT sum5。聲明調(diào)用c函數(shù) CALLSUMS STMFD SP!,{LR}。將LR寄存器入棧 MOV R0,1。r0 = 1 ADD R1,R0,R0。r1 = 2 ADD R2,R1,R0。r2 = 3 ADD R3,R1,R2。r3 = 5 STR R3,[SP,4]!。將r3的值入棧當(dāng)做第五個(gè)參數(shù) ADD R3,R1,R1。R3 = R3+R1=4 BL sum5。調(diào)用sum5 ADD SP,SP,4。sp = sp+4 LDMFD SP,{PC} 程序結(jié)果:實(shí)現(xiàn)了i+2i+3i+4i+5i的匯編語(yǔ)言調(diào)用c語(yǔ)言用匯編語(yǔ)言實(shí)現(xiàn)1到100累加的函數(shù),用C言語(yǔ)編寫(xiě)主程序,在主程序中調(diào)用所編寫(xiě)的匯編函數(shù) 程序代碼:NAME asmfile PUBLIC sum5 : CODE(2)CODE32 sum5 ENTRY MO
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1