arm汇编push指令
时间: 2023-10-19 07:05:56 浏览: 205
ARM汇编语言中的PUSH指令用于将多个寄存器的值压入栈中。它的语法如下:
PUSH {register_list}
其中,register_list是一个由逗号分隔的寄存器列表,表示要压入栈中的寄存器。
例如,要将R0、R1和R2的值压入栈中,可以使用以下指令:
PUSH {R0, R1, R2}
相关问题
ARM汇编的指令有哪些
### 回答1:
ARM汇编指令有:ADD,SUB,MOV,MVN,CMP,AND,ORR,EOR,MUL,MLA,UMULL,UMLAL,LDR,STR,B,BL,BX,BLX,SWI,RSB,ADC,SBC,RSC,LSL,LSR,ASR,ROR,CLZ,CMN,TEQ,LDA,STM,LDM,SWP,SWPB,PUSH,POP,BKPT,SMLAL,SMULL,QADD,QSUB,QDADD,QDSUB,SMULW,SMLAW,SMLALBB,SMLALBT,SMLALTB,SMLALTT,SMULBB,SMULBT,SMULTB,SMULTT,SMLABB,SMLABT,SMLATB,SMLATT,SMULWB,SMUAWB,SMULWT,SMUAWT,SMLALBB,SMLALBT,SMLALTB,SMLALTT,SMLAWB,SMLAWT,SMLSD,SMLSLD,SMMLA,SMMLS,SMMUL,SMUAD,SMUSD,SMULXY,SMLALXY,SMLSLXY,SMMLAR,SMMLSR,SMMULR,SMUADX,SMUSDX,SMLA,SMLS,SMUL,SMUAD,SMUSD,SMULW,SMLAW,SMULX,SMLALX,SMLSLX,SMMLA,SMMLS,SMMUL,SMUAD,SMUSD,SMULW,SMLAW,SMULX,SMLALX,SMLSLX,SMMLA,SMMLS,SMMUL,SMUAD,SMUSD,SMULW,SMLAW,SMULX,SMLALX,SMLSLX。
### 回答2:
ARM汇编指令是一种低级的程序语言,用于编写针对ARM架构的程序。以下是一些常见的ARM汇编指令:
1. 数据传输指令:用于将数据从一个位置传输到另一个位置的指令,如LDR(加载寄存器)、STR(存储寄存器)等。
2. 算术和逻辑指令:用于执行算术和逻辑操作的指令,如ADD(加法)、SUB(减法)、AND(按位与)等。
3. 分支和跳转指令:用于执行条件跳转或无条件跳转的指令,控制程序的流程,如B(无条件分支)、BEQ(等于则分支)等。
4. 条件执行指令:在特定条件下执行指定操作的指令,如CMP(比较)、BEQ(等于则分支)等。
5. 位操作指令:用于对寄存器中的位进行操作的指令,如LSL(逻辑左移)、LSR(逻辑右移)等。
6. 协处理器指令:用于执行协处理器的指令,如MRC(将协处理器寄存器的内容读入到ARM寄存器)、MCR(将ARM寄存器的内容写入到协处理器寄存器)等。
7. 栈操作指令:用于对栈的操作的指令,如PUSH(将数据压入栈)、POP(从栈中弹出数据)等。
8. 系统指令:用于执行特定的系统级操作的指令,如SWI(软中断)等。
需要注意的是,ARM汇编指令的具体集合和语法可能因ARM架构的不同而有所不同。
arm 汇编语言 push
"push" 是 ARM 汇编语言中的一个指令,用于将数据压入栈中。它的语法如下:
```
push {register_list}
```
其中,`register_list` 是要被压入栈中的寄存器列表,可以包含一个或多个寄存器,用逗号分隔。例如,要将 r0 和 r1 寄存器的值压入栈中,可以使用以下指令:
```
push {r0, r1}
```
执行这条指令后,栈指针会减少 8 个字节(因为压入了两个 32 位的寄存器值),同时 r0 和 r1 寄存器的值也会被压入栈中。
阅读全文