#表明这个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,
份额已超宁德时代!LG化学确认将分拆电池业务部门Qt学习7——模态和非模态对话框数字滚动抽奖小程序vue 监听 Treeselect 选择项的改变 dedecms网站被黑 劫持到其他网站如何解决内存溢出和内存泄漏的区别、产生原因以及解决方案SQL Server 数据库词汇表1190 反转每对括号间的子串 leetcode蝗灾虫群上亿只很少发生碰撞 蝗虫要成自动驾驶功臣最优化方法总结:公式解、数值优化、求解思想