ARM數(shù)據(jù)處理指令
寄存器傳送指令
移位指令
算術(shù)運算指令
邏輯運算指令
比較指令
乘法指令
1.
實驗一:
根據(jù)提示信息完成程序并運行驗證。(exp5_1_1.s)
AREA lab1,CODE,READONLY
START
STOP
思考題:
a)
SUBS R4,R0,R1
SUBS R4,R1,R0
后,程序狀態(tài)寄存器CPSR的標志位各有何變化?為什么?
b)
SUB R4,R0,R1
SUB R4,R1,R0
后,程序狀態(tài)寄存器CPSR的標志位各有何變化?為什么?
實驗二:
編寫ARM匯編程序。有兩個128位數(shù),第一個數(shù)0x00000004000000c3000000
2.
實驗六:根據(jù)提示信息完成程序并運行驗證。(exp5_1_6.s)
AREA lab3,CODE,READONLY
START
;32位無符號乘加計算R0*R1+R0,R5存結(jié)果
;32 位無符號乘法計算R2*R3,R6存結(jié)果
;64位無符號乘法計算R2*R3,R7存低32位,R8存高32位
STOP
思考題:
在上述程序中,執(zhí)行語句
MUL R6,R2,R3
UMULL R7,R8,R2,R3
SMULL R9,R10,R2,R3
后,解析個寄存器的值。
3.
實驗三:
根據(jù)提示信息完成程序并運行驗證。(exp)
START
;測試寄存器R0中的第2位是否為1,并根據(jù)結(jié)果修改CPSR的標志位(若是,跳轉(zhuǎn)到START)
實驗四:
編寫簡單的匯編語言程序,功能是計算1+2+3+。。。。+n的值,并把累加的結(jié)果存儲到寄存器中。 (exp3_1_1)
4.
實驗五:
將0x3FC0的第4~11位用0xDD替換,變成0x3DD0。根據(jù)提示信息完成程序并運行驗證。 (exp)
START
STOP
思考:
在上述程序中,如果將0x3FC0替換為0xCFC0,應該如何修改程序?
評論