x86汇编语言——基本概念

  1. 处理器的设计者用某些指示处理器所进行的操作,这称为指令(Instruction),或者叫机器指令。指令由操作和操作数构成,但也有小部分指令仅有操作码,面不含操作数。

  2. 对于 intel 处理器来说,如果访问闪存中的一个字,那么它规定高字节位于高地址部分,低字节位于低地址部分,这称为低端字节序(Little Endian)。

  3. 指令也就是传送指令:
    第一种操作数是寄存器;
    第二种操作数是直接包含在指令中,紧跟在操作码之后,可以立即从指令中取得,
    所以叫立即数(Imediate Operand);
    第三种操作数也可以是数的地址单元。

  4. 作为C或C++开发者,需要理解内存、地址和指令是如何在底层工作的。在高级语言层次上,很多编程错误否容易被识别。因此,需要深入到程序内部,才能找出程序不工作的原因。

  5. 汇编语言不是可移植的,因为它是为特定处理器系列设计的。目前广泛使用的有多种不同的汇编语言,每一种都基于一个处理器系列。

  6. 汇编语言的规则是以目标处理器及其机器语言的物理局限性为基本的,汇编语言可以很容易地绕过高级语言的限制性特征。汇编语言可以访问所有的内存地址,但这种自由的代价也很高,需要花费大量的时间进行调试。

  7. Level 1~Level 4
    Level 1表示VM1,计算机数字逻辑硬件表示为Level 1机器,其上是Level 2,称为指令集架构(ISA, Instruction Set Architecture)。这是用户可以编程的第一个层次,尽管这种程序包含的是被称为机器语言的二进制数值。
    指令集架构(Level 2)计算机芯片制造商在处理器内部设计一个指令集来实现基本操作,如传送、加法或乖法。这个指令集也被称为机器语言。每一个机器语言指令或者直接在机器硬件上执行,或者由嵌入到微处理器芯片的程序来执行,该程序被称为微程序。
    汇编语言(Level 3)在ISA层,编程语言提供了一个翻译层,来实践大规模软件开发。汇编语言出现在Level3,使用短助记符,如ADD、USB和MOV,易于转换到ISA层。汇编语言程序在执行之前要全部翻译(汇编)为机器语言。
    高级语言(Level 4) Level4是高级编程语言,如C、C++和Java。这些语言程序所能含的语句功能强大,并翻译为多条汇编语言指令。比如,查看C++编译器生成的列表文件输出,就可以看到这样的翻译。汇编语言代码由编译器自动汇编为机器语言。

  8. 数字数据表示术语 用精确的术语描述内存中和显示屏上的数字及字符是非常重要的。比如,在内存中用单字节保存十进制数65,形式为 0100 0001 。调试程序可能会将该字节显示为”41“,这个数字的十六进制形式。如果这个字节复制到显存中,则显示屏上显示字母‘A’,因为在ASCII码中, 0100 0001 代表的是字母A。由于数字的解释可以依赖于它的上下文,因此,下面为每个数据表示类型分配一个特定的名称:
    二进制整数是指,以其原始格式分配 一个内存中的整数,以备用于计算。二进制整数保存形式为8位的倍数(如8、16、32或64)。
    数字字符串是一串ASCII字符,例如”123“或”65“。这是一种简单的数字表示法。

  9. 布尔表达式
    主要是以下3个的优先级问题:
    这里写图片描述
第Ο章 写在前面...................................................................................................................2 第一章汇编语言简介.............................................................................................................3 第二章认识处理器.................................................................................................................4 2.1 寄存器........................................................................................................................4 2.2 使用寄存器................................................................................................................6 第三章操作内存...................................................................................................................12 3.1 实模式......................................................................................................................12 3.2 保护模式..................................................................................................................16 3.3 操作内存..................................................................................................................19 3.4 串操作......................................................................................................................21 3.5 关于保护模式中内存操作的一点说明.................................................................22 3.6 堆栈.........................................................................................................................23 本章小结.........................................................................................................................25 第四章利用子程序与中断...................................................................................................25 4.1 子程序......................................................................................................................25 4.2 中断..........................................................................................................................31 第五章编译优化概述...........................................................................................................34 5.1 循环优化:强度削减和代码外提.........................................................................36 5.2 局部优化:表达式预计算和子表达式提取.........................................................37 5.3 全局寄存器优化.....................................................................................................38 5.4 x86体系结构上的并行最大化和指令封包..........................................................40 5.5 存储优化..................................................................................................................42 第六章 Linux X86汇编程序设计........................................................................................46 6.1编译和链接...............................................................................................................46 6.2基本示例...................................................................................................................46 第七章 X86汇编指令集汇总...............................................................................................47 一.数据传输指令............................................................................................................47 二、算术运算指令.........................................................................................................49 三、逻辑运算指令.........................................................................................................49 四、串指令.....................................................................................................................50 五、程序转移指令.........................................................................................................50 六、伪指令.....................................................................................................................52 七、寄存器.....................................................................................................................52 八、位操作指令,处理器控制指令.............................................................................52 九、FPU instructions......................................................................................................54 第八章 GCC内联汇编基础..................................................................................................54 1. GCC汇编格式...........................................................................................................55 2.内联汇编基本形式......................................................................................................56 3. 扩展形式内联汇编....................................................................................................56 4. 深入constra................................................................................................................59 5.结束语..........................................................................................................................63
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值