#表明这个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,
中国移动科普:为什么手机移动网络要叫 “蜂窝移动网络”C语言---------俄罗斯方块(源代码)javascript事件(零基础详解)python实现vlookup_干货一:怎么在python里面实现vlookupC语言中数据的存储List集合中的常见面试题以及简单思路第十一届蓝桥杯python大学组国赛真题计算机科班出身和培训出身有什么区别?Java开发2020年最新常见面试题整理仿抖音小球刷新进度条(两个小球转动),代码很简单