bootloader 内核 需要汇编程序来初始化,就是启动文件和对效率有一些要求的文件需要汇编代码 常用的ARM汇编分两种:1、ARM标准汇编,适合windows平台 2、GUN汇编,适合linux平台 汇编程序框架: .section .data <初始化的数据> .section .bss <未 ...
分类:
其他好文 时间:
2018-01-19 21:31:08
阅读次数:
166
文件名:start.S 反汇编文件名:start_elf.dis ...
分类:
其他好文 时间:
2017-11-27 01:16:10
阅读次数:
135
根据朱有鹏老师课程笔记整理而来: (汇编)指令是CPU机器指令的助记符,经过编译后会得到一串1 0组成的机器码,由CPU读取执行。 (汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。 两种不同风格的ARM指令 ...
分类:
其他好文 时间:
2017-11-14 21:23:22
阅读次数:
183
本教程的这一部分的先决条件是对ARM汇编的基本了解(在第一个教程系列“ ARM汇编基础 ”中有介绍)。在本章中,您将了解32位Linux环境中进程的内存布局。之后,您将学习堆栈和堆相关的内存损坏的基本原理,以及它们在调试器中的样子。 缓冲区溢出 堆栈溢出 堆溢出 摇摇欲坠的指针 格式字符串 本教程中 ...
分类:
系统相关 时间:
2017-11-02 20:02:39
阅读次数:
345
IMPORT ,定义表示这是一个外部变量的标号,不是在本程序定义的 EXPORT ,表示本程序里面用到的变量提供给其他模块调用的。 以上两个在汇编和C语言混合编程的时候用到 ENDP 表示PROC所定义的过程结束. (end procedure) ENDS 表示SEGMENT定义的段结束. (end ...
分类:
其他好文 时间:
2017-10-16 23:25:42
阅读次数:
176
转自http://blog.chinaunix.net/uid-13701930-id-336459.html 4.1 ARM汇编器所支持的伪指令 在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称 ...
分类:
其他好文 时间:
2017-10-07 11:59:28
阅读次数:
128
转载:http://blog.csdn.net/horizontalview/article/details/50773740 1.mov的用法 在ARM体系中,mov只能用于数据在寄存器之间的移动或者往寄存器中写入立即数。 格式如下:mov{条件}{s} 目的寄存器,源操作数 2.ldr的用法 L ...
分类:
其他好文 时间:
2017-09-28 20:00:51
阅读次数:
148
数据传送指令: MOV 两个寄存器之间传递。例 MOV r1,r0,将寄存器r0中的内容赋值给r1。 MVN 同MOV用法一样,区别是MOV是原值传递,而MVN是按位取反后传递。 算数运算指令: ADD SUB RSB ADC SBC RSC 逻辑指令: AND ORR EOR BIC BIC的用法 ...
分类:
其他好文 时间:
2017-09-09 22:34:57
阅读次数:
274
汇编指令分为指令和伪指令 指令:针对于CPU设计的指令。作用在CPU上。 伪指令:针对于编译器设计的指令。作用在编译器上,用来知道编译过程,经过编译后伪指令最终不会生成机器码。要知道,汇编指令是机器指令的助记符,最终要通过编译器翻译成CPU能直接识别的由01组成的代码(机器码)。 LDR/STR架构 ...
分类:
其他好文 时间:
2017-09-09 19:41:29
阅读次数:
152
在ARM架构下, 数据从内存到CPU之间的移动只能通过LDR/STR指令来完成.而MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中,并且数据的长度不能超过8位 LDR,STR 的第一操作数是目标寄存器,第二操作数是内存地址, LDR 内存 --> 寄存器; STR 寄存器 --> 内存 内 ...
分类:
其他好文 时间:
2017-08-24 14:54:08
阅读次数:
175