【ARM】ARM汇编程序设计(六) stm和ldm
生活随笔
收集整理的這篇文章主要介紹了
【ARM】ARM汇编程序设计(六) stm和ldm
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. ldmea指令
- 02. ldmed指令
- 03. ldmfa指令
- 04. ldmfd指令
- 05. stmea指令
- 06. stmed指令
- 07. stmfa指令
- 08. stmfd指令
- 09. swp指令
- 06. 附錄
01. ldmea指令
程序示例
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:push {lr}adr r4, .L1ldmea r4, {r1, r2, r3}ldr r0, =.LC1bl printfmov r0, #0pop {pc}.L0:.word 0x1111.word 0x2222.word 0x3333.L1:.word 0x002. ldmed指令
程序示例
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:push {lr}adr r4, .L0ldmed r4, {r1-r3}ldr r0, =.LC1bl printfmov r0, #0pop {pc}.L0:.word 0x1111.word 0x2222.word 0x3333.L1:.word 0x003. ldmfa指令
程序示例
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:push {lr}adr r4, .L1ldmfa r4, {r1-r3}ldr r0, =.LC1bl printfmov r0, #0pop {pc}.L0:.word 0x1111.word 0x2222.word 0x3333.L1:.word 0x004. ldmfd指令
程序示例
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:push {lr}adr r4, .L0ldmfd r4, {r1-r3}ldr r0, =.LC1bl printfmov r0, #0pop {pc}.L0:.word 0x1111.word 0x2222.word 0x3333.L1:.word 0x005. stmea指令
程序示例:
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:stmfd sp!, {lr}mov fp, spsub sp, sp, #12mov r1, #1mov r2, #2mov r3, #3stmea sp, {r1, r2, r3}ldmfd sp, {r1, r2, r3}ldr r0, =.LC1bl printfmov r0, #0mov sp, fpldmfd sp!, {lr}06. stmed指令
程序示例:
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:stmfd sp!, {lr}mov fp, spsub sp, sp, #4mov r1, #1mov r2, #2mov r3, #3stmed sp!, {r1, r2, r3}ldmed sp!, {r1, r2, r3}ldr r0, =.LC1bl printfmov r0, #0mov sp, fpldmfd sp!, {lr}07. stmfa指令
程序示例:
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:stmfd sp!, {lr}mov fp, spsub sp, sp, #16mov r1, #1mov r2, #2mov r3, #3stmfa sp, {r1, r2, r3}ldmed sp, {r1, r2, r3}ldr r0, =.LC1bl printfmov r0, #0mov sp, fpldmfd sp!, {lr}08. stmfd指令
程序示例:
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n".section .text.align 2.global main main:stmfd sp!, {lr}mov fp, spmov r1, #1mov r2, #2mov r3, #3stmfd sp, {r1, r2, r3}ldmea sp, {r1, r2, r3}ldr r0, =.LC1bl printfmov r0, #0mov sp, fpldmfd sp!, {lr}09. swp指令
程序示例:
.section .rodata.align 2 .LC0:.string "hello world\n" .LC1:.string "var = %p %p %p\n" .LC2:.string "val = %d\n".section .text.align 2.global main main:stmfd sp!, {lr}mov fp, spsub sp, sp, #4mov r0, #10str r0, [sp]mov r2, #20swp r1, r2, [sp]ldr r0, =.LC2bl printfldr r1, [sp]ldr r0, =.LC2bl printfmov r0, #0mov sp, fpldmfd sp!, {lr}06. 附錄
6.1 【ARM】Load Store指令
總結
以上是生活随笔為你收集整理的【ARM】ARM汇编程序设计(六) stm和ldm的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ARM】ARM汇编程序设计(五) st
- 下一篇: 【Tools】Wireshark3.0安