​​​​​​汇编批量传送指令

查看linux内核代码时,常常看到下面八个汇编指令,下面简单讲解一下它们的含义和用法。

这8个是汇编常用的批量传送指令,用来加载或者存储几个连续的内存。

ldmibldmia

ldmdbldmda

stmibstmia

stmdbstmda

观察指令时可将指令分两部分解释:

ldm:Load Memory  加载内存,意思是将内存加载到CPU寄存器中;

stm:Store Memory  存储内存,意思是将寄存器内容存储到内存中,跟ldm是相反的传送方向;

ib:Increase Before  每次传送前内存地址加4;

ia:Increase After    每次传送后内存地址加4;

db:Decrease Before  每次传送前内存地址减4;

da:Decrease After   每次传送后内存地址减4;

例:

ldmib   r3, {r5, r7}     @将 [r3+4]、[r3+8] 的内容分别加载到 r5、r7;

ldmia   r3, {r5, r6, r7}  @将 [r3]、[r3+4]、[r+8] 的内容分别加载到 r5、r6、r7;

ldmdb   r3, { r5, r6, r7}  @将 [r3-4]、[r3-8]、[r3-12] 的内容分别加载到 r5、r6、r7;

ldmda r3, {r5 - r7}    @将 [r3] 、[r3-4]、[r3-8] 的内容分别加载到 r5、r6、r7;

 

stmib   r3, {r5, r7}     @将 r5、r7 的内容分别存储到 [r3+4]、[r3+8];

stmia   r3, {r5, r6, r7}  @将 r5、r6、r7 的内容分别存储到 [r3]、[r3+4]、[r+8];

stmdb   r3, { r5, r6, r7}  @将 r5、r6、r7 的内容分别存储到 [r3-4]、[r3-8]、[r3-12];

stmda r3, {r5 - r7}    @将 r5、r6、r7 的内容分别存储到 [r3] 、[r3-4]、[r3-8]。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值