![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机体系结构笔记
文章平均质量分 96
WuDL.
这个作者很懒,什么都没留下…
展开
-
12. 重定位及动态链接
12.1 符号的重定位1. 重定位步骤2. 重定位信息3. 重定位操作举例(1)源文件(2)链接结果(3)R_386_PC32的重定位main.o重定位前R_386_PC32的重定位方式(4) R_386_32的重定位重定位前R_386_32的重定位方式swap.o重定位重定位后12.2 可执行文件的加载1. 加载方法(1)通过调用exe...原创 2018-12-07 17:28:34 · 1788 阅读 · 0 评论 -
9. x86-64指令系统
9.1 x86-64指令系统概述背景Intel最早推出的64位架构是基于超长指令字VLIW技术的 IA-64体系结构,Intel 称其为显式并行指令计算机EPIC( Explicitly Parallel Instruction Computer)。安腾和安腾2分别在2000年和2002年问世,它们是IA-64体 系结构的最早的具体实现,因为是一种全新的、与IA-32不 兼容的架构,...原创 2018-12-01 21:38:09 · 3397 阅读 · 0 评论 -
8. 复杂数据类型的机器级表示
8.1 数组和指针类型的分配和访问1. 数组的分配和访问(1)数组元素在内存的存放和访问定义一个具有4个元素的静态存储型short 数据类型数组A,可以写成“static short A[4];”第i(0≤i≤3)个元素的地址计算公式为**&A[0]+2*i**;假定数组A的首地址存放在EDX中,i 存放在ECX中, 现要将A[i]取到AX中,则所用的汇编指令是: movw (...原创 2018-12-01 18:40:43 · 677 阅读 · 0 评论 -
6.1 IA-32指令类型(一)
IA-32中的主要指令类型(1)传送指令通用数据传送指令MOV:一般传送,包括movb、movw和movl等MOVS:符号扩展传送,如movsbw、movswl等MOVZ:零扩展传送,如movzwl、movzbl等XCHG:数据交换PUSH/POP:入栈/出栈,如pushl,pushw,popl,popw等地址传送指令LE...原创 2018-11-27 21:24:52 · 3458 阅读 · 0 评论 -
11. 符号和符号解析
11.1 符号及符号表1. 符号的定义和引用局部变量temp分配在栈中,不会在过程外被引用,因此不是符号定义2. 连接符号的类型(1)三种类型每个可重定位目标模块m都有一个符号表,它包含了在m中定义和引用的符号,有三种链接器符号:类型特征举例Global symbols(模块内部定义的全局符号)由模块m定义并能被其他模块引用的符号。例如,非static C函数...原创 2018-12-04 21:35:00 · 5884 阅读 · 6 评论 -
5. IA-32指令系统概述
5.1 程序转换概述1.“指令”的概念(1) 计算机中的指令有微指令、机器指令和伪(宏)指令之分机器指令处于硬件和软件的交界面 (相当于一个菜谱指定的一个完整做菜过程)微指令是微程序级命令,属于硬件范畴 (相当于洗、切、煮、炒等做菜“微过程“ )伪指令是由若干机器指令组成的指令序列,属于软件范畴 (相当于由多个菜谱合成一个”大菜“的过程)汇编指令是机器指...原创 2018-11-26 22:45:19 · 2004 阅读 · 0 评论 -
7. C语言语句的机器级表示
7.1 过程调用的机器级表示1. 可执行文件的存储器映像2. 调用过程3. IA-32的寄存器使用约定4. 过程调用过程中栈和栈帧的变化(Q为被调用过程)5. 过程(函数)的结构6. 入口参数的位置7. 过程调用参数传递举例例一:传值&传地址程序一:按地址传参数swap(&a,&b)leal 直接装入有效地址程序二:按值传参数sw...原创 2018-11-29 17:37:26 · 1118 阅读 · 0 评论 -
6.2 IA-32指令类型(二)
6.4 IA-32中的控制转移指令1. 常用控制转移指令2. 类别根据单个标志的值转移按无符号整数比较转移按带符号整数比较转移3. 例子:程序的机器级表示与执行问题描述:(1) subl $1, %edx指令的执行结果(2) cpml %edx,%eax指令的执行结果(3) jbe .L3指令的执行结果总结正确的做法是将参数len声明 为int型。Why...原创 2018-11-28 21:14:50 · 1010 阅读 · 1 评论 -
1. 计算机系统概述
1.1 为什么要学习计算机系统基础1.用系统思维分析问题2.什么是计算机系统3.计算机系统基础内容提要1.2 计算机系统基本组成与基本功能1.计算机发展史(1) 第1台通用电子计算机 1946年,第1台通用电子计算机ENIAC诞生 (Electronic Numerical Integrator And Computer 电子数字...原创 2018-11-23 14:22:15 · 729 阅读 · 0 评论 -
3. 运算电路基础
3.1 数字逻辑电路基础1. 布尔代数0和1分别代表逻辑值“假”和“真”最基本的逻辑运算有:与(AND)或(OR)非(NOT)“ • ” ( “ ∧” )“ + ” ( “ ∨ ” )“ ¯ ” ( “ ﹁ ” )任何一种逻辑表达式都可写成 这三种基本运算的逻辑组合例如,异或(XOR)运算的 逻辑表达式为: A⊕B=A•B‾+A‾•BA⊕B=A• ...原创 2018-11-24 20:32:30 · 4736 阅读 · 0 评论 -
4. 乘除运算及浮点数运算
4.1 整数乘法运算1. 整数乘法通常,高级语言中两个n位整数相乘得到的结果通常也是一个n位整数,即结果只取2n位乘积中的低n位。–例如,在C语言中,参加运算的两个操作数的类型和结 果的类型必须一致,如果不一致则会先转换为一致的 数据类型再进行计算。Q: 在计算机内部,一定有 x2≥0x^2≥0x2≥0 吗?A: 若x是带符号整数,则不一定! 如x是浮点数,则一定! 例如,当...原创 2018-11-25 22:26:09 · 10915 阅读 · 1 评论 -
2.1数据的表示和存储(一)
2.1 数制和编码1.信息的二进制编码机器级数据分两大类数值数据:无符号整数、带符号整数、浮点数(实数)非数值数据:逻辑数(包括位串)、西文字符和汉字计算机内部所有信息都用二进制(即:0和1)进行编码用二进制编码的原因制造二个稳定态的物理器件容易(电位高/低,脉冲有/无,正/负极)二进制编码、计数、运算规则简单正好与逻辑命题真/假对应,便于逻辑运算可方便地用逻辑电...原创 2018-11-22 20:15:08 · 796 阅读 · 0 评论 -
2.2 数据的表示和存储(二)
2.4 浮点数的编码表示1. 浮点数类型C语言声明操作数类型存储长度(位)float单精度浮点数32double双精度浮点数64long double扩展精度浮点数80 / 962. 浮点数的表示(1)浮点数(Floating Point)的表示范围以下面的32位浮点数格式的规格化数为例,计算表示范围①第0位数符S;②第1~8位为...原创 2018-11-23 21:01:43 · 2779 阅读 · 0 评论 -
10. 链接概述和目标文件格式
10.1 可执行文件生成概述一个典型程序的转换处理过程1. 预处理(1) 预处理命令 $gcc -E hello.c -o hello.i $cpp hello.c > hello.i(2) 处理源文件中以“#”开头的预编译指令 – 删除“#define”并展开所定义的宏 – 处理所有条件预编译指令,如“#if”,“#ifdef”, “#endif”等 – 插入头...原创 2018-12-03 21:33:46 · 846 阅读 · 0 评论