打印

Cortex-M3寻址模式

[复制链接]
574|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zya888|  楼主 | 2016-4-23 22:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一条指令由两部分构成,即:操作码和操作数。操作码最终的操作对象是操作数,这些被操作的对象可以放在CPU的内部寄存器,片内存储器或者片外存储器,也可能是一个常数。所以,CPU必须要按照“预先制定的规则”找到这些被操作的对象。
沙发
zb0830| | 2016-4-23 23:51 | 只看该作者
操作对象包括:立即数、直接位地址、程序地址、直接数地址、间接地址、特殊的汇编器符号。这些操作对象和寻址模式相关

使用特权

评论回复
板凳
zb0830| | 2016-4-23 23:51 | 只看该作者
CPU寻找操作对象位置的过程,称为“寻址”。把寻找操作对象的方法,称为“寻址模式”

使用特权

评论回复
地板
huihui520| | 2016-4-23 23:52 | 只看该作者
寄存器寻址;

使用特权

评论回复
5
zb0830| | 2016-4-23 23:52 | 只看该作者
立即寻址;

使用特权

评论回复
6
huihui520| | 2016-4-23 23:52 | 只看该作者
寄存器移位寻址;

使用特权

评论回复
7
zb0830| | 2016-4-23 23:52 | 只看该作者
寄存器间接寻址

使用特权

评论回复
8
huihui520| | 2016-4-23 23:53 | 只看该作者
基址寻址;

使用特权

评论回复
9
zb0830| | 2016-4-23 23:54 | 只看该作者
多寄存器寻址;

使用特权

评论回复
10
huihui520| | 2016-4-23 23:54 | 只看该作者
堆栈寻址;

使用特权

评论回复
11
huihui520| | 2016-4-23 23:55 | 只看该作者
相对寻址。

使用特权

评论回复
12
zb0830| | 2016-4-23 23:55 | 只看该作者
块复制寻址;

使用特权

评论回复
13
zb0830| | 2016-4-23 23:55 | 只看该作者
      操作数由一个直接16位地址域指定。比如指令:
                     MOS R11,#0x000B   
      功能:将值0x000B写入到寄存器R11。

使用特权

评论回复
14
huihui520| | 2016-4-23 23:56 | 只看该作者
       某些特定指令用来访问寄存器组中的一个寄存器。由于这些指令不需要地址域,因此这些指令访问效率更高。比如指令:
                          SUB R0,R1,R2
        功能:寄存器R1的内容减去寄存器R2的内容,结果保存到R0。

使用特权

评论回复
15
zb0830| | 2016-4-23 23:56 | 只看该作者
        寄存器移位寻址是ARM指令集特有的寻址模式。当第二个操作数是移位方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。比如指令:
                 ANDS R1,R1,R2,LSL R3
        寄存器R2的值左移R3位,然后和寄存器R1的值进行逻辑“与”操作,结果保存在R1寄存器中。

使用特权

评论回复
16
huihui520| | 2016-4-23 23:56 | 只看该作者
指令指定一个寄存器,该寄存器包含操作数的地址。比如指令:
                            LDR R8,[R10]
        功能:将R10所指向地址的内容加载到寄存器R8内。

使用特权

评论回复
17
zb0830| | 2016-4-23 23:57 | 只看该作者
多寄存器寻址一次可以传送几个寄存器的值。比如指令:
              LDMIA R1!,{R2-R7,R12}
        功能:将R1指向的单元中的数据读出道R2~R7、R12寄存器中(R1自动加1)。

使用特权

评论回复
18
huihui520| | 2016-4-23 23:57 | 只看该作者
基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。基址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等。比如指令:
                        LDR R2,[R3,#0x0C]
        功能:读取R3+0x0C所指向的存储器单元的内容,并将其加载到寄存器R2中。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

239

帖子

1

粉丝