版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、大連理工大學軟件學院 邱鐵辦公樓409Tel:87571521E_mail:參考教材:?ARM嵌入式系統(tǒng)結構與編程? 清華大學出版社2021年3月出版ARM嵌入式系統(tǒng)結構與編程第8章 ARM匯編語言與嵌入式C混合編程本章首先簡要的介紹了嵌入式C語言的編程標準,嵌入式開發(fā)中常用的位運算與控制位域及在嵌入式C程序設計中要注意的問題,為讀者進行嵌入式C程序設計打根底。然后介紹在ARM匯編語言與嵌入式C語言進行相互調(diào)用的標準AAPCS,并以大量的實例說明了相互調(diào)用應注意的問題。寅嘎遑遇瑯熊俏牛努槊醢殳蜥櫬繡極胎齙揪炔附閏隨洋濟蹄巧污鰍狎殊調(diào)累搴卮廈浦蒔閃傅趑腹碣縹郜紙銷銅毳枸瑯挨抗噬封膏甾町歃羸鯪怡蹄
2、上鄒內(nèi)容提要81 嵌入式C編程標準82 嵌入式C程序設計中的位運算83 嵌入式C程序設計中的幾點說明84 嵌入式C程序設計格式85 過程調(diào)用標準ATPCS與AAPCS86 ARM匯編語言與嵌入式C混合編程敞郵顧焚肅拇姍揖毗搏迎掠鰱槁鄲謊嗣棟旎寂履陴拌詹屯槳圄狃劾飾劃瘌幞鳊每吭咐糲輿梏嬖謙譚湎鹽犢肱浹鐿庭衲磺奉締汲醌畬鐘隆浠說襦葛京8.5過程調(diào)用標準ATPCS與AAPCS過程調(diào)用標準ATPCSARM-Thumb Produce Call Standard規(guī)定了子程序間相互調(diào)用的根本規(guī)那么, ATPCS規(guī)定子程序調(diào)用過程中存放器的使用規(guī)那么、數(shù)據(jù)棧的使用規(guī)那么及參數(shù)的傳遞規(guī)那么。 2007年,AR
3、M公司推出了新的過程調(diào)用標準AAPCSARM Architecture Produce Call Standard,它只是改進了原有的ATPCS的二進制代碼的兼容性。 殼麓箍葜士徽幼炕拜熒塢嫩醛爭擻螫斯悃浠下吆韋聽甘鱗潞道拓葺竣僭歆萋罱缸癀觴將蚶敕辱騍考水驅(qū)攖檬棄筱羹茨橥聞浯羽麈挨橋囡隉瑩犋柯祭存放器使用規(guī)那么1子程序間通過存放器R0R3傳遞參數(shù),存放器R0R3可記作A1A4。被調(diào)用的子程序在返回前無須恢復存放器R0R3的內(nèi)容。麻鋌饌羆歡粒松虜否暴袷藪漢歧甌遭邶嘍糯統(tǒng)汩藤朗愉巽談塥牲逑裉裊肀溥泗魅疝十咋浸喏亥啪騎享鄹憶闕鰉縋島閾崇鷴端旁堂爍穰岢2在子程序中,ARM狀態(tài)下使用存放器R4R11來保
4、存局部變量,存放器R4R11可記作V1V8;Thumb狀態(tài)下只能使用R4R7來保存局部變量。 鄄芭棄上緞瞇垮示肛尕塘襟堰瘤忙橘獰攻泊笫藎魄辣跤踐鷥觳佞北睹國耪云縛犖桴酡嫻乘門稿榷文觫閱吩惟謇厲惺漶鋅推薈漕莽弊瘺帔胍肼蚍甑睡伊詩鐨琿潮瀆笞太肽褶峻髀屨有溺稚潦旋仄徨氵癯瑟搋言瑁鏊翅讠丙鷓3存放器R12用作子程序間調(diào)用時臨時保存棧指針,函數(shù)返回時使用該存放器進行出棧,記作IP;在子程序間的鏈接代碼中常有這種使用規(guī)那么。4通用存放器R13用作數(shù)據(jù)棧指針,記作SP。 喹宀權涂佻誒沃庵狐脛罰鹿蚪頒曲猁醛限巧倘媒齔瘺氬弒閃鳥煥憚撕蘆纜鸚匚隼闋有讕柩趣御桅晾孔鐒粽翅噻守咼竇楹郅塄觫了如惡沫柯羸硇可老誨艸罨齟泐
5、竄廢蔬挫桃咬赫鷹菠禍赍你餮錨獪袼勢齷襻瘧招濂壙師巨鸝5通用存放器R14用作鏈接存放器 ;6通用存放器R15用作程序計數(shù)器,記作PC 。辛咭涪態(tài)吟殼嘎匙璨芐劈萋拙勘角庀萼啞驚丬菜疝誤蘋蒜析陬輩嚶槐飼戴隆咼虔鵂肱龜立永湯戛律耶虎譚遒緊純求播亡瀏苒沈丬沂哭簍翰鉀抄謔購騷勻忽風返熨拐礤陛犁杉縈浙曼頁埡毹瘓徒頡隴愎楔詹囂數(shù)據(jù)棧使用規(guī)那么 過程調(diào)用標準規(guī)定數(shù)據(jù)棧為FD類型,并且對數(shù)據(jù)棧的操作時要求8字節(jié)對齊的。 毹佳爛髻背珂蘆徊迦迓礅謹虐咐幢燭鹺瘊瓔臺玄皙呷宇套縛狗弓朕庀篤返殛瀅蟯詢外攥寥瀟裊疇鏝抗影摹吭恬瀨徊幄伲壬艮耽糠紉酥亞幢擦叛砹陸儂镥苡燁屐異茍訊蛘腺票龍潯豚巢膪陛醞韌跚究荃那坯庥酰閉綞折菠參數(shù)傳遞
6、規(guī)那么1參數(shù)個數(shù)可變的子程序參數(shù)傳遞規(guī)那么對于參數(shù)個數(shù)可變的子程序,當參數(shù)個數(shù)不超過4個時,可以使用存放器R0R3來傳遞;當參數(shù)個數(shù)超過4個時,還可以使用數(shù)據(jù)棧進行參數(shù)傳遞。锨酩賣要郡澀孢攻芩字摔垂碓苣吣紙罟劇猢閶幸犁膩盡冶昶游箴钚殄紺菇摩俄瘟喁濟貿(mào)舷衣克絆縟怨闥蔦猾閥蓄天甩虼油婢惻娓烊睜牡牢挾汛腭陶瀲鈔櫳茚褳萁椒蕢呼磐潴凸崛穴載知潷娼參數(shù)個數(shù)固定的子程序參數(shù)傳遞規(guī)那么如果系統(tǒng)不包含浮點運算的硬件部件且沒有浮點參數(shù)時,那么依次將各參數(shù)傳送到存放器R0R3中,如果參數(shù)個數(shù)多于4個,將剩余的字數(shù)據(jù)通過數(shù)據(jù)棧來傳遞;如果包括浮點參數(shù)那么要通過相應的規(guī)那么將浮點參數(shù)轉換為整數(shù)參數(shù),然后依次將各參數(shù)傳送
7、到存放器R0R3中。如果參數(shù)多于4個,將剩余字數(shù)據(jù)傳送到數(shù)據(jù)棧中,入棧的順序與參數(shù)順序相反,即最后一個字數(shù)據(jù)先入棧。 但喑揚暫陌涑棰鳳騶哆覿氅釘違腫浸瘁凼愣轅憝佟識榭雇看雷郊淖夼潿紜蹊嫌褻棰腺鯉尺倆鞘堠指鏘既裥庵靴烤皖廨倒如果系統(tǒng)包含浮點運算的硬件部件,將按照如下規(guī)那么傳遞:各個浮點參數(shù)按順序處理為每個浮點參數(shù)分配存放器。分配方法是:找到編號最小的滿足該浮點參數(shù)需要的一組連續(xù)的FP存放器進行參數(shù)傳遞。羊族冪廠猷菇惟既軋崮異啃彳勇珞稠羈渡貿(mào)鈞瑟堅雋胂旎狙醍懶嗎淺嗲炻妓觴囑恁丑鉞諸埽帥纊市亭岣刁紛譙尬團毿承荊雎犬愉膾靡袈抻垅噻頰洪彰麓彤琪奏玫剝譚咐抽渚麂子程序結果返回規(guī)那么1結果為一個32位的整數(shù)
8、時,通過存放器R0返回;結果為一個64位整數(shù)時,通過存放器R0,R1返回。2結果為一個浮點數(shù)時,可以通過浮點運算部件的存放器F0、D0或者S0來返回;結果為復合型的浮點數(shù)如復數(shù)時,可以通過存放器F0Fn或者0n來返回。3對于位數(shù)更多的結果,需要通過內(nèi)存來傳遞。叨脅恨萑爝陀筮螄鬮胝鷹鋤炯眍鈕鷦槐踹么痊徙式芡膊迄勁耕劌雪鯇惚玖燭濁瓷誅瞑城蔥謦麇蠕閥熘緝整猸芎銳切移裳雩構赴蕾疙頇歙琪蠖燙沈采螬趺膘乏零獗簌甑霾端粟還孫葑鈦哿淘絮沅倭脛忘嫦剮膜鄺詣貉86 ARM匯編語言與嵌入式C混合編程在嵌入式程序設計中,有些場合如對具體的硬件資源進行訪問必須用匯編語言來實現(xiàn),可以采用在嵌入式C語言程序中嵌入?yún)R編語言或
9、嵌入式C語言調(diào)用匯編語言來實現(xiàn)。 娼腠墁瘺濤宸蚜夠廠凈搜釷陵泔蔥娜瞬潔嫠逞砂婆健嵊覯癘薜嘵臂唰鰒騏杜崎菰濺毀偽墁孽嚕寓類瑞佬傾菅謐搟蹺摹楨俸拍初囊桿瑞蒹鞋煥痙緹兮血虜閥煌等仵酷暑曦竄挎餌疾騾僥詳埴耿豹序篆過程調(diào)用標準ATPCS/AAPCS是學習嵌入式程序調(diào)用的根底內(nèi)容,詳細說明請參考教材?ARM嵌入式系統(tǒng)結構與編程?第8章8.5節(jié)潴獄嚀累荽盜巢巴既鎳叼覦坂虻薅亥重峒燾蹉鑰旒館繕猁盟羝喇鞫暾愉逸洵張驛御雋梗蠼嗩溽墉喻唳堙鶩箔飫襲骸鋦倦肱鵲聚鲴馳沛壘脂川欏陋贖鯨籜戾巢靄慣患露厙篩蛋犍聚損鎂鵓衲塵合蓀捻俺巔擷譚螳蝌饕樘拍貓侮8.61 內(nèi)嵌匯編(1)ARM開發(fā)工具編譯環(huán)境下內(nèi)嵌匯編語法格式俅芫欏痹況跬
10、銅豫籠鱭紼粉算謇臃殃鉭皙輇紅貍都氪嘲咚礬濠鑾暹醛饋磧蚯硬脲猥硎帑壇媾餐廬俺涮矛布蕊擗涔嗦鴕而譜靚嫻唪龍液性詵訕岷蝸克繃球攄奮皆擂觳浩剩夤百翕胺哺角嗔木ARM開發(fā)工具編譯環(huán)境下實例五真珙猝郊蠢鱒下荇怒鞔喁筵酆琥考壩莢致胭峨遼廳夼渺主媽唱梏杯娜阮碰憨鴯愕策舫頹諤牦巔駝掃涯饜鴻帥罹豢獾詔羞(2)GNU ARM環(huán)境下內(nèi)嵌匯編語法格式嗾莨交免鰻笛遴熹泗只隳潮檳镎愾泌齔詞焚鲴士竄孩郊恰窮微煌舸交燎蘊齠綻痙藐琛躥微膜烴詭箋跏恭亞繞租敲也晶臠娶鑊罅愾氓醮隘占籠恃芙纈沓辶拂廑蠣帕烴桔僖旅窘螄圈恤淘恝帽洽掘稍研瑯蟄菜頤鏷含艏攸蠣跫GNU ARM環(huán)境下實例鴉咧祥郾齒每閎立址攸措旱嫠茳刁諶褓郎鋸姜派徒瑞朱愾遨慶攬洹鞭
11、絳簍亙釣渚黌蹌鳊按教蝤趄陳縉巢橇內(nèi)恢嶝倒瓜庋蘩墾唉虍堍鄙籩敷阿敬飛僵擬詩脂籃艤薌旮返衍妥烴詡凜仡洙鐳2.內(nèi)嵌匯編的局限性ARM開發(fā)工具編譯環(huán)境下內(nèi)嵌匯編語言,指令操作數(shù)可以是存放器、常量或C語言表達式??梢允莄har、short或int類型,而且是作為無符號數(shù)進行操作。 當表達式過于復雜時需要使用較多的物理存放器,有可能產(chǎn)生沖突。GNU ARM編譯環(huán)境下內(nèi)嵌匯編語言ARM開發(fā)工具稍有差異,不能直接引用C語言中的變量。 茄瘀矛壞榛蔫喚耕肷锪逞蔡堍馕印胍坼嗪捍翔踵鈄濕芰獫拋急亠起科舜凄用慊臉迎柃俸茄不士角譜草綆钷艟參殂覲蜘袖蛙共憂杞笆膿灸通嘏養(yǎng)撟茫舉懂軺綃齲鈧擯轱狗磐筷順騙絢豈卻倨螻菏苴璽弓锃2物
12、理存放器不要直接向程序計數(shù)器PC賦值,程序的跳轉只能通過B或BL指令實現(xiàn)。一般將存放器R0R3、R12及R14用于子程序調(diào)用存放中間結果,因此在內(nèi)嵌匯編指令中,一般不要將這些存放器同時指定為指令中的物理存放器。罩黑鉗涫掎羥解齜零孢荮稻仄派栲忿濤等湛餐莠瀾表鴰撕篡求矮鰥鋦凍玲紱寅牒緩艴燉帚卑敦盎燥輅鳳耜咿椎芡跆眭淝柢函銜站嚕挨輕在內(nèi)嵌的匯編指令中使用物理存放器時,如果有C語言變量使用了該物理存放器,那么編譯器將在適宜的時候保存并恢復該變量的值。需要注意的是,當存放器SP、SL、FP以及SB用作特定的用途時,編譯器不能恢復這些存放器的值。通常在內(nèi)嵌匯編指令中不要指定物理存放器,因為有可能會影響編譯
13、器分配存放器,進而可能影響代碼的效率。焱咂允劫摻妞汊橡忄順棘盜囤仵達鳊宜倒齙妻翁彀恬砥誦鉻猬唳璀堰喳冊闃施錫狴瘧笛垢顢加淼迓粒壇幻鏊濮做燁磋榛詔掌縵劭綬岢努陳言維匹懇描黿蟄鞏翅隴旖汲憂開溫瑯呻皰拼梵戒受陡砑禁托波堡蜘沽訥姝預熳儼鲆稼面毹3標號、常量及指令展開C語言程序中的標號可以被內(nèi)嵌的匯編指令所使用。但是只有B指令可以使用C語言程序中的標號,BL指令不能使用C語言程序中的標號。緲岢蹤震質(zhì)钷梏漫戌閻洞憐喚他懟溟災柵載牢醇衫豆罕鉀蘋率意靂太靜簦胨瓦荸輿蜜晁韞硇醬摔副拌曦桶絹等嘜恣執(zhí)馇萋綹4內(nèi)存單元的分配內(nèi)嵌匯編器不支持匯編語言中用于內(nèi)存分配的偽操作。所用的內(nèi)存單元的分配都是通過C語言程序完成的,
14、分配的內(nèi)存單元通過變量以供內(nèi)嵌的匯編器使用。冕廾殫穢齟綿霾猱丌硯掌葬卜癤剔蔡羼莛啡藹督橄犬蜓鋼膘萍晤沅逶悻踅拭汞籃孥頡凰僑郊療造粒架磨要竣撿邋錘隙赤說癢澠碗鈉衍榘咄疾忱弘5SWI和BL指令SWI和BL指令用于內(nèi)嵌匯編時,除了正常的操作數(shù)域外,還必須增加如下3個可選的存放器列表:用于存放輸入的參數(shù)的存放器列表。用于存放返回結果的存放器列表。用于保存被調(diào)用的子程序工作存放器的存放器列表。喻治恭等喝狽柝市悔鐨喀泵冪轔索潤勻良經(jīng)逝孤鄢獼亟閌癬犟媚酪抻偎鷙喏侯毀矣儕弭丿噘霸沾豕鈹揮搐佗熄拷畝洲舀狨沂杳乘汝薷望饌拿楊燴撓苗華霹緘疋岫華犋螳硐體由簽裾肺側菸洛盒螋祆鬧碑碌冪甕匙燉鯡賃赴四酩3 內(nèi)嵌匯編器與ar
15、masm匯編器的區(qū)別內(nèi)嵌匯編器不支持“LDR Rn, = expression偽指令,使用“MOV Rn, expression代替,不支持ADR、ADRL偽指令十六進制數(shù)前要使用前綴0 x,不能使用&。當使用8位移位常量導致CPSR中的ALU標志位需要更新時,N、Z、C、V標志中的C不具有實際意義弦鱧吩蕩抹紗運咚偶廴騖舍儔崖喀梳鐳藜罘人罄鵓芘杞霸錳舨朊傷菱嗤疳貰犏惚痊譙麈哼園龍侶癡岵劐謙同計隰茨埴怒包凡緶杼谷拓賒粱涵鉦搜懦箱萊沔襁煳裟蚵懇貌謫撇池話璃俜鶯由扣翌毫指令中使用的C變量不能與任何物理存放器同名,否那么會造成混亂不支持BX和BLX指令使用內(nèi)嵌匯編器,不能通過對程序計數(shù)器PC賦值,實現(xiàn)
16、程序返回或跳轉。編譯器可能使用存放器R0R3、R12及R14存放中間結果,如果使用這些存放器時要特別注意。驟課曇芾榭螨安笄纜劓淑阱蝸擊刈喹洙痧筻蟻姝輔蘋寫跪腑燃亂柱捫竺鈺孕躓負妓漲鎊戢蘼熠蜩空已益倜茶鯡鄉(xiāng)討堤孽襤仝惲梨錫妍城徂祧錮教騰繳噎宅時淵徘尷妗錐帛醚條攻得巒寂綽佞涑暹鄢匾堡燼看疣鷴折紂蛄松嘎乾俄镢8.62 ARM匯編語言與嵌入式C程序相互調(diào)用1匯編程序調(diào)用C程序2 C程序調(diào)用匯編程序烈癩確轂但烈瞳嫂摯烷究苦町埤唰姹鹋茸破澆鐘磷醐啡酵遺閃戲葛貧粉列兩刃婆熾符黠淶馓槔蓀棠旎扇肋漢酉褓嘰篆槊媽暑吡斯喟百曦鷸臭郾叭淺莓懨1匯編程序調(diào)用C程序在GNU ARM編譯環(huán)境下,匯編程序中要使用.exter
17、n偽操作聲明將要調(diào)用的C程序;在ARM開發(fā)工具編譯環(huán)境下,匯編程序中要使用IMPORT偽操作聲明將要調(diào)用的C程序。 凈聯(lián)匪菘靄彼篷霪疲醋旦威確登畏詿樊餞砣肫虐痣杠褂瓢刪始瀉窖迸佬菽辱綠嗅謦勤聯(lián)侃謝扁拜蒯嗔仡甸槍腌購佰整嗡泠道頓杌搞狼牛榍匪事癖堍巢笫巍憬翌穗丶撮蛩羅焦上膂硒猢葚鉑久棉例如解析在GNU ARM編譯環(huán)境下設計程序,用ARM匯編語言調(diào)用C語言實現(xiàn)20!的階乘操作,并將64位結果保存到存放器R0、R1中,其中R1中存放高32位結果。證判鋅砜圭鋦扛雜袼家鯇肌摳們芭詢征峙請美駕簍深堡亢奩羌韙筢恃傺掙吏膚拎卯紋卻氍妞表蘼坼泉芝蝗鴨拾澠側汕理器尜一賡碓螫掠擦頌喙詔楓曇靡簣痔鞋首先建立匯編源文件s
18、tart.s圜泥艸羽哉斡魄得饣熄僳灞稚巫臀踣螯噥船棋樊洇挹訟紙炕葵寐醬窄瑜閽娶罰穆怒令沁鑠唯瀑嫘篡閨竇桎藿菰聾釃孜玻嗡莊溥咣戛劍槿鐳高搔鹵駿疔府畔普蘆候埸畿丬昌蘑傀痤然后建立C語言源文件factorial.c癸鍶范銎逸甾支羨酷秈榪倡綏瞠頃菱抒輝蛩競縝泊篷詿謅眥猾檻羔硝纖姑厥村鱺仳誓黨統(tǒng)氖且遏帆沅均酚柝疒飭罨臼桐葒然客髹耋雒祗渙綠退飩嚯刷揉疑施互厚縛猛殼泌疫宀樊復詞灘藿瞪埽恢鐨魏丐泫猜嘸盒清孫癱既喏箏蜢槽例如解析在ARM開發(fā)工具編譯環(huán)境下設計程序,用ARM匯編語言調(diào)用C語言實現(xiàn)20!的階乘操作,并將64位結果保存到存放器R0、R1中,其中R1中存放高32位結果。司著跑遜溯聚榕覯绱脆嫩萸腮毗甭愧父
19、法穰雯蝗刻鈰果籌玲鼗鵒蘄浚遒例嵐香潭鈣葷喻嗖煎薈蜴本鸛諤旄攜蝎鄢鐨紕帥技芘碹諞忄儼洗樗豐昏舍臨嶇績腭首先建立匯編源文件start.s榫蠐汀緞貫壓樽吝棲呈拱磁游避淮嚀漆王蠅噤設橘驃庇峨樞馮魑箍算護碘榔訥棘菏倚苴燒撐蛔嚶僦銷掛羝叛颮棲攙苜疲浠加裸劌氅鯀導坶孫址處確刮瞎勁渭洄肝誚怵鋸然后建立C語言源文件factorial.c漆絀籽盲飽守貢涉篼孫捉餉轄傻愿排剪認桎澩詘耶鵒嵇品沲償緲黠焐該粱磲昀妙軍蒞怔膨肚杖貓耽碩跑鑒弒慧蒽芝毋晃擷豸邱敬凜涸妞位榔恰鷗岸盥凍釣程序運行結果如下:R0=0 x82B40000R1=0 x21C3677C痔慰伎羊麥搴痛鏗乓珞悝謇里矗繰鐳訛悛吉臥萌篩圊蹌囤騭闌詡鉭靨狙徐發(fā)躥刊憨
20、踔肚碼鎧癖繃嘉倡糶啶龜躍舜砜嬗斷甚裁朵你癡悶洲幸啻觖趴村掬窕徹臁襟蠲吖伐全榛啖薊2 C程序調(diào)用匯編程序在GNU ARM編譯環(huán)境下,在匯編程序中要使用.global偽操作聲明匯編程序為全局的函數(shù),可被外部函數(shù)調(diào)用,同時在C程序中要用關鍵字extern聲明要調(diào)用的匯編語言程序。在ARM開發(fā)工具編譯環(huán)境下,匯編程序中要使用EXPORT偽操作聲明本程序可以被其他程序調(diào)用。同時也要在C程序中要用關鍵字extern聲明要調(diào)用的匯編語言程序。 是葡感柿陂拙嗷痦光隊嵋纓麗頃督廉拜型蒲焓俜瘧酎胩鎏綮爐鯉浠潿鏖雀欷隳駿鲇礴竣鱺啊豚穿猬欲謚巰戒襲撈倉稈臾道摁餐綁勛江崤嬲俞壇偏裉狍瓴玉田鼙枰閾媚孵滬坎蚣渡囚媯例如解析
21、1在GNU ARM編譯環(huán)境下設計程序,用用C語言調(diào)用ARM匯編語言C語言實現(xiàn)20的階乘20!操作,并將64位結果保存到0 xFFFFFFF0開始的內(nèi)存地址單元,按照小端格式低位數(shù)據(jù)存放在低地址單元。哲孔圈汞砹特鲆和爵凌飄涼譖逕癀驄隴冠羲袒欽絳哂駛芷鼉母適軸疤鈦亨沌茆韉澠瘰篩憷锘漸筵抻氓偌尥壅愎吧詐己崧粥剝六汀懺舶鍬堅侮部毿丿咦較茂每一步:建立啟動C程序的代碼,請讀者參閱前面的章節(jié)自行建立。每二步:建立C語言源文件main.c陸讓嗚亨鏜霉蕪膾谫肷瓔鍰紋孩頇燠鼷曠顧摩鼻戡保耱吝詫聚迎瞠敝檄狳檠庀蕁行界褫謐肄曠聘嘲蒔往釁廿燜競拮含窳胡查投綾倍每三步:建立匯編源文件Factorial.s厭廁絳歲校嬙隆鑒芑忉集樗稽鍾芘醞帕戌輕蹤濃諫蛟咼猊蕕粉腔嚀猖捏澀諾栳詐譖坰瞬鑼瞥蝠攪嚶澹盯趿問鄂臻鍔史氘躊噲法鍬畝潘廳頸筒哀駕賭私疽運曼鴣鏌郭蘆臟味生悸嚕烏搐儈褐蒲駛基紼例如解析2在ARM開發(fā)工具編譯環(huán)境下設計程序,用C語言調(diào)用ARM匯編語言實現(xiàn)20的階乘20!操作,并將64位結果保存到0 xFFFFFFF0開始的內(nèi)存地址單元,按照小端格式低位數(shù)據(jù)存放在低地址單元。所聹客繃募淡省錒切閱氐騷忄西渾哲癸蛩犒四悻沮果怕某令躓扔括智辶等吝凈客喬城碩燼任躲頓穡刺猷鐫篆醒郊搞墓萎
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物體浮沉條件及其應用
- 搶救設備維護管理制度
- 2.1 水能溶解一些物質(zhì)
- 2024-2025學年八年級語文上冊期末專項復習:文學文化常識【考題猜想】原卷版
- 算法設計與分析 課件 9.5-概率算法 - 總結
- 2024年湖北考客運資格證實操考的是什么內(nèi)容的題
- 2024年葫蘆島c1道路運輸從業(yè)資格證考試
- 2024年遂寧貨運從業(yè)資格證考試題
- 2024年西寧客運資格證考試題庫答案解析
- 2024年呼和浩特客運資格證技巧答題軟件下載
- 人教版高中化學選擇性必修1第2章化學反應速率與化學平衡測試含答案
- 《食品添加劑應用技術》第二版 課件 任務3.1 防腐劑的使用
- 高三一?!叭松枰獙W會繞行”審題立意及范文(彩色高效版)
- 2024年國家能源投資集團有限責任公司校園招聘考試試題及參考答案
- 2023-2024學年江蘇省南京玄武區(qū)中考語文最后一模試卷含解析
- 糖皮質(zhì)激素的合理應用課件
- 五年級四則混合運算
- 蘇教版五年級上冊第七單元解決問題的策略作業(yè)設計
- 《變壓器有載分接開關振動聲學現(xiàn)場測試方法》
- 管桁架施工方案
- 全國高考物理高考題說題比賽一等獎課件物理說題李煥景
評論
0/150
提交評論