回覆列表
  • 1 # 使用者9416381105893

    ; r1 : s_add

    ; r2 : len

    ; r3 : d_add

    _char_copy:

    b _check

    _loop:

    ldrb r0, [r1], #1 ; load a byte to r0 from [r1], then r1 += 1

    sub r2, r2, #1 ; len -= len 加在這是因為流水線。。。節省一個週期

    strb r0, [r3], #1 ; store a byte form r0 to [r3], then r3 +=1

    _check:

    cmp r2, #0

    bne _loop

    mov pc, lr ; return

    ; 程式碼這樣寫 效率不高,是一個位元組位元組的搬

    ; 可以判斷一下長度和起始地址 然後按32bit, 在多個暫存器的“塊”搬會更好

    ; 再考慮考慮 指令週期和相關性 效率會高許多 這就不多寫了

  • 中秋節和大豐收的關聯?
  • 給排水注冊裝置工程師考什麼內容?