x86汇编语言:从实模式到保护模式
作者:李忠、王晓波、 余洁
出版社:电子工业出版社
ISBN:9787121187995
VIP会员免费
(仅需0.8元/天)
¥ 22.4
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
《汇编语言》第二版PDF 王爽 评分:
课件 王爽 著-清华大学出版社 第1章 基础知识 1.1 机器语言 1. 9 数据总线 1.2 汇编语言的产生 1.10 控制总线 1.3 汇编语言的组成 1.11 内存地址空间(概述) 1.4 存储器 1.12 主板 1.5 指令和数据 1.13 接口卡 1.6 存储单元 1.14 各类存储器芯片 1.7 CPU对存储器的读写 1.15 内存地址空间 1.8 地址总线 引言 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。 在本章中,对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。 引言 当课程进行到需要补充新的基础知识(关于编程结构或其他的)时候,再对相关的基础知识进行介绍和探讨。 本书的原则是,以后用到的知识,以后再说。 引言 汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活的控制系统进行工作。 1.1 机器语言 机器语言是机器指令的集合。 机器指令展开来讲就是一台机器可以正确执行的命令。 1.1 机器语言 指令:01010000 (PUSH AX) 电平脉冲: 1.1 机器语言 以后我们提到的计算机是指由CPU 和其他受CPU 直接或间接控制的芯片、器件、设备组成的计算机系统; 比如我们最常见的PC 机。 1.1 机器语言 程序员们将 0、1 数字编程的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。 示例 应用8086CPU完成运算: S = 768 + 12288 – 1280 1.1 机器语言 S = 768 + 12288 - 1280 机器码: 101100000000000000000011 000001010000000000110000 001011010000000000000101 假如将程序错写成以下这样,请找处错误: 101100000000000000000011 000001010000000000110000 000101101000000000000101 1.1 机器语言 在显示器上输出“welcome to masm”。 机器码 看到这样的程序,你会有什么感想? 如果程序里有一个“ 1 ”被误写为“ 0 ”,又如何去查找呢? 1.2 汇编语言的产生 汇编语言的主体是汇编指令。 汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 汇编指令是机器指令的助记符。 1.2 汇编语言的产生 机器指令: 1000100111011000 操作:寄存器BX的内容送到AX中 汇编指令:MOV AX,BX 这样的写法与人类语言接近,便于阅读和记忆。 寄存器 寄存器:简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。 AX是其中一个寄存器的代号, BX是另一个寄存器的代号。 更详细的内容我们在以后的课程中将会讲到。 1.2 汇编语言的产生 计算机能读懂的只有机器指令,那么如何让计算机执行程序员用汇编指令编写的程序呢? 用汇编语言编写程序的工作过程 1.3 汇编语言的组成 汇编语言由以下3类组成: 1、汇编指令(机器码的助记符) 2、伪指令 (由编译器执行) 3、其它符号(由编译器识别) 汇编语言的核心是汇编指令,它决定了汇编语言的特性。 1.4 存储器 CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据。 指令和数据在存储器中存放,也就是平时所说的内存。 1.4 存储器 在一台PC机中内存的作用仅次于CPU。 离开了内存,性能再好的CPU也无法工作。 1.4 存储器 磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。 1.5 指令和数据 指令和数据是应用上的概念。 在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。 1.5 指令和数据 二进制信息: 1000100111011000 ─> 89D8H (数据) 1000100111011000 ─> MOV AX,BX (程序) 1.6 存储单元 存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号; 例如: 一个存储器有128个存储单元, 编号从0~127。 如右图示: 1.6 存储单元 对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte): 1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB 磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位。 1.7 CPU对存储器的读写 CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互: 存储单元的地址(地址信息) 器件的选择,读或写命令(控制信息) 读或写的数据(数据信息) 1.7 CPU对存储器的读写 那么CPU是通过什么将地址、数据和控制信息传到存储芯片中的呢? 电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。 1.7 CPU对存储器的读写 在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。 物理上:一根根导线的集合; 逻辑上划分为: 地址总线 数据总线 控制总线 图示 1.7 CPU对存储器的读写 总线在逻辑上划分的图示: 1.7 CPU对存储器的读写 CPU在内存中读或写的数据演示: 读演示 写演示 从上面我们知道CPU是如何进行数据读写的。可是我们如何命令计算机进行数据的读写呢? 1.7 CPU对存储器的读写 1.7 CPU对存储器的读写 1.7 CPU对存储器的读写 对于8086CPU,下面的机器码能够完成从3号单元读数据: 机器码: 101000000000001100000000 含义:从3号单元读取数据送入寄存器AX CPU接收这条机器码后将完成上面所述的读写工作。 1.7 CPU对存储器的读写 机器码难于记忆,用汇编指令来表示,情况如下: 机器码:101000000000001100000000 对应的汇编指令:MOV AX,[3] 含义:传送3号单元的内容到AX 1.8 地址总线 CPU是通过地址总线来指定存储单元的。 地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。 1.8 地址总线 地址总线发送地址信息演示 1.8 地址总线 1.8 地址总线 一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。 这样的CPU最多可以寻找2的N次方个内存单元。 1.9 数据总线 CPU与内存或其它器件之间的数据传送是通过数据总线来进行的。 数据总线的宽度决定了CPU和外界的数据传送速度。 1.9 数据总线 我们来分别看一下它们向内存中写入数据89D8H时,是如何通过数据总线传送数据的: 8088CPU数据总线上的数据传送情况 8086CPU数据总线上的数据传送情况 1.9 数据总线 8位数据总线上传送的信息 1.9 数据总线 16位数据总线上传送的信息 1.10 控制总线 CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制线的集合。 有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。 所以,控制总线的宽度决定了CPU对外部器件的控制能力。 控制总线上发送的控制信息 1.10 控制总线 1.10 控制总线 前面所讲的内存读或写命令是由几根控制线综合发出的: 其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据; 有一根名为写信号输出控制线负责由CPU向外传送写信号。 1.1节~1.10节 小结 (1)汇编指令是机器指令的助记符,同机器指令一一对应。 (2)每一种CPU都有自己的汇编指令集。 1.1节~1.10节 小结 (3)CPU可以直接使用的信息在存储器中存放。 (4)在存储器中指令和数据没有任何区别,都是二进制信息。 1.1节~1.10节 小结 (5)存储单元从零开始顺序编号。 (6)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。 (7)1B = 8b 1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1.1节~1.10节 小结(续) (8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU的不同方面的性能: 地址总线的宽度决定了CPU的寻址能力; 数据总线的宽度决定了CPU与其它器件进行数据传送时的一次数据传送量; 控制总线宽度决定了CPU对系统中其它器件的控制能力。 1.1节~1.10节 小结(续) 在汇编课程中,我们从功能的角度介绍了这三类总线,对实际的连接情况不做讨论。 特别提示 特别提示 检测点 1.1(Page 8) 没有通过检测点请不要向下学习! 1.11 内存地址空间(概述) 什么是内存地址空间呢? 一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。下面深入讨论。 首先需要介绍两部分基本知识,主板和接口卡。 1.12 主板 在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。 这些器件通过总线(地址总线、数据总线、控制总线)相连。 1.13 接口卡 计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。 CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。 1.14 各类存储器芯片 从读写属性上看分为两类: 随机存储器(RAM)和只读存储器(ROM) 从功能和连接上分类: 随机存储器RAM 装有BIOS的ROM 接口卡上的RAM PC机中各类存储器的逻辑连接情况 1.14 各类存储器芯片 装有BIOS的ROM BIOS:Basic Input/Output System,基本输入输出系统。 BIOS是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。 1.15 内存地址空间 上述的那些存储器在物理上是独立的器件。 但是它们在以下两点上相同: 1、都和CPU的总线相连。 2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。 1.15 内存地址空间 将各各类存储器看作一个逻辑存储器: 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器; 每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间; CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。 1.15 内存地址空间 假设,上图中的内存空间地址段分配如下: 地址0~7FFFH的32KB空间为主随机存储器的地址空间; 地址8000H~9FFFH的8KB空间为显存地址空间; 地址A000H~FFFFH的24KB空间为各个ROM的地址空间。 1.15 内存地址空间 不同的计算机系统的内存地址空间分配情况是不同的。 8086PC机内存地址空间分配的基本情况 8086PC机的内存地址空间分配 1.15 内存地址空间 内存地址空间: 最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题。 对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。
上传时间:2010-10 大小:12.58MB
- 13.0MB
汇编语言_王爽_清华大学
2009-05-18汇编语言_王爽版适合初学者学习,全文简单易懂 可以为深入学习汇编及微机接口打下坚实的基础
- 12.58MB
汇编语言 王爽 清华大学出版社
2010-02-22汇编语言 王爽 第一章 基础知识 第二章 寄存器(CPU工作原理) 第三章 寄存器(内存访问) 第四章 ........
- 613B
x86汇编语言从实模式到保护模式(完整版)更新过
2018-12-05x86汇编语言从实模式到保护模式,包括后三章,网上大部分缺少后三章。文件太大包内是网盘地址和提取码。之前的过期,已更新。
- 23.11MB
汇编语言].
2014-01-10[汇编语言].冯康.扫描版(EBUK.CN).pdf
- 4.13MB
汇编语言指令大全(详解版).pdf
2019-09-14汇编语言指令大全(详解版)pdf,汇编语言指令大全
- 34.40MB
汇编语言(王爽版)
2012-02-29汇编语言(王爽版),汇编语言中的经典教材
- 12.64MB
汇编语言-王爽著 汇编语言-王爽著
2009-08-20汇编语言-王爽著 汇编语言-王爽著 汇编语言-王爽著
- 13.0MB
汇编语言教程 (王爽)
2008-09-101、简明x86汇编语言教程(1)-汇编语言简介 2、简明x86汇编语言教程(2)-认识处理器 3、简明x86汇编语言教程(3)-使用寄存器 4、简明x86汇编语言教程(4)-操作内存 5、简明x86汇编语言教程(5)-串操作 6、简明x86汇编语言教程(6)-利用子程序与中断 7、简明x86汇编语言教程(7)-编译优化 8、Win32Asm及其编程工具和资源的介绍 9、MASM宏使用总结 10、ARM中C和汇编混合编程及示例 11、VC7中汇编和C++混合的初步心得 12、Linux下的汇编程序设计 13、如何学习汇编语言 14、汇编语言超浓缩教程
- 33.26MB
汇编语言.pdf————电子版_pdf版
2021-09-17汇编语言.pdf————电子版_pdf版
- 16.58MB
Intel 汇编语言程序设计(第四版)
2013-04-19Intel 汇编语言程序设计(第四版) 中文版
- 213KB
《汇编语言》王爽_答案.pdf
2011-12-13汇编语言 王爽 习题 答案
- 75.41MB
汇编语言第三版王爽
2017-12-02______________________汇编语言第三版王爽_______________
- 13.4MB
王爽汇编语言电子书 王爽的汇编语言
2008-12-18王爽的汇编语言,最适合汇编初学者的书籍~~
- 10.0MB
汇编语言(第2版)王爽著
2010-04-16编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了这本书。本书具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。 本书可用作大学计算机专业本科生的汇编教材及希望深入学习计算机科学的读者的自学教材。
- 33.87MB
汇编语言 王爽.
2017-08-19汇编语言 王爽.
- 14.69MB
x86:从实模式到保护模式【文字版PDF+随书源代码】
2018-06-27文字版PDF+随书源代码以及工具 每一种处理器都有它自己的机器指令集,而汇编语言的发明则是为了方便这些机器指令的记忆和书写。尽管汇编语言已经较少用于大型软件程序的开发,但从学习者的角度来看,要想真正理解计算机的工作原理,掌握它内部的运行机制,学习汇编语言是必不可少的。本书采用开源的NASM汇编语言编译器和VirtualBox虚拟机软件,以个人计算机广泛采用的Intel处理器为基础,详细讲解了Intel处理器的指令系统和工作模式,以大量的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位保护模式,以及基本的指令系统。这是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬件,在不借助于BIOS、DOS、Windows、Linux或者任何其他软件支持的情况下来显示字符、读取硬盘数据、控制其他硬件等。本书可作为大专院校相关专业学生和计算机编程爱好者的教程。
- 57.21MB
汇编语言_第2版(王爽)
2015-10-11汇编语言是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了这本书。本书具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。 在本章中,对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。 机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。 这个是一本入门的汇编语言教材 关于内容:1、内容真的是做到了深入浅出(书是给人看的,别人看懂了才是最关键的)。2、有的地方看的出来是老师自己的感悟(不像其它国内大多数的书,就知道东抄一点西搬一点。内容到是什么都有,看了就不知道在讲个什么,什么都讲不清楚,就知道赚钱)我是学信息系?的学生,关于计算机科学方面我的这个专业学的不是太多,我就自己学,看了很多书,国内像这样的好书真的是很难得。3、更珍贵的是老师的编排,可以说比国外的还好(当然从知识点来说不如国外的书,但是这是一本入门书) 我的感想:1、计算机科学方面的好书,中国基本上没有(运用方面到是还是有很多不错的),要看就看国外的。翻译的好坏也是一个重点(像我英文不是很好,就只能看翻译过来的,看的时候还要看看翻译的是不是很好,有的翻译真的很烂),翻译的好的一般像潘爱民老师(听说雷迎春翻译的也不错,不过我还没看过他翻译的书).3、看的时候还要看是不是适合自己的情况(1、分清是入门教程还是高级教程;2、看看学过先导课程没有,有的知识是要有另外的知识做前提的) 目录: 第1章 基础知识 1.1 机器语言 1.2 汇编语言的产生 1.3 汇编语言的组成 1.4 存储器 1.5 指令和数据 1.6 存储单元 1.7 CPU对存储器的读写 1.8 地址总线 1.9 数据总线 1.10 控制总线 1.11 内存地址空间(概述) 1.12 主板 1.13 接口卡 1.14 各类存储器芯片 1.15 内存地址空间 第2章 寄存器 2.1 通用寄存器 2.2 字在寄存器中的存储 2.3 几条汇编指令 2.4 物理地址 2.5 16位结构的CPU 2.6 8086cPu给出物理地址的方法 2.7 “段地址xl6+偏移地址=物理地址”的本质含义 2.8 段的概念 2.9 段寄存器 2.10 CS和IP 2.11 修改CS、IP的指令 2.12 代码段 实验1 查看CPU和内存,用机器指令和汇编指令编程 第3章 寄存器(内存访问) 3.1 内存中字的存储 3.2 DS 31:1[address] 3.3 字的传送 3.4 ITIOV、add、sub指令 3.5 数据段 3.6 栈 3.7 CPU提供的栈机制 3.8 栈顶超界的问题 3.9 puSh、pop指令 3.10 栈段 实验2 用机器指令和汇编指令编程 第4章 第一个程序 4.1 一个源程序从写出到执行的过程 4.2 源程序 4.3 编辑源程序 4.4 编译 4.5 连接 4.6 以简化的方式进行编译和连接 4.7 1.exe的执行 4.8 谁将可执行文件中的程序装载进入内存并使它运行? 4.9 程序执行过程的跟踪 实验3 编程、编译、连接、跟踪 第5章 【BX】和loop指令 5.1 【BX】 5.2 Loop指令 5.3 在Debu9中跟踪用loop指令实现酮循环程序 5.4 Debu9和汇编编译器masm对指令的不同处理 5.5 loop和【bx】的联合应用 …… 第3章 寄存器(内存访问) 第4章 第一个程序 第5章 [BX]和loop指令 第6章 包含多个段的程序 第7章 更灵活的定位内存地址的方法 第8章 数据处理的两个基本问题 第9章 转移指令的原理 第10章 CALL和RET指令 第11章 标志寄存器 第12章 内中断 第13章 int指令 第14章 端口 第15章 外中断 第16章 直接定址表 第17章 使用BIOS进行键盘输入和磁盘读写 综合研究 附注
- 18.54MB
汇编语言_第2版(王爽)高清版本
2016-01-27汇编语言_第2版(王爽)高清版本,非常经典的入门汇编教程,有需要的看一下
- 3.15MB
汇编语言_第2版王爽
2014-12-15很经典的汇编语言教材,现在免费分享给大家
- 103.15MB
汇编语言_第2版_王爽
2017-10-26汇编语言经典教材《汇编语言》(第二版),王爽著,含标签。
- 115.31MB
汇编语言第2版,高清
2018-09-11王爽著<汇编语言>第二版,高清扫描版,内加注释,学习汇编的不二选择.
- 124.97MB
汇编语言第二版
2018-03-13汇编入门级书籍,王爽老师的书,很经典,当初就是从它开始入的汇编坑。
- 28.94MB
汇编语言第二版完全版(王爽)
2010-12-20汇编语言第二版完全版(王爽) 非常经典的汇编语言书籍
- 38.78MB
汇编语言第二版 王爽
2015-07-23王爽编写 汇编语言第二版 pdf 清华大学出版社
- 9.62MB
串口助手工具合集.zip
2021-05-19收集整理常用的一些串口工具,比如串口波形显示,modbus协议调试,串口多条发送等各种功能软件。
- 21.1MB
OLED显示温度和时间-STM32F103C8T6(完整程序工程+原理图+相关资料).zip
2019-08-29OLED 屏幕显示时间,温度。时间可以校准,屏幕通过取模,可以显示汉字。
- 6.99MB
pn532模拟资料包.zip
2021-03-07使用pn532实现。手环模拟加密门禁卡的一些必需软件,包括M1T-v1.6.6、M1T-v1.6.6、驱动等。