![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言(王爽)
文章平均质量分 83
fa1lr4in
a vegetable dog
展开
-
11 标志寄存器
1、CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都可能不同)具有下面三种作用(1)用来存储相关指令的某些执行结果;(2)用来为CPU执行相关指令提供行为依据;(3)用来控制CPU的相关工作方式。这种特殊的寄存器在8086CPU中,被称为标志寄存器。8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字(PSW)。我们已经使用过8086CPU...原创 2018-09-22 13:03:13 · 247 阅读 · 0 评论 -
10 CALL和RET指令
1、ret指令用栈中的数据,修改IP的内容,从而实现近转移;retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移CPU执行ret指令时,进行下面两步操作:(1)(IP) = ((ss)*16+(sp))(2)(sp) = (sp)+ 2CPU执行retf指令时,进行下面4步操作:(1)(IP) = ((ss)*16 + (sp))(2)(sp)=(sp)+2...原创 2018-09-21 21:50:42 · 267 阅读 · 0 评论 -
9 转移指令的原理
1、可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括的讲,转移指令就是可以控制CPU执行内存中某处代码的指令,8086CPU的转移行为有两种(1)只修改IP时,称为段内转移,比如:jmp ax(2)同时修改CS和IP时,称为段间转移,比如:jmp 1000:0段内转移又分为(1)短转移:IP的修改范围为-128~127(2)近转移:IP的修改范围为-32768~32...原创 2018-09-20 21:28:30 · 173 阅读 · 0 评论 -
8 数据处理的两个基本问题
1、本章对前面的所有内容是具有总结性的,计算机是进行数据处理、运算的机器,那么有两个基本问题就包含在其中:(1)处理的数据在什么地方(2)要处理的数据有多长这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。本章我们就要针对8086CPU对这两个基本问题进行讨论。虽然讨论是在8086CPU的基础上进行的,但是这两个基本问题却是普遍的,对任何一个处理机都存在我们定...原创 2018-09-20 19:18:27 · 203 阅读 · 0 评论 -
7 更灵活的定位内存地址的方法
1、and和or指令(1)and指令:逻辑与指令,按位进行与运算通过该指令可将操作对象的相应位设为0,其它位不变(2)or指令:逻辑或指令,按位进行或运算通过该指令可将操作对象的相应位设为1,其它位不变2、关于ASCII码计算机中通常被采用的方案,61H代表‘a',41H代表‘A’,如果我们想要在显示器上看到‘a’,就要给显卡提供‘a’的ASCII码,61H如何提供?当然是...原创 2018-09-20 12:43:16 · 139 阅读 · 0 评论 -
6 包含多个段的程序
1、如果程序要存放数据,要使用什么地方,第五章讲到了一块安全的空间0:200~0:2FF是相对安全的,可这段空间的容量只有256个字节,如果我们需要的空间超过256个字节又该如何呢?取得空间的方法有两种,一种是加载程序的时候为程序分配(堆栈),再就是程序执行过程中向系统申请(堆)对于第一种方法:(1)我们可以在一个段中存放数据、代码、栈(2)将数据、代码、栈放入不同的栈中但是如...原创 2018-09-20 11:31:58 · 120 阅读 · 0 评论 -
0 本书目录
本篇文章没有任何实际内容,只是全书的目录!!!!!!!!! 1、基础知识机器语言 汇编语言的产生和组成 存储器 指令和数据 存储单元 CPU对存储器的读写 地址总线,数据总线,控制总线 主板 接口卡 各类存储器芯片 内存地址空间 2、寄存器通用寄存器 字在寄存器中的存储 几条汇编指令 物理地址 16位结构的CPU 8086CPU给出物理地址的方法...原创 2018-09-23 20:46:30 · 176 阅读 · 0 评论 -
16 直接定址表
1、前面我们一直在代码段使用标号来标记指令、数据、段的起始位置。比如,a:db 1,2,3,4,5,6,7,8b:dw 0程序中,a,b只是标号,它仅仅表示了内存单元的地址但是,我们还可以使用一种标号,这种标号不但标识内存单元的地址,还表示了内存单元的长度,即表示在此标号的单元,是一个字节单元,还是字单元,还是双字单元a db 1,2,3,4,5,6,7,8b dw 0...原创 2018-09-23 19:48:50 · 179 阅读 · 0 评论 -
15 外中断
1、以前我们讨论的都是CPU对指令的执行。我们知道,CPU在计算机系统中,除了能够执行命令,进行计算意外,还应该能够对外部设备进行控制,接受他们的输入,向他们进行输出。也就是说,CPU除了有运算能力外,还要有I/O能力要即使处理外设的输入,显然需要解决两个问题:外设的输入随时可能发生,CPU如何得知CPU从何处得到外设的输入 2、接口芯片和端口第14章我们讲过,PC系统的接...原创 2018-09-23 13:05:48 · 141 阅读 · 0 评论 -
14 端口
1、我们前面讲过,各种存储器都和CPU的地址线、数据线、控制线相连,CPU在操控他们的时候,把他们都当作内存来看待,把他们总的看作一个由若干尊处单元组成的逻辑存储器,这个逻辑存储器我们称之为内存地址空间在PC机系统中,和CPU通过总线相连的芯片除各种存储器之外,还有以下三种芯片(1)各种接口卡(比如网卡,显卡)上的接口芯片,他们控制接口卡进行工作;(2)主板上的接口芯片,CPU通过他们...原创 2018-09-23 11:42:57 · 211 阅读 · 0 评论 -
13 int指令
1、中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程,我们接下来聊一聊另一种重要的内中断,由int指令引发的中断 2、int指令int指令的格式为:int n,n为中断类型码,他的功能是引发中断过程CPU执行int n指令,相当于引发一个n号中断的中断过程,执行过程如下:(1)取出中断类型码n;(2)标...原创 2018-09-23 10:51:28 · 250 阅读 · 0 评论 -
5 [BX]和loop指令
1、[BX]和[0]一样,也表示一个内存单元,他的偏移地址在bx中。 2、loop指令的格式是:loop标号,CPU执行loop指令的时候,要进行两步操作: cx=cx-1; 判断cx的值。 不为0则转至标号处执行程序,如果为0向下执行。 通常我们用loop指令来实现循环功能,cx至关重要,它存放循环次数。 下面举一个具体的例子来解释下loop的用法: assume cs:fal原创 2017-10-23 00:31:31 · 341 阅读 · 0 评论 -
3 寄存器(内存访问)
1、内存中字的存储 CPU用16位存储器来存储一个字,高八位存放高位字节,低八位存放低位字节 我们用0和1两个内存单元存放数据20000(4E20H) Q:0地址单元中存放的字节型数据是多少? A:20H。 Q:0地址字单元中存放的字节型数据是多少? A:4E20H。 Q:1地址字单元中存放的字节型数据是多少? A:124EH。 2、DS和[address] 先给段代码:原创 2017-10-21 23:35:55 · 250 阅读 · 0 评论 -
4 第一个程序:1.exe
知识储备 1、汇编语言程序从写出到执行的过程 编写汇编源程序; 对源程序进行编译链接; 执行可执行文件中的程序。 2、可执行文件包含两部分内容: - 程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据) - 相关的描述信息(比如:程序有多大,要占用多少内存空间等)生成*.exe文件步骤 3、汇编代码assume cs:fallrainfallrain segm原创 2017-10-22 13:55:00 · 379 阅读 · 0 评论 -
2 寄存器
通用寄存器 1、8086CPU有14个寄存器,分别为:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW。 2、8086CPU的所有寄存器都是16位的可以存放两个字节,AX BX CX DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。 因为8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,使原来基于上代CPU编写的程序稍加修改就可原创 2017-10-21 17:40:15 · 244 阅读 · 0 评论 -
1 汇编基础
几个概念 1、机器语言是机器指令的集合。 2、汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 3、汇编语言的三类指令: 汇编指令:机器码的助记符,有对应的机器码,与机器指令一一对应。 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。 其他符号:如+,-,*,/等,由编译器识别,没有对应的机器码。 4原创 2017-10-21 15:15:08 · 245 阅读 · 0 评论 -
12 内中断
1、任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来或从内部产生的一种特殊信息,并且可以立即对所接收到的信息进行处理。这种特殊的信息,我们称其为:中断信息。中断的意思是指,CPU不再接着(刚执行完的指令)向下执行,而是转去处理这个特殊信息 2、内中断的产生当CPU内部有什么事情发生的时候,将产生需要马上处理的中断信息呢?...原创 2018-09-23 00:09:34 · 267 阅读 · 0 评论