寻址操作指令总结

寻址操作指令总结

ID:40641320

大小:462.95 KB

页数:14页

时间:2019-08-05

寻址操作指令总结_第1页
寻址操作指令总结_第2页
寻址操作指令总结_第3页
寻址操作指令总结_第4页
寻址操作指令总结_第5页
资源描述:

《寻址操作指令总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、寄存器寻址操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器自来操作。例如:SUBR0,R1,R2;R1-R2R0该指令将R1的值减去R2的值,结果保存得到R0中。这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。练习:AREATEXT,CODE,READONLYENTRYSTART①MOVR1,#0x80②MOVR2,#0x40③SUBR0,R1,R2END①将立即数0x80装入R1中②将立即数0x40装入R2中③将R1的值减去R2的值,结果保存到R0中二、立即寻址立即寻址指令中的操作码字段后面的地址码部

2、分就是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取除了可以立即使用的操作数(立即数)。立即寻址也叫立即数寻址。例如:SUBSR0,R0,#1;R0-1R0MOVR0,#0xff00;0xff00R0第1条指令将R0减1,结果保存到R0中,并影响标志位。第2条指令将立即数0xff00装入R0中。练习:AREATEXT,CODE,READONLYENTRYSTART①MOVR0,#0x80②SUBSR0,R0,#0x20③MOVR0,#0xff00END①将立即数0x80装入R0中②R0减1,结果保存到R0中,并影响标志位③将立即数0xff00装入R0中一、寄存

3、器偏移寻址寄存器偏移寻址是ARM指令集特有的寻址方式,当第2操作数是寄存器偏移方式时,第2个寄存器操作数在与第1个操作数结合之前,选择进行移位操作。MOVRd,Rn,Rm,{}Rm称为第2操作数寄存器用来指定一位类型和移位位数,有两种形式:5位立即数(其值小于32);寄存器(用Rs表示)(其值小于32)。例如:MOVR1,R2,LSL#3;R2的值左移3位,结果放入R0,即R0=R2*8ANDSR1,R1,R2,LSLR3;R2的值左移R3位,然后和R1相与操作,结果放入R1练习:AREATEXT,CODE,READONLYENTRYSTART

4、①MOVR1,#0x06②MOVR2,#0x01③MOVR3,#0x02④MOVR0,R2,LSL#3⑤ANDSR1,R1,R2,LSLR3END①将立即数0x06装入R1中②将立即数0x01装入R2中③将立即数0x02装入R3中④R2的值左移3位,结果放入R0,即R0=R2*8⑤R2的值左移R3位,然后和R1相与操作,结果放入R1第2操作数移位方式共有六种移位方式:LSL逻辑左移LSR逻辑右移ASL算术左移ASR算术右移ROR循环右移RRX带扩展的循环右移1)LSL:逻辑左移,寄存器中字的低端空出的位补0.2)LSR:逻辑右移,寄存器中字的高端空出的位补0.SUBR3,

5、R2,R1,LSL#2;R3R2-(R1逻辑左移2位)SUBR3,R2,R1,LSRR0;R3R2-(R1逻辑右移R0位)练习:AREATEXT,CODE,READONLYENTRYSTART①MOVR0,#1②MOVR1,#2③MOVR2,#8 ④SUBR3,R2,R2,LSL#2⑤SUBR3,R2,R1,LSRR0NOP END①将立即数1装入R0中②将立即数2装入R1中③将立即数8装入R2中④R2的值减去R2左移两位的值放入R3中⑤R1的值减去R1右移R0位的值放入R31)ASL:算术左移,由于左移空出的有效位用0填充,因此它与LSL同义、2)ASR:算术右移,移位

6、过程中保持符号位不变,即如果源操作数为整数,则自的高端空出的位补0,否则补1.ADDR3,R2,R1,ASL#2;R3R2+(R1算术左移2位)SUBR3,R2,R1,ASRR3;R3R2-(R1算术右移R3位)3)ROR:循环右移,由字的低端移出的位填入自的高端空出的位。SUBR3,R2,R1,ROR#2;R3R2-(R1算术右移2位)4)RRX:带扩展的循环右移,操作数右移一位,高端空出的位用原C标志值填充。SUBR3,R2,R1,RRXR0;R3R2-(R1带进位位循环右移R0位)第2操作数的移位位数移位位数可以停用立即数或者寄存器方式给出,其值均小于32,应为0~

7、30.ADDR3,R2,R1,LSR#2;R3R2+(R1右移2位)ADDR3,R2,R1,LSRR4;R3R2+(R1右移R4位)一、寄存器间接寻址寄存器间接寻址指令中的地址码给出的是一个通用寄存器编号,所需要的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。例如:LDRR0,[R1];R0[R1]STRR0,[R1];[R1]R0第1条指令将以R1的值为地址的存储单元中的内容加载到寄存器R0中。第2条指令将R0的内容存储到以R1的值位地址的存储单元中。R1——基址寄存器;R1的内容——基地址练习:ARE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。