彙編小試 十安辰

2021-10-06 03:39:04 字數 2604 閱讀 7753

1、用arm組合語言實現以下c程式段的功能。

(1)y=a×(b+c)

thumb ; 表示接下來的**為 thumb 指令集

preserve8 ; 表示接下來的**保持 8 位元組棧對齊

area init1, code, readonly ; 宣告**段

entry

code32

start mov r0, #9 ;載入a到r0

mov r1, #1 ;載入b到r1

mov r2, #1 ;載入c到r2

add r1,r2 ;b與c相加結果儲存到r1中

mul r0,r1 ;結果a*(b+c)的結果儲存到r0中

end

​ (2)if(x<3)

y=3×x+66;

else if(x<100)

y=100×x+88;

else

y=0;

thumb ; 表示接下來的**為 thumb 指令集

preserve8 ; 表示接下來的**保持 8 位元組棧對齊

area init2, code, readonly ; 宣告**段

entry

code32

cmp r0, #3 ;與 3 比較

blt cond1 ;則跳轉到 cond1 處理

cmp r0, #100

blt cond2 ;大於3但是小於100 則跳轉到 cond1 處理

mov r0, #0 ;都不是,則把r0賦值為0

b finish ;跳轉到結束

cond1 mul r0, #3 ;r0=r0*3,小於3

add r0, #66 ;r0=r0+66

b finish ;跳轉到結束

cond2 mul r0, #100 ;大於3但是小於100,r0=r0*100

add r0, #88 ;r0=r0+88

finish end

​ (3)for(i=0;i<10;i++)

x[i]=a[i]+b[i]

area blockdata,data,readwrite    ;定義資料段

data1 dcd 2,5,0,3,-4,5,0,10,9,5 ;陣列 data1

data2 dcd 3,5,4,-2,0,8,3,-10,5,6 ;陣列 data2

sum dcd 0,0,0,0,0,0,0,0,0,0 ;陣列 sum

area init3,code,readonly ;定義**段

entry

code32

start ldr r1,=data1 ;陣列 data1 的首位址存入到 r1

ldr r2,=data2 ;陣列 data2 的首位址存入到 r2

ldr r3,=sum ;陣列 sum 的首位址存入到 r3

mov r0,#0 ;計數器 r0 的初始值置 0

loop ldr r4,[r1],#04 ;取 data1 陣列的乙個數 , 同時修改位址指標

ldr r5,[r2],#04 ;取 data1 陣列的乙個數 , 同時修改位址指標

adds r4,r4,r5 ;相加並影響標誌位

add r0,r0,#1 ;計數器加 1

str r4,[r3],#04 ;儲存結果到 sum 中 , 同時修改位址指標

bne loop ;若相加的結果不為 0 則迴圈

end

2、編寫c語言函式int fact(int n),求n的階乘,要求用for迴圈來完成。

(1)將函式中的乘法部分,用嵌入彙編來實現。

嵌入彙編部分

__asm int

multi

(int x1,

int x2)

函式fact呼叫multi做乘法

int

fact

(int n)

return sum;

}

​ (2)將函式中的乘法部分,用內聯彙編來實現。

int

fact

(int n)

}return sum;

}

Golang基礎知識 十安辰

sdk就是軟體開發工具包。做go開發之前,我們需要先安裝配置好sdk 編寫 就是敲 編譯 go build 原始碼檔案 生成.exe二進位制可執行檔案 執行 1 對於可執行檔案執行 exe 2 對於原始碼 go run 原始碼檔案 這種方式可以一步執行,但是寫大型專案時候速度較慢,不推薦,一般只用於...

Go 語言 陣列使用 十安辰

package main import fmt 注意 陣列長度小於容量時,會自動填充 func main fmt.println iarr 1 2 3 4 0 var sarr 3 string 3 string fmt.println sarr a 方式二 使用型別推導,系統自行判斷 barr 3...

二分查詢 Go語言 十安辰

思想 遍歷陣列,判斷每乙個元素是否與要查詢元素匹配,簡單,略 首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以...