#表明这个main函数是被程序导出的
EXPORT main
#main为函数的名称IDA Pro 能自动识别源程序中所有的函数以及名称
main
#IDA识别出的栈变量
var_C = -0xC

var_8 = -8
#堆栈寻址指令 把寄存器的值压入堆栈
STMFD SP1,{R11,LR}
#SP寄存器的值加上4 赋给R11寄存器
ADD   R11,SP,#4
#SP寄存器的值减去8赋给SP寄存器
SUB      SP ,SP,#8
#写寄存器指令 把R0寄存器中的值保存到栈变量var_8中
STR      R0, {R11,#var_8}
#写寄存器指令 把R1寄存器中的值保存到栈变量var_C中
STR      R1, {R11,#var_C}
#读寄存器指令 把(aHelloArm-0x8300)计算出的地址放入到R3寄存器中
LDR      R3, =(aHelloArm-0x8300)
#PC寄存器值加上R3寄存器的值 放入到R3寄存器
ADD      R3, PC,R3  
#把R3寄存器的值放到R0寄存器中
MOV   R0, R3  
#类似于调用函数功能  puts为标准输入输出函数中printf的实现
BL    puts
#把0赋值给R3寄存器
MOV      R3, #0
#把R3寄存器中的值赋值给R0寄存器
MOV      R0, R3
#R11寄存器的值减去4 赋给SP寄存器
SUB   SP, R11,#4  
#堆栈寻址指令 从堆栈中恢复寄存器的值
LDMFD SP!,{R11,PC}

#include<stdio.h>

int main(int argc, char * argv[]){

   printf("Hello Arm !\n");

   return 0;

}

技术
©2019-2020 Toolsou All rights reserved,
html+css个人简历/网页界面【超详细】Java实现学生信息管理系统java 数组下标 变量_Java基础语法:数组实验四 自动化测试工具-软件测试C++之string的compare用法2022蓝桥杯JavaB组省赛试题docker镜像存储在哪里opencv-python傅里叶变换以及逆变换C语言——qsort函数计算机一级多分,多少分能过一级计算机考试