电子科大-微机原理课件-第8章.pdf

电子科大-微机原理课件-第8章.pdf

ID:51499473

大小:949.98 KB

页数:56页

时间:2020-03-25

电子科大-微机原理课件-第8章.pdf_第1页
电子科大-微机原理课件-第8章.pdf_第2页
电子科大-微机原理课件-第8章.pdf_第3页
电子科大-微机原理课件-第8章.pdf_第4页
电子科大-微机原理课件-第8章.pdf_第5页
资源描述:

《电子科大-微机原理课件-第8章.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ARM汇编指令书写格式ARM采用三地址指令格式:{}{S},{,}其中<>号内的项是必须的,{}号内的项可选。opcode:指令助记符;cond:执行条件;S:是否影响CPSR寄存器的值;Rd:目标寄存器;Rn:第1个操作数的寄存器;operand2:第2个操作数(#immed_8r、Rm、Rm,shift);指令语法目标寄存器(Rd)源寄存器1(Rn)源寄存器2(Rm)ADDr3,r1,r2r3r1r22012-1-211/95ARM指令中的第2操作数常数#immed_8r由一个8位常数通过循环右移偶数位得到:0000

2、00000000000000000000000100100x000x000x000x128位常数循环右移10位000001001000000000000000000000000x040x800x000x00Rm,shift由Rm移位得到。移位不消耗额外时间,且Rm值不变。0LSLRnRm未0预LSR预桶形移位器处处理ASR理结果NRORALUCRdRRX2012-1-21桶形移位器的操作助记符功能表达式操作Y值LSL逻辑左移xLSLyX<>y#1~32orRsASR算术右移xASRy(signed)x>>Y#1~3

3、2orRs循环逻辑((unsigned)x>>RORxRORy#1~31orRs右移y

4、(x<<32-y))扩展循环(cflag<<31)RRXxRRXynone右移

5、((unsigned)x>>1)ADDR1,R1,R1,LSL#3;R1=R1+R1<<3SUBR1,R1,R2,LSRR3;R1=R1-R2>>R32012-1-213/95ARM机器指令编码格式ARM指令条件码cond操作码条件助记符标志含义0000EQZ=1相等1.所有的ARM0001NEZ=0不相等指令都可以条0010CS/HSC=1无符号数大于或等于0011CC/LOC=0无符号数小于件执行,而0100MIN

6、=1负数Thumb指令只0101PLN=0正数或零有B(跳转)0110VSV=1溢出指令具有条件0111VCV=0没有溢出执行功能。1000HIC=1,Z=0无符号数大于1001LSC=0,Z=1无符号数小于或等于2.如果指令不1010GEN=V有符号数大于或等于1011LTN!=V有符号数小于标明条件代码,1100GTZ=0,N=V有符号数大于将默认为无条1101LEZ=1,N!=V有符号数小于或等于件(AL)执行1110AL任何无条件执行(指令默认条件)1111NV任何从不执行(不要使用)5/95ARM处理器寻址方式寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方

7、式。ARM处理器具有几种基本寻址方式:1.寄存器寻址2.立即寻址3.寄存器间接寻址移位寻址、间接寻址、基址变址寻址、多寄存器寻址(块寻址)4.堆栈寻址5.相对寻址6/95寄存器寻址1.操作数存放在寄存器中;2.指令地址码字段给出寄存器编号(名);3.指令执行时直接取出寄存器值来操作;R20xAAMOVR1,R2R100xxA55A;R1<=R2SUBR0,R1,R2;R0<=R1-R22012-1-217/95立即寻址1.操作数包含在指令当中;2.指令地址码部分就是数据本身;3.取指时就取出了可立即使用的操作数;寄存器寻址MOVR0,#0xFF00;R0<=#0xFF00MOVR0,

8、#0xFF00从代码中获得数据R000xFxF5050SUBSR0,R0,#1;R0<=R0-1影响标志位10进制数:#21,#0d572进制数:#0b011002012-1-2116进制数:#0x3a0018/95寄存器移位寻址1.操作数存放在寄存器中;2.指令地址码字段给出寄存器编号(名)及移位表达式;3.指令执行时取出寄存器值并移位,再将结果作为源操作数;寄存器寻址MOVR0,R2,LSL#3;R0<=R2×8逻辑左移3位LSL、LSRR20x010x08ASRR00x5058ROR、RRXANDSR1,R1,R2,LSLR3影响标志位;R1<=R1and(R2<

9、间接寻址1.操作数存放在内存单元中;2.指令地址码字段给出[寄存器编号(名)];3.指令执行时根据寄存器值(指针)找到相应的存储单元;LDRR1,[R2];R1<=[R2]内存单元0x400000000xAAR20x40000000R000xxA55ASWPR1,R1,[R2];R1ó[R2]2012-1-2110/95基址变址寻址1.操作数存放在内存单元中;2.指令地址码字段给出[寄存器编号(名)]和偏移量;3.指令执行时将基址寄存器的内容与偏移量(<4

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

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

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