日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【ARM】ARM汇编程序设计(六) stm和ldm

發(fā)布時(shí)間:2024/4/24 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【ARM】ARM汇编程序设计(六) stm和ldm 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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 0x0

02. 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 0x0

03. 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 0x0

04. 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 0x0

05. 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指令

總結(jié)

以上是生活随笔為你收集整理的【ARM】ARM汇编程序设计(六) stm和ldm的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。