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

正文內(nèi)容

arm匯編語言程序設(shè)計(jì)-wenkub.com

2025-01-15 02:22 本頁面
   

【正文】 下例中, C語言程序 g () 完成 5個(gè)整數(shù)相加的功能,匯編程序ARM_add則要調(diào)用 g () 完成 5個(gè)整數(shù)和的功能,參數(shù)傳遞為 1~4個(gè)均在 R0~R3中,第 5個(gè)參數(shù)利用堆棧傳送。 printf ( ―After copying : \n ― ) 。 char dststr [ ] = ― Second string – destination ― 。 結(jié)果為一個(gè) 64位整數(shù)時(shí),通過 R0、 R1返回,依此類推。 ? 根據(jù)棧的增長方向不同可以分為遞增棧和遞減棧。不能用作其他用途。在子程序進(jìn)入和退出時(shí) SP的值必須相等。 ? 子程序使用 R4R11寄存器來保存局部變量,記作 V1V8。 例:堆棧初始化的子程序: 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堆棧地址 MOV PC, R0 ;調(diào)用返回 匯編語言和 C語言編程 ? 在實(shí)際編程時(shí),程序的初始化部分用匯編語言完成,用 C或 C++完成主要的編程任務(wù)。 分析:“冒泡排序法”。 AREA BlockData, DATA, READWRITE DATA1 DCD 2, 5, 0, 3, 4, 5, 0, 10, 9 DATA2 DCD 3, 5, 4, 2, 0, 8, 3, 10, 5 SUM DCD 0, 0, 0, 0, 0, 0, 0, 0, 0 AREA, Exam, CODE, READONLY ENTRY START LDR R1, =DATA1 LDR R2, =DATA2 LDR R3, =SUM MOV R0, 0 LOOP 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)。控制部分 直到 Rn=N時(shí),循環(huán)結(jié)束。 MOV Rn, 0 。循環(huán)體 … … SUBS Rn, Rn, 1 。 Return END 。 Jump to the appropriate routine JumpTable DCD DoAdd DCD DoSub DoAdd ADD r0, r1, r2 。 label the function CMP r0, num 。 call the function stop MOV r0, 0x18 。 default: return method_d 。 AREA Exam, CODE, READONLY ENTRY START LDR R0, =0x90010 LDR R1, [R0], 4 LDR R2, [R0], 4 ADD R1, R1, R2 STR R1, [R0] END 分支程序設(shè)計(jì): 已知 32位有符號數(shù) X存放在存儲器的地址 0x90010中,要求實(shí)現(xiàn): Y=X ( X〉 =0)或 Y=X ( X0) AREA Exam CODE READONLY ENTRY START LDR R1,=0x90010 LDR R2,[R1] MOV R0,0 CMP R2,R0 SUBLT R2, R0, R2 STR R2, [R1] END 已知 32位有符號數(shù) X存放在存儲器的地址 0x90010中,要求實(shí)現(xiàn): Y=1( X〉 0)或 Y=0 ( X=0)或 Y=1( X0) AREA Exam CODE READONLY ENTRY START LDR R1,=0x90010 LDR R2,[R1] CMP R2, 0 BEQ ZERO BGT PLUS MOV R0,1 B FINISH LPUS MOV R0, 1 B FINISH ZERO MOV R0, 0 FINISH STR R0, [R1] END 多分支結(jié)構(gòu): main ( int ) { switch (x) { case 0: return method_0 ()。 用來表示程序設(shè)計(jì)問題的操作序列或步驟 —— 算法, 即 “ 怎樣做 ? ” 。如果沒有指定表達(dá)式,則將當(dāng)前位置對齊到下一個(gè)字的位置。 READWRITE: 可讀可寫,數(shù)據(jù)段默認(rèn)。 由 MAP和 FIELD配合定義的內(nèi)存表有 3種: ( 1)表達(dá)式是一個(gè)基于絕對地址的內(nèi)存表: MAP 0x100 ;首地址為 0x100 A FIELD 4 ; A的長度為 4字節(jié),位置為 0x100 B FIELD 4 ; B的長度為 4字節(jié),位置為 0x104 S FIELD 16 ; S的長度為 16字節(jié),位置為 0x108 …. LDR R0, =A ;讀取 A的地址 0x100 LDR R1, [R0] ;將 A的內(nèi)容讀到 R1 ( 2)表達(dá)式是一個(gè)數(shù)值,是一個(gè)相對地址的內(nèi)存表: MAP 0x04 ,R9 ;首地址為 R9的值 A FIELD 4 ; A的長度為 4字節(jié),相對位置為 0 B FIELD 8 ; B的長度為 8字節(jié),相對位置為 4 S
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1