0
總結,所以我以前張貼的問題上寫在代碼: 從1開始,打印所有偶數Fibonacci數高達10946(含)斐波納契即使在ARM
打印所有數量的總和你打印。
您必須使用循環
您必須使用條件分支進行測試奇/偶 我意識到我做的一切都是錯的,所以我改寫了我的代碼,並與該
.equ Stdout, 1
.equ SWI_Exit, 0x11
.global _start
.text
_start:
MOV R2,#0 @Starting value of 0 to register 1
MOV R3,#1 @starting val of 1 to register 2
LOOP:
LDR R4,=10946 @register gets this value
ODDCHECK:
CMP R4,R5
ADD R4,R2,R3 @adding to cehck if its odd
TST R4,#1
MOV R3,R2 @ answer is 0
MOV R2,R4 @result is in R4 adds to R2 is 0=1
BNE ODDCHECK
BEQ LOOP @exiting the loop if it reaches final number
MOV R0,#Stdout
MOV R1,R5
SWI SWI_PrInt @Print out all the numbers
LDR R1, =NL
SWI SWI_PrStr
B LOOP
After:
SWI SWI_Exit
.data
NL: .asciz"\n"
上來這在ARM中正確加載,但它在我運行時什麼也不做。現在我的問題是我檢查數字是否是偶數,然後將其打印在我的代碼中?以及我打印出所有偶數的總和?我對這個彙編語言的東西很陌生,幫助將不勝感激。
'BNE ODDCHECK' /'BEQ LOOP' < - 其中一個跳躍將被採取。另外,你有一些奇怪的東西,比如'CMP R4,R5',你A)沒有初始化'R5',B)沒有使用'CMP'設置的標誌來做任何事情。 – Michael