3.1 程序编码 1.计算机系统使用了多种不同形式的抽象,对于机器级编程来说,两种抽象尤为重要: 指令集体系结构(ISA):定义了处理器状态、指令的格式,以及每条指令对状态的影响 机器级程序使用的存储器地址是虚拟地址:提供的存储器模型看上去是一个非常大的字节数组 2.反汇编器使用的指令命名规则与GC ...
分类:
其他好文 时间:
2018-02-03 19:01:35
阅读次数:
329
++ 不论是在查资料还是编译运行时总能碰到这个库那个链接的问题,所以我认为有必要再回去看看第七章 ++ 教材学习内容总结 静态链接过程 命令: 可重定向目标文件&可执行目标文件 符合和符号表 任何带有static属性声明的全局变量或者函数都是模块私有的。 符号表是由汇编器构造的,使用编译器输出到汇编 ...
分类:
其他好文 时间:
2017-12-23 19:02:11
阅读次数:
221
编译和运行 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了了便于理解我们可以 ...
分类:
其他好文 时间:
2017-12-23 11:51:35
阅读次数:
158
一.什么是Smali? Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种dex格式文件的汇编器,反汇编器。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等) 二.smali的语法 1.原始类型 ...
分类:
其他好文 时间:
2017-12-03 12:51:06
阅读次数:
202
问题: 第一章hello world是怎样工作的?预处理器、编译器、汇编器、链接器是怎样把.c 的源程序分别修改为.i、.s.、.o的程序的?第二章反码和补码在作用上有什么区别?第三章直到型循环和当行循环有什么异同?第四章Y86指令集体系结构是怎样的?第五章循环的低效率是怎样产生的?第六章高速缓存有 ...
分类:
其他好文 时间:
2017-11-19 16:36:35
阅读次数:
130
实验:ELF文件格式与程序的编译链接 一、可执行文件的创建 从源代码到可执行程序所要经历的过程概述: 源代码(.c .cpp .h)经过c预处理器(cpp)后生成.i文件,编译器(cc1、cc1plus)编译.i文件后生成.s文件,汇编器(as)汇编.s文件后生成.o文件,链 ...
分类:
系统相关 时间:
2017-11-19 12:32:08
阅读次数:
193
javap javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作。 用法 语法: javap [ 命令选项 ] class. . . javap命令用于解析类文件。其输出取决于所用的命令选项。若没有使用命令选项, ...
分类:
编程语言 时间:
2017-11-13 21:25:23
阅读次数:
252
第一篇 基础原理篇 1.2 程序是如何运行的: 首先, 进行编程,编程需要编程语言,对绝大部分人来说,使用的编程语言称为高级程序设计语言,如,c,c++,java等。但是计算机不认识高级语言编写的程序,编好的程序需要进行编译变成计算机能够识别的机器语言程序,而这需要编译器和汇编器的帮助,其次,机器语 ...
分类:
其他好文 时间:
2017-10-30 23:58:35
阅读次数:
371
顶层目录下的config.mk文件主要完成如下功能的配置:1、确定生成可执行文件过程中需要的各种工具,如编译器(arm-linux-gcc)、连接器(arm-linux-ld)、反汇编器(arm-linux-objdump)等2、确定CPU、板相关的配置文件,存在于各个目录下的config.mk3、 ...
分类:
其他好文 时间:
2017-10-16 01:58:01
阅读次数:
194
预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E,对应于预处理命令cpp; 编译器:将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S,对应于编译命令 cc –S; 汇编器:将.s 文件转化成 .o文件,使用的gcc 命令是:gcc –c,对应于汇编命令是 as ...
分类:
其他好文 时间:
2017-10-13 00:38:46
阅读次数:
191