欢迎来到天天文库
浏览记录
ID:62073103
大小:71.00 KB
页数:24页
时间:2021-04-16
《ARM指令集详解(超详细带实例).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理勿做商业用途算术和逻辑指令ADC:带进位的加法(Additionwith Carry)ADC{条件}{S}〈dest>,〈op1>,2、,R6,R10;加第三个字,带进位ADCSR3,R7,R11;加高端的字,带进位如果如果要做这样的加法,不要忘记设置S后缀来更改进位标志。 ADD:加法(Addition)ADD{条件}{S}〈dest>,dest=op_1+op_2ADD 将把两个操作数加起来,把结果放置到目的寄存器中。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:个人收集整理勿做商业用途ADDR0,R1,R2;R0=R1+R2ADDR0,R1,#256;R0=R1+256ADDR0,R2,R3,LSL#1;R0=R2+3、(R3<〈1)加法可以在有符号和无符号数上进行。 AND:逻辑与(logical AND)AND{条件}{S}4、}{S},5、〈dest>,dest=op_1EORop_2EOR 将在两个操作数上进行逻辑异或,把结果放置到目的寄存器中;对反转特定的位有用。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:EORR0,R0,#3;反转R0中的位0和1EOR真值表(二者不同则结果为1):Op_1Op_2结果000011101个人收集整理勿做商业用途110 MOV:传送(Move)MOV{条件}{S}〈dest〉,6、指定相同的寄存器来实现NOP指令的效果,你还可以专门移位一个寄存器:MOVR0,R0;R0=R0.。.NOP指令MOVR0,R0,LSL#3;R0=R0*8如果R15是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到R15:MOVPC,R14;退出到调用者MOVSPC,R14;退出到调用者并恢复标志位(不遵从32-bit体系) MVN:传送取反的值(Move Negative)MVN{条件}{S}7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
2、,R6,R10;加第三个字,带进位ADCSR3,R7,R11;加高端的字,带进位如果如果要做这样的加法,不要忘记设置S后缀来更改进位标志。 ADD:加法(Addition)ADD{条件}{S}〈dest>,dest=op_1+op_2ADD 将把两个操作数加起来,把结果放置到目的寄存器中。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:个人收集整理勿做商业用途ADDR0,R1,R2;R0=R1+R2ADDR0,R1,#256;R0=R1+256ADDR0,R2,R3,LSL#1;R0=R2+
3、(R3<〈1)加法可以在有符号和无符号数上进行。 AND:逻辑与(logical AND)AND{条件}{S}4、}{S},5、〈dest>,dest=op_1EORop_2EOR 将在两个操作数上进行逻辑异或,把结果放置到目的寄存器中;对反转特定的位有用。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:EORR0,R0,#3;反转R0中的位0和1EOR真值表(二者不同则结果为1):Op_1Op_2结果000011101个人收集整理勿做商业用途110 MOV:传送(Move)MOV{条件}{S}〈dest〉,6、指定相同的寄存器来实现NOP指令的效果,你还可以专门移位一个寄存器:MOVR0,R0;R0=R0.。.NOP指令MOVR0,R0,LSL#3;R0=R0*8如果R15是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到R15:MOVPC,R14;退出到调用者MOVSPC,R14;退出到调用者并恢复标志位(不遵从32-bit体系) MVN:传送取反的值(Move Negative)MVN{条件}{S}7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
4、}{S},5、〈dest>,dest=op_1EORop_2EOR 将在两个操作数上进行逻辑异或,把结果放置到目的寄存器中;对反转特定的位有用。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:EORR0,R0,#3;反转R0中的位0和1EOR真值表(二者不同则结果为1):Op_1Op_2结果000011101个人收集整理勿做商业用途110 MOV:传送(Move)MOV{条件}{S}〈dest〉,6、指定相同的寄存器来实现NOP指令的效果,你还可以专门移位一个寄存器:MOVR0,R0;R0=R0.。.NOP指令MOVR0,R0,LSL#3;R0=R0*8如果R15是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到R15:MOVPC,R14;退出到调用者MOVSPC,R14;退出到调用者并恢复标志位(不遵从32-bit体系) MVN:传送取反的值(Move Negative)MVN{条件}{S}7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
5、〈dest>,dest=op_1EORop_2EOR 将在两个操作数上进行逻辑异或,把结果放置到目的寄存器中;对反转特定的位有用。操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:EORR0,R0,#3;反转R0中的位0和1EOR真值表(二者不同则结果为1):Op_1Op_2结果000011101个人收集整理勿做商业用途110 MOV:传送(Move)MOV{条件}{S}〈dest〉,6、指定相同的寄存器来实现NOP指令的效果,你还可以专门移位一个寄存器:MOVR0,R0;R0=R0.。.NOP指令MOVR0,R0,LSL#3;R0=R0*8如果R15是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到R15:MOVPC,R14;退出到调用者MOVSPC,R14;退出到调用者并恢复标志位(不遵从32-bit体系) MVN:传送取反的值(Move Negative)MVN{条件}{S}7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
6、指定相同的寄存器来实现NOP指令的效果,你还可以专门移位一个寄存器:MOVR0,R0;R0=R0.。.NOP指令MOVR0,R0,LSL#3;R0=R0*8如果R15是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到R15:MOVPC,R14;退出到调用者MOVSPC,R14;退出到调用者并恢复标志位(不遵从32-bit体系) MVN:传送取反的值(Move Negative)MVN{条件}{S}7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
7、或一个立即值装载一个值到目的寄存器.不同之处是在传送之前位被反转了,所以把一个被取反的值传送到一个寄存器中。这是逻辑非操作而不是算术操作,这个取反的值加1才是它的取负的值:MVNR0,#4;R0=—5MVNR0,#0;R0=—1 ORR:逻辑或(logical OR)ORR{条件}{S}〈dest>,dest=op_1ORop_2OR 将在两个操作数上进行逻辑或,把结果放置到目的寄存器中;对设置特定的位有用.操作数1是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即值:ORRR0,R0,#3;设置R0中位
8、0和1OR真值表(二者中存在1则结果为1):Op_1Op_2结果000011101111 RSB:反向减法(Reverse Subtraction)RSB{条件}{
此文档下载收益归作者所有