Home » 华清嵌入式 » Arm Load/Store指令

Arm Load/Store指令

编 辑:Y ┊ 时 间:2022年03月01日 ┊ 访问: 22 次

05696-qs737epqac8.png

65204-rngc6wzcppq.png

读取

.text
main:
  mov r0, #9
  @mov r5, buf 这样是读不了的
  ldr r5,=buf
  ldr r0,[r5]  @[]相当于取指针
  @ldrb 只读一个字节




main_end:
  b main_end

  .data

@char buf[] = {0x01,0x02,0x03,0x04}
buf:
  .byte 0x01,0x02,0x03,0x04

.end

.text
main:
  mov r0, #9
  @mov r5, buf 这样是读不了的
  ldr r5,=buf
  ldr r6,=dest_buf
  ldr r0,[r5]  @[]相当于取指针
  @ldrb 只读一个字节
  str r0,[r6] @取地址




main_end:
  b main_end

  .data

@char buf[] = {0x01,0x02,0x03,0x04}
buf:
  .byte 0x01,0x02,0x03,0x04

dest_buf:
   .space 8 @申请空间

.end

09721-n0te931xbiq.png

前后索引

ldr r0, [r1, #8] @先加 ++i
str r0,[r1],#4 @先使用后加 i++

67601-jl5s306hme.png

09237-r0tjcv83kgc.png

65514-u1ogmjtexx.png

测验

45725-g2oyhntc5a.png

.text
main:
  mov r5,#0
  ldr r7,=buf
  ldr r8,=destBuf

loop:
  cmp r5,#3
  beq main_end
  add r5, #1
  ldrb r0, [r7],#1
  strb r0, [r8],#1
  b loop


main_end:
  b main_end
  
buf:
  .byte 1,2,3
.data
  
dest_buf:
   .space 8
     
.end



Copyright © 2026 Y 版权所有.网站运行:13年238天21小时26分