第二章ARM指令寻址方式及指令分类ARM指令集概要介绍ARM指令集语法格式<opcode>{<cond>}{s}<Rd>,<Rn>{,operand2}说明<>内的项是必需的,{}内的项是可选的Opcode:指令助记符,如LDR,STR,ADD等Cond:执行条件,如EQ,NE,LE等等S:是否影响CPSR寄存器的值,书写时影响CPSR,否则不影响Rd:目标寄存器Rn:第一个操作数的寄存器Operand2:第二个操作数ARM指令集概要介绍(续)ARM指令集的编码格式ARM指令集概要介绍(续)简单举例LDR R0,[R1] ;读取R1地址上的存储器单元内容,执行条件ALBEQ ADDR ;跳转指令,执行条件EQ,如果相等则跳转到ADDR去执行ADDS R1,R1,#1 ;加法指令,带有S,影响CPSR寄存器SUBNES RI,R1,#0XD ;条件执行减法运算(NE),带有S,影响CPSR灵活的第二操作数在ARM指令中,灵活的使用第二个操作数能提高代码效率第二个操作数包括三种形式立即数方式寄存器方式寄存器移位方式灵活的第二操作数(续)立即数方式例:MOVR1,#4寄存器方式(Rm)操作数为寄存器的数值例:SUB R1,R1,R2LDRR0,[R1],-R2 ;R0[R1],R1=R1-R2寄存器移位方式例:MOVR1,R2,LSR#4灵活的第二操作数(续)立即数方式立即数有一个8位的常数循环右移偶数位得到。<immediate>=immed_8循环右移(2*rotate_imm)immed_8:一个8位的常数rotate_imm:一个4位二进制数合法数:0X3FC,0XF0000000不合法数:0X1FE,0X101条件码标志ARM指令的条件码域{<cond>}几乎所有的ARM指令可包含一条件码域,(续)程序状态寄存器(CPSR/SPSR)313029282776543210NZCVQIFTM4M3M2M1M0条件标志位模式控制位中断禁止位T控制位Q控制位ARM指令集概要介绍(续)条件码标志N结果是带符号数,若为负数,N=0;否则,N=1Z若结果为0,则置1,否则清0C加法产生进位,则C=1,否则为0减法产生借位,则C=0,否则为1移位操作时,C为移出值的最后一位V带符号数的加法/减法指令,结果溢出时V=1
cx(3)-指令格式、传送、算术运算指令 来自淘豆网m.daumloan.com转载请标明出处.