?? x次方.txt
字號:
;文件名:TEST4.S
;功能:計算X的n次方的值
;說明:X和n均為無符號整數
X EQU 153 ;定義X的值為153
n EQU 10 ;定義n的值為10
AREA Example4,CODE,READONLY ;聲明代碼段Example4
ENTRY ;標識程序入口
CODE32 ;聲明32位ARM指令
START LDR SP,=0x40003F00 ;設置堆棧(滿遞減堆棧,使用STMFD/LDMFD指令)
LDR R0,=X
LDR R1,=n
BL POW ;使用子程序POW,返回值為R0
HALT B HALT
;名稱:POW
;功能:整數乘方運算
;入口參數:R0 底數
; R1 指數
;出口參數:R0 運算結果
;占用資源:R0、R1
;說明:本子程序考慮溢出問題
POW
STMFD SP!,{R1-R12,LR} ;寄存器入棧保護
MOVS R2,R1 ;將指數值復制到R2,并影響條件碼標志
MOVEQ R0,#1 ;若指數為0,則設置R0=1
BEQ POW_END ;若指數為0,則返回
CMP R2,#1
BEQ POW_END ;若指數為1,則返回(此時R0沒有被更改)
MOV R1,R0 ;設置DO_MUL子程序的入口參數R0和R1
SUB R2,R2,#1 ;計數器R2=指數值減1
POW_L1 BL DO_MUL ;調用DO_MUL子程序,R0=R1*R0
SUBS R2,R2,#1 ;每循環一次,計數器R2減1
BNE POW_L1 ;若計數器R2不為0,跳轉到POW_L1
POW_END LDMFD SP!,{R1-R12,PC} ;寄存器出棧,返回
;名稱:DO_MUL
;功能:32位乘法運算
;入口參數:R0 乘數
; R1 被乘數
;出口參數:R0 運算結果
;占用資源:R0、R1
;說明:本子程序不會破壞R1
DO_MUL MUL R0,R1,R0 ;R0=R1*R0
MOV PC,LR ;返回
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -