随笔分类 - 汇编语言
摘要:CPU除了有运算能力外,还要有I/O能力。 15.1接口芯片和端口 PC系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU将这些寄存器当作端口来访问。 外设的输入不直接送入内存和CPU,而是送入相关接口芯片的端口中。 可见,CPU通过端口和外部设备进行联系。 15.2
阅读全文
posted @ 2019-12-29 21:25
JasonPeng1
摘要:我们前面讲过,各种存储器都和CPU的地址线,数据线,控制线相连。CPU在操控它们的时候,把它们都当作内存来对待,把它们总地看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间(可参见1.15节) 在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3种芯片。 1
阅读全文
posted @ 2019-12-29 21:24
JasonPeng1
摘要:这一章,我们讲解另一种重要的内中断,由int指令引发的中断。 13.1 int指令 CPU 执行 int n指令,相当于引发一个n号中断的中断过程,执行过程如下: 1.取中断类型码 n 2.标志寄存器入栈,IF=0,TF=0 3.CS,IP入栈 4.IP=n*4,CS=n*4+2 由此处转去执行n号
阅读全文
posted @ 2019-12-29 21:23
JasonPeng1
摘要:11.1 ZF标志 11.2 PF标志 11.3 SF标志 11.4 CF标志 11.5 OF标志 11.6 adc指令 11.7 sbb指令 11.8 cmp指令 11.9 检测比较结果的条件转移指令 11.10 DF标志和串传送指令 11.11 pushf 和popf 11.12 标志寄存器在D
阅读全文
posted @ 2019-12-29 21:22
JasonPeng1
摘要:call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。 10.1ret和retf CPU执行ret时,相当于进行:pop IP CPU执行retf指令时,相当于进行 : pop IP pop CS 10.2 call指令 CPU执行call指令时
阅读全文
posted @ 2019-12-29 21:21
JasonPeng1
摘要:9.1操作符offest 9.2 jmp指令 9.3 依据唯一进行转移的jmp指令 9.4 转移的目的地址在指令中的jmp指令 9.5转移地址在寄存器中的jmp指令 9.6 转移地址在内存中的jmp指令 9.7 jcxz指令 9.8 loop指令 9.9 根据位移进行转移的意义 9.10 编译器对转
阅读全文
posted @ 2019-12-29 21:20
JasonPeng1
摘要:本章对前面的所有内容是具有总结性的。 我们定义的描述性符号:reg和sreg 以后的课程中,我们将使用两个描述性的符号reg来表示一个寄存器,用sreg表示一个段寄存器。 reg的集合有:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di sreg的集合有
阅读全文
posted @ 2019-12-29 21:19
JasonPeng1
摘要:7.1 and和or指令 通过and指令可将操作对象的相应位设为0,其他位不变。 通过or指令可将操作对象的相应位设为1,其他位不变。 7.2 关于ASCII码 我们按一下键盘的a键 计算机用ASCII码的规则对其进行编码,将其转化为61H存储在内存的指定空间中;文本编辑软件从内存中取出61H,将其
阅读全文
posted @ 2019-12-29 21:18
JasonPeng1
摘要:前面的程序中,只有一个代码段。现在有一个问题是,如果程序需要用其他空间来存放数据,使用哪里呢?第5章中,我们讲到要使用一段安全的空间。我们说0:200~0:2FF是相对安全的,可这段空间的容量只有256个字节,如果我们需要的空间超过256个字节该怎么办呢? 在操作系统的环境中,合法地通过操作系统取得
阅读全文
posted @ 2019-12-29 21:17
JasonPeng1
摘要:现在我们开始将编写完整的汇编语言程序,用编译和连接程序将它们编译连接成为可执行文件(如.exe),在操作系统中运行。 4.1一个源程序从写出到执行的过程 .... 操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如设置CS:IP指向第一条要执行的指令
阅读全文
posted @ 2019-12-29 21:15
JasonPeng1
摘要:这一章,我们从访问内存的角度继续学习几个寄存器 3.1内存中字的存储 小端字:这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中 3.2DS和[address] [...]表示一个内存单元,[...]中的0表示内存单元的偏移地址。 8086CPU自动取ds中的数据为内存单元的段地址 80
阅读全文
posted @ 2019-12-29 21:14
JasonPeng1
摘要:一个典型的CPU由运算器,控制器,寄存器等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。简单地说,在CPU中: 运算器进行信息处理; 寄存器进行信息存储; 控制器控制各个器件进行
阅读全文
posted @ 2019-12-29 21:13
JasonPeng1
摘要:https://zhidao.baidu.com/question/130424698.html 任何一个通用的CPU,比如8086,都具备一种能力,可以在执行完当前正在执行的指令之后,检测到从CPU外部发送过来的或内部产生的一种特殊信息,并且可以立即对所接受到的信息进行处理。这种特殊的信息,我们可
阅读全文
posted @ 2019-12-27 23:39
JasonPeng1
摘要:2019-12-27 23:31:42 对于计算机一般的结构,功能,性能的研究在一门称为《组成原理》的理论层次更高的课程中进行。汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活地控制系统进行工作 1.1机器语言 电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使
阅读全文
posted @ 2019-12-27 23:33
JasonPeng1
摘要:2019-12-27 23:28:17 前言: 汇编语言是很多相关课程(如数据结构,操作系统,微机原理等)的重要基础。其实仅从课程的关系的角度讨论汇编语言的重要性未免片面,概括地说,如果你想从事计算机科学方面的工作的话,汇编语言的基础是必不可缺的。 ...从而达到学习汇编的两个最根本的目的:充分获得
阅读全文
posted @ 2019-12-27 23:29
JasonPeng1