002
04.06.2009, 22:14 Uhr
Pablo
Supertux (Operator)
|
Zitat von Hans: |
also wie PC-Assembler sieht es nicht gerade aus.
|
ist es auch nicht, das ist ARM Code.
@mydigitalme: damit bqn, usw benutzt werden kann, müssen die status bits des CPSR gesetzt werden.
Code: |
strlen: stmfd sp!, {r1-r3, lr} ; r1-r3, lr auf Stack sichern mov r1, #0 ; r1 := 0 mov r2, #0 ; r2 := 0 test_zero_byte: ldrs r3, [r0, r1] ; r3 := r0[r1/4] das s am Ende von ldr setzt die Status bits moveq r0, r2 ; r0 := r2, nur dann, wenn r3 == 0 ldmfdeq sp!, {r1-r3, pc} ; r1-r3 wiederherstellen und zurückspringen , ; nur dann, wenn r3 == 0 add r2, r2, #1 ; r2++ add r1, r1, #4 ; r1 := 4 b test_zero_byte
|
-- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 04.06.2009 um 22:39 Uhr von Pablo editiert. |