计算机微机原理8086指令
8086指令集机器码
8086指令集机器码
2. ADD指令(将两个数相加并将结果存储在目标位置): - 寄存器相加: 机器码:01 D1(例如,将ECX寄存器的值与EDX寄存器的值相加) - 立即数与寄存器相加: 机器码:83 C0 05(例如,将EAX寄存器的值与立即数05相加)
3. JMP指令(无条件跳转到指定的地址): - 相对短跳转: 机器码:EB rel8(例如,EB 05,跳转到相对偏移量为05的地址) - 相对长跳转: 机器码:E9 rel16(例如,E9 1234,跳转到相对偏移量为1234的地址)
8086指令集机器码
8086指令集是Intel 8086处理器的指令集架构,它定义了一系列的机器码(二进制代码 )来执行不同的操作。下面是一些常见的8086指令及其对应的机器码示例:
1. MOV指令(将数据从一个位置移动到另一个位置): - 传送立即数到寄存器: 机器码:B8 imm16(例如,B8 1234) - 传送寄存器到寄存器: 机器码:89 C1(例如,将EAX寄存器的值传送到ECX寄存器) - 传送内存到寄存器: 机器码:8B 45 08(例如,将偏移地址为08的内存单元的值传送到EAX寄存器)
8086指令集机器码
4. INT指令(触发中断): - 软中断: 机器码:CD int8(例如,CD 1,触发21号软中断)
这是8086指令集中的示例,每个指令都有特定的操作码和操作数,机器码的格式和长度 也会有所不同。如果需要查找特定指令的机器码,可以参考8086处理器的文档或相关资料。
微机原理第5章80868088CPU总线操作与时序
读周期
CPU从内存或I/O设备读取数据的过程,包括地 址发送、数据读取和数据返回三个阶段。
写周期
CPU向内存或I/O设备写入数据的过程,包括地址发送、数据写入和数据返回三 个阶段。
03
数据传输过程
读周期
总结词
在读周期中,CPU从内存中读取数据。
详细描述
读周期是CPU从内存中读取数据的过程。在读周期开始时,CPU通过地址总线发送要读取的内存地址,然后通过 数据总线从内存中读取数据。这个过程需要多个时钟周期,具体取决于数据的存储位置和CPU的速度。
然而,随着总线技术的不断发展,也 面临着一些技术挑战。例如,如何提 高总线的传输效率、降低能耗以及优 化系统性能等。为了解决这些问题, 需要不断进行技术创新和改进。
展望
未来,CPU总线技术将继续发挥其在 微机原理中的重要作用。随着技术的 不断进步和应用需求的增加,总线技 术将更加成熟和多样化。同时,随着 人工智能、大数据等新兴技术的发展 ,总线技术也将与这些领域进行更深 入的融合,为解决实际问题提供更多 可能性。
8086/8088 CPU的总线结构
地址总线
用于传输地址信息,确定要访问的内存单元或I/O 端口。
数据总线
用于传输数据信息,实现数据在CPU和内存或I/O 设备之间的传输。
控制总线
用于传输控制信号,控制CPU和内存或I/O设备之 间的操作。
总线操作时序
时钟信号
用于同步总线上的操作,确保数据传输的正确 性。
中断源
指引发中断的事件或异常情况,如输入/输出设备、定时器、故障等。
中断向量
指中断处理程序的入口地址。
中断响应过程
保存程序计数器
当发生中断时,CPU会自动将当前的程序计数器(PC)值保存到堆栈 中,以便在中断处理完毕后能够正确返回到原程序。
微机原理接口技术03_指令系统
3.2.1 数据的寻址方式
基址变址寻址同样适用于数组或表格处理,首地 址存放在基址寄存器中,变址寄存器访问数组中各元
素。因两个寄存器都可以修改,所以它比寄存器相对
寻址方式更灵活。需要注意的是,两个寄存器不能均 为基址寄存器,也不能均为变址寄存器。
3.2.1 数据的寻址方式
7.基址变址相对寻址 (Relative Based Indexed Addressing) 操作数的有效地址为指令中规定的1个基址寄存 器和1个变址寄存器的内容及指令中指定的位移量三 者之和。 位移量[基址寄存器][变址寄存器] 可以表示成多种形式组合。寻址寄存器要放在方括 号中。
3.2.1 数据的寻址方式
4.寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址存放在基址寄存器或变址寄存 器中,而操作数则在存储器中。对16位数进行寄存器 间接寻址时可用的寄存器是基址寄存器BX、BP和变 址寄存器SI、DI。使用BP时默认的段寄存器为SS, 使用其他寄存器默认的段寄存器为DS。 操作数有效地址格式为:[间接寻址的寄存器]。 寻址寄存器放在方括号中。
CPU执行指令时,指令是按顺序存放在存储器 中的,而程序执行顺序是由CS和IP的内容来决定的。 当程序执行到某一转移或调用指令时,需脱离程序 的正常顺序执行,而把它转移到指定的指令地址, 程序转移及调用指令通过改变IP和CS内容,就可改 变程序执行顺序。
3.2.2 程序转移地址寻址方式
根据程序转移地址相对于当前程序地址的关 系,可分为段内、段外;又根据转移地址是否直 接出现在指令中,分为直接、间接,所以有四种 程序转移寻址方式:段内直接寻址、段内间接寻
第3章
指令系统
指令是计算机用以控制各个部件协调
微机原理8086汇编语言
微机原理8086汇编语言微机原理和8086汇编语言是计算机科学与技术领域中的重要基础知识,对于理解计算机的运行原理和编程开发具有关键作用。
本文将全面介绍微机原理和8086汇编语言的基本概念、功能特点以及应用实践。
一、微机原理概述微机原理是指微型计算机的构成、工作原理、体系结构和外围设备等的基本原理。
微机由中央处理器(CPU)、存储器和输入输出设备等组成,其内部实现了数据的存储和处理,并能够与外部环境进行交互。
微机原理的研究与应用对于计算机硬件的设计和控制至关重要。
二、8086汇编语言介绍8086汇编语言是在微机原理基础上发展起来的一种低级程序设计语言。
它以机器指令的形式直接对CPU发出控制命令,实现数据处理和操作。
8086汇编语言具有直观、高效的特点,可以对计算机内部各种硬件资源进行精细控制,实现复杂的算法和功能。
三、8086汇编语言的基本语法8086汇编语言的基本语法包括指令、寻址方式和操作数等。
指令通常由操作码和操作数组成,用于执行特定的操作。
寻址方式指定操作数在内存中的位置,可以是直接寻址、寄存器间接寻址、立即数寻址等多种方式。
操作数表示要进行操作的数据,可以是寄存器、内存单元或立即数。
四、8086汇编语言的常用指令8086汇编语言提供了丰富的指令集,包括数据传输指令、算术运算指令、逻辑运算指令、条件转移指令、无条件转移指令等。
通过这些指令的组合和调用,可以实现各种复杂的功能和处理需求。
五、8086汇编语言的应用实践8086汇编语言广泛应用于嵌入式系统设计、驱动程序开发、操作系统编程以及性能优化等领域。
在嵌入式领域,汇编语言可以直接操作硬件资源,实现高效的数据处理和控制;在操作系统编程中,汇编语言可以直接访问操作系统内核,实现底层功能的扩展和优化。
六、8086汇编语言的优势与不足8086汇编语言具有高效、灵活的优势,可以直接操作硬件资源和内存,实现高性能的程序。
然而,汇编语言的开发和调试困难,可读性低,维护成本高,对程序员的要求较高。
微机原理第3章-指令系统
▲按给出偏移地址方式的不同,分为以下5种: 寄存器间接寻址 寄存器相对寻址 基址加变址寄存器 相对基址加变址寄存器 MOV AL, [ BX ] MOV AL, [ BX + 10H ] MOV AL, [ BX + SI ] MOV AL, [ BX + SI + 10H ]
(1)寄存器间接寻址
寄存器寻址方式的操作数是寄存器的值,指令中直接 使用寄存器名,包括8位或16位通用寄存器和段寄存器。可 使用的16位寄存器:AX、BX、CX、DX、SI、DI、SP、 BP;其中:AX、BX、CX、DX可分成两8位使用。
例: MOV AX,CX
;(AX)
(CX)
INC CX
;(CX)
(CX)+1
3.直接寻址(Direct Addressing)
0002
AH
AL
默认段寄存器的关系: ① 使用BX、SI、DI,默认段寄存器为DS
(BX)
PA = ( DS )×10H + (SI) (DI)
② 使用BP,默认段寄存器为SS PA = ( SS )×10H + ( BP )
使用BX、SI、DI的寄存器寻址,默认段寄存器为DS
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP 地 址 加 法 器
运 算 器
控制总线CB
码
器
PSW标志 寄存器
执行部件控制电路
CPU
总线
内存
例: MOV AX , [ BX + SI ]
若 ( DS ) = 4000H
( BX ) = 2000H ( SI ) = 100H 则内存操作数的物理地址为:
微机原理5_8086指令系统08
• 指令中的操作数:
– 可以是一个具体的数值 – 可以是存放数据的寄存器 – 或指明数据在主存位置的存储器地址
6
双操作数指令
MOV dst, src ; (dst) (src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: MOV AH,BL MOV AX,1234H
ADD dst, src ; (dst) (dst)+(src) ↑ ↑ ↑ 助记符 目的 源操作数 操作数 例: ADD AL,36H ADD BX,CX 大多数运算型指令都是双操作数指令,对这种指令, 有的机器(大中型)使用“三地址”指令:除给出参加 运算的两个操作数外,还要指出运算结果的存放地址 7
18
寄存器寻址
19
特 点
(1) 操作数就在寄存器中,不需要访问存
储器来取得操作数(指令执行时,操作就在 CPU的内部进行),因而执行速度快。
(2)寄存器号比内存地址短 * 在编程中,如有可能,尽量使用这种寻址 方式的指令。 * 寄存器寻址方式既可用于源操作数,也可 用于目的操作数,还可以两者都用于寄存器寻 址方式(如 MOV BX , AX )
物理地址 = 16d (DS) +
BP (SS)
(SI)
(DI)
28
物理地址 = 16d (SS) + (BP)
例:
MOV AX, [BX] MOV ES:[BX] , AX MOV DX, [BP] • MOV AX , [BX] ;
设 ( DS) = 2000H ,(BX) = 1000H PA =20000H + 1000H =21000H 指令的执行结果为: (AX) = 50A0H *指令中也可以通过“段跨越前缀”取 得其他段中的数据, 例如: MOV AX,ES: [BX] PA = 16d (DS) + (BX) PA = 16d (ES) + (BX) PA = 16d (SS) + (BP)
微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统
4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过寄存器 间接给出。 例: MOV SI , 61A8H MOV DX , [SI]
5、基址/变址寻址(Based/Indexed addressing) 位移量是一带符号的16位16进制数。当 使用BX或BP寄存器时,称基址寻址;使用SI 或DI寄存器时,称变址寻址。 例: MOV CX , 36H[BX] MOV -20[BP] , AL
2、MOV数据传送指令 其格式为: MOV 目的操作数,源操作数 • 目的操作数和源操作数均可采用不同的寻 址方式, • 两个操作数的类型必需一致。
二、寻址方式介绍பைடு நூலகம்
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后面, 作为指令一部分存放在内存的代码段中,这 种操作数称为立即数。 例: MOV AX , 34EAH MOV BL , 20H
3)、段间直接转移 JMP far PTR 目标地址 4)、段间间接转移 JMP WORD PTR[BX][SI]
2、条件转移指令
1)、单条件转移指令 ① JC ② JNC ③ JE/JZ ④ JNE/JNZ ⑤ JS ⑥ JNS ⑦ JO ⑧ JNO ⑨ JP/JPE ⑩ JNP/JPO ;CF标志为1,则转移 ;CF标志为0,则转移 ;ZF标志为1,则转移 ;ZF标志为0,则转移 ;SF标志为1,则转移 ;SF标志为0,则转移 ;OF标志为1,则转移 ;OF标志为0,则转移 ;PF标志为1,则转移 ;PF标志为0,则转移
3、目标地址传送指令
这类指令有: 1)LEA 有效地址传送到寄存器 2)LDS 装入一个新的物理地址 3)LES 装入一个新的物理地址
微机原理第3章指令
第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。
为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。
第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。
个别指只有操作码没有操作数。
由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。
8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。
指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。
段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。
生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。
确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。
立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。
这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。
段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。
微机原理第3章 8086微型计算机系统
2、总线接口部件BIU
BIU组成: 4个16位段寄存器(DS、CS、ES、SS); 指令指针寄存器(IP); 20位的地址加法器; 6字节指令队列缓冲器; 内部暂存器和总线控制逻辑。 BIU功能:负责CPU与存储器、I/O设备之间的 数据传送。具体包括: 取指令送指令队列,配合EU从指定的内存 单元或者外设端口中取数据,将数据传送 给EU,或者把EU的操作结果传送到指定的 内存单元或外设端口中。第3章 8086微型计算机系统
第3章 8086微型计算机系统
4、内存操作
读:将内存单元的内容取入CPU,原单元内容不改变; 写:CPU将信息放入内存单元,单元中原内容被覆盖; 刷新:对CPU透明,仅动态存储器有此操作 内存的读写的步骤为: 1)CPU把要读写的内存单元的地址放到AB上 2) 若是写操作, CPU紧接着把要写入的数据放到DB上 3) CPU发出读写命令 4) 数据被写入指定的单元或从指定的单元读出到DB 若是读操作, CPU紧接着从DB上取回数据
第3章 8086微型计算机系统
3、8086的存储器的地址
内存包含有很多存储单元(每个内存单元包含 8bit),为区分不同的内存单元,对计算机中 的每个内存单元进行编号,内存单元的编号 就称为内存单元的地址。
内存单 元地址
. . .
Bit 7 6 5 4 3 2 1 0 01011000
内存单 元内容
段基地址(16位)
第3章 8086微型计算机系统
段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数据 表示,就能用16位段寄存器表达段地址 偏移地址(也称有效地址EA)说明主存单元 距离段起始位置的偏移量 每段不超过64KB,偏移地址也可用16位数据 表示
8086微机原理总结
题目:微机原理全书总结姓名:吕祎学号:12021027第一部分第一章首先介绍了计算机的发展,不同时期的计算机发展史。
在计算机发展史中,最重要的就是冯诺依曼提出的存储程序概念。
目前根据冯诺依曼给出的模型设计的计算机一直沿用至今。
冯诺依曼计算机的核心是:指令数据用二进制表示,程序预存在存储器中,在执行时根据指令逐条取出分析执行,计算机硬件由运算器控制器存储器输入输出设备组成。
对计算机发展有突出贡献的两个人是图灵和冯诺依曼。
(一)一些基本概念位(bit)是我们计算机所能表示的最小数据单位。
8个bit组成一个字节(Byte)指令:二进制代码组成,规定微处理器进行某种命令。
即又0和1组成的编码。
程序:指令的有序集合。
存储器:用于存储数据和程序。
地址:存储单元I/O接口的编号。
IO引脚线:16根。
可以控制的外设64K个。
(二)目前常用的二进制十进制十六进制的转换方式此处需要熟悉各个进制转换规则。
例如05H转换为二进制为0000 1001B另外本节还介绍了几种编码表示,例如BCD码,ASCLL码,汉字编码等等。
BCD码:四位二进制表示十进制数(1)非压缩型BCD,一个字节表示一位十进制数,高四位清零(2)压缩型BCD:用一个字节表示两位十进制数。
(三)原码:最高位为符号位(0表示正,1表示负)反码:正数反码与原码相同,负数的反码等于原码中符号位不变其他取反。
补码:正数补码与原码相同,负数的补码等于原码中符号位不变各位取反再加一。
(四)指令:告诉计算机从事某个特殊运算的代码。
计算机执行指令的过程是:取指令→分析指令→执行指令。
第二部分(一)第二章8086/8088微处理器工作过程:取指令、译码、执行指令、取指令、译码······工作方式:并行流水处理方式。
功能分类:执行单元EU、总线接口单元BIU内部包括:运算器,寄存器组,控制逻辑,指令队列,20位加法器。
003_微机原理-指令系统_2
MOV DS, AX
不影响标志位
3.3 指令系统—换码指令
指令书写格式: XLAT
指令执行的操作:
(AL)←((DS:BX+AL)) 查表操作,将BX指定的缓冲区中、AL指定的位移处的一个字节数 据取出赋给AL
指令说明
操作数隐含使用基地址寄存器BX与AL寄存器 换码指令执行前,在主存建立一个字节量表格,内含要转换的目 的码字,表格首地址存放于BX,AL存放相对表格首地址的位移量 换码指令执行后,指令将AL寄存器的内容转换为目标码字,因为 偏移量AL为8位,表格长度≤256字节 不影响标志位
数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令
控制转移指令
处理器控制指令
3.3 指令系统-通用数据传送指令
指令书写格式: MOV dst, src
指令执行的操作:(dst)←(src) 指令说明
操作数类型:立即操作数,寄存器操作数,存储器操作数 立即操作数不能作为目的操作数DST 错误:MOV 30H, AL 两个操作数也不能同时为存储器操作数 错误: MOV [DI+100H], [SI+200H]
dst为目的操作数,操作数类型可为寄存器操 作数或存储器操作数 cnt为移位次数,可为立即数1,或由寄存器 CL指定 SHL、SHR和SAL指令影响标志位CF和OF, cnt=1时,SHL与SAL移位后的最高位和CF不 同,则OF=1;SHR,OF=移位前最高位 SAR指令影响标志位CF、OF、PF、SF、ZF, AF不确定;
; 测试AL中数据的奇、偶
3.3 指令系统-移位指令
逻辑左移指令: SHL dst, cnt 算术左移指令: SAL dst, cnt
8086微处理器的工作过程
8086微处理器的工作过程
8086微处理器是一种16位微处理器,它是Intel推出的一款经典产品,被广泛应用于个人电脑和嵌入式系统中。
它的工作过程可以从以下几个方面来描述:
指令执行过程,8086微处理器的指令执行过程包括取指令、译码、执行和写回四个阶段。
首先,指令被取出并存储在指令寄存器中,然后被送到指令译码器中进行译码,确定指令的操作类型和操作数。
接着,指令被执行,执行的结果可能会写回到寄存器或者存储器中。
数据传输过程,8086微处理器通过数据总线和地址总线与外部设备进行数据传输。
当需要从外部设备读取数据时,8086将地址发送到地址总线,然后通过数据总线将数据传输到内部寄存器中。
反之,当需要向外部设备发送数据时,8086将数据发送到数据总线,然后通过地址总线将数据传输到外部设备中。
中断处理过程,8086微处理器支持外部设备通过中断请求线向其发出中断请求。
当发生中断请求时,处理器会根据中断类型执行相应的中断服务程序,并在执行完中断服务程序后返回到原程序继
续执行。
时序控制过程,8086微处理器的工作时序由内部时钟控制,不同的指令需要不同的时钟周期来完成。
时钟信号的频率决定了微处理器的工作速度,同时也影响了系统的整体性能。
总线控制过程,8086微处理器通过控制总线与外部设备进行数据传输和通讯。
总线控制信号包括读、写、传输方向等,控制着数据在总线上的流动和处理器与外部设备的交互。
8086微处理器的工作过程涉及到指令执行、数据传输、中断处理、时序控制和总线控制等多个方面,它在计算机系统中扮演着核心的角色,对于理解计算机的工作原理具有重要意义。
微机原理-微处理器8086基础知识
02
微处理器8086基础知识
8086微处理器的结构与功能
8086微处理器由运算器、控制 器、寄存器组、内部总线等组成,
是计算机系统的核心部件。
8086微处理器具有处理指令、 执行算术逻辑运算、控制输入输 出等功能,是计算机实现信息处
理的关键部件。
8086微处理器采用16位字长, 支持多任务处理,可实现高效的
详细描述
基址加变址加变址加位移寻址方式是指操作数的地址由基址寄存器、变址寄存器、位移量共同确定。这种方式的 特点是可以通过对基址寄存器和变址寄存器的修改来方便地实现数据的传递和交换,同时也可以实现数组元素的 访问和修改。
04
8086的指令集
数据传送指令
MOV指令
用于将数据从一个位置移动到另一个 位置。格式为MOV dest, src。
06
8086的输入输出系统
输入输出指令
IN指令
用于从指定的I/O端口读取数据到累加器。
OUT指令
用于将累加器中的数据写入到指定的I/O端口。
输入输出指令对累加器内容的影响
使用IN指令后,累加器的内容将被替换为从I/O端口读取的数据;使用OUT指令后,累加 器的内容将被写入到指定的I/O端口,同时累加器的内容将被清零。
学习微机原理有助于培养学生的逻辑思维、问题解决能力以及创新能力,对未来的 职业发展具有重要意义。
THANKS
感谢观看
逻辑指令
AND、OR和XOR指令
用于执行逻辑与、或和异或操作。格式为 AND dest, src、OR dest, src和XOR dest, src。
NOT指令
用于执行逻辑非操作。格式为NOT dest。
控制转移指令
微机原理_8088(8086)工作原理
8088/8086寄存器结构 8088/8086寄存器结构
15 AH BH CH DH 8 7 AX AL BX BL CX CL DX DL SP BP DI SI IP FLAGS CS DS ES SS 0 累加器 基址变址 计数 数据 堆栈指针 基址指针 目的变址 源变址 指令指针 标志 代码 数据
AX(Accumulator BX(Base
CX(Count DX(Data
指针寄存器
堆栈指针SP(Stack Pointer): 堆栈指针SP(Stack Pointer):用于实现内存中的堆栈
存储方式(FILO),指示栈顶的偏移地址; ),指示栈顶的偏移地址 存储方式(FILO),指示栈顶的偏移地址;
总线接口部件 (Bus Interface Unit)
执行部件 用来存放计算的中间结果, 用来存放计算的中间结果, (Execution Unit) CPU从寄存器中存取数据比从 CPU从寄存器中存取数据比从
负责指令的译码、 负责指令的译码、 存储器中存取数据要快得多。 存储器中存取数据要快得多。 与微处理器外部总线连接, 与微处理器外部总线连接,负责 执行等。 BIU 执行等。 大量使用寄存器能提高计算机 与存储器、I/O接口进行数据交换 接口进行数据交换, 与存储器、I/O接口进行数据交换, 运行速度, 运行速度,但也提高了成本 存取指令、操作数等。 存取指令、操作数等。
指令指针IP(Instruction Pointer): 指令指针IP(Instruction Pointer):计算机之所以
能自动地一条一条地取出并执行指令,是因为CPU中 能自动地一条一条地取出并执行指令,是因为CPU中 有一个跟踪指令地址的电路,其核心就是指令指针IP, 有一个跟踪指令地址的电路,其核心就是指令指针IP, 它用于指明当前应该调用内存中哪个地址位置的指令 CPU中来运行 中来运行, 到CPU中来运行,从而实现计算机自动运行程序员事 先安排好的软件。 先安排好的软件。
微机原理16位32位CPU(8086)
S6-S3:输出CPU的工作状态。 S6:指示8086/8088当前是否与总线相连, S6=0,表示 8086/8088当前与总线相连。 S5:表明中断允许标志当前的设置。 S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的 中断请求;S5=1,表示CPU中断是开放的,允许一切可屏 蔽中断源的中断申请。
出一个“准备好”信号,之后CPU才会自动脱离TW状态而进入T4状态。
• ⑤在T4状态,总线周期结束。
2.1.2 8086的引脚信号和工作模式
1. 最小模式和最大模式的概念
根据所连的存储器和外设规模的不同,使它们可以在两种模式下工 作: (1)最小模式:
在系统中只有一8086/8088CPU。 (2)最大模式: 有两个或两个以上的CPU,一个为主处理器8086/8088, 另一个为协处理器8087/8089。 数值运算协处理器8087, 输入输出协处理器8089。
奇
进
偶
借
标
位
志
标
志
1-有进Байду номын сангаас借位 0-无进、借位
1-低4位向高4位有进、借位 0-低4位向高4位无进、借位
④标志寄存器
根据功能,标志可以分为两类:状态标志和控制标志 状态标志:表示前面的操作执行后,ALU所处的状态,这种状态像某
种先决条件一样影响后面的操作。 控制标志:表示对某一种特定的功能起控制作用。指令系统中有专门
2.1.1 8086的编程结构
在编程结构图中,从功能上划分,8086分为两大部分:即 总线接口部件BIU(Bus Interface Unit) 执行部件EU(Execution Unit)
微机原理8086汇编语言程序设计
;这是一个乘10子程序
;使用寄存器AX
;入口:AX,出口:AX
proc far
push bx
;保护现场
pushf
add ax,ax
;2ax
功
mov bx,ax
;2ax ?bx
能
add ax,ax
;4ax
程
add ax,ax
;8ax
序
add ax,bx
;10ax
段
popf
;恢复现场
pop bx
ret
endp
第四章 8086汇编语言程序设计
? 几个概念 ? 8086汇编语言的语句 ? 8086汇编中的伪指令 ? 8086汇编中的运算符 ? 汇编语言程序设计 ? 宏定义与宏调用 ? 系统调用
几个概念
? 汇编语言 ? 汇编语言源程序 ? 汇编 ? 汇编程序
4.1 8086汇编语言的语句
汇编语言由指令性语句和指令性语句组成 ? 一、指令性语句格式
CODE SEGMENT
;定义代码段
ASSUME DS:DATA , CS: CODE
START: MOV AX , DATA
;初始化DS
MOV DS , AX
……
MOV AX , 4C00H ;返回DOS
INT 21H
CODE ENDS
;代码段结束
END START
;源程序结束
;段属性说明
? 特点 ? 程序分段 ? 语句由指令性和指示性语句组成 ? 两种程序框架
? 3、 ORG伪指令、地址计数器 $
ORG伪指令格式: ORG <表达式>
? 4、END 表示源代码结束 格式为: END 常数或表达式.
微机原理第3章 8086的指令系统d
3.4.4 串操作指令
由多个字节/字组成的数据称为字节/字数据串,简称字节/ 字串。 数据串存放在某一连续的内存区中,最长长度为64kB。 串操作指令的特点: • 采用串寻址,规定源操作数的逻辑地址为(DS):(SI),目的 操作数的逻辑地址为(ES):(DI)。 • 执行串指令时,存储单元的地址指针是自动移动的,DF= 0则地址增大,DF=1则地址减小。 • 串指令通常使用指令前缀,串的长度(数据个数)由CX给定。 • 串指令在同段之间进行传送或比较时,应使(DS)=(ES)。
LEA SI, BUFF1;源操作数偏移地址 LEA DI, BUFF2;目的操作数偏移地址 CLD;DF=0 AG: MOVSW; MOV CX, 100;串长度(CX)=100 LOOP AG;(CX)=(CX)−1, ;(CX)≠0则转移 MOVSW;送1个字,(CX)=100
2. 串比较指令 串比较指令CMPSB/CMPSW (compare byte/word string) 格式:CMPSB/CMPSW 功能:把(DS):(SI)指定的字节/字单元内容减去(ES):(DI)指 定的字节/字单元内容,结果不送回(DS):(SI)指定的单元, 但影响状态标志位,且SI、DI的内容自动加(减)1/2。 例:检查数据段中首地址分别为STR1和STR2的两个长度 为50的字节串是否相等。若相等,则(BX)=0;若不相等, 则BX保存STR1中第1个不相同字节的偏移地址,并将该 数据保存到AL中。 CLD;DF=0 MOV CX, 50;设置串长度 MOV AX, DS;使(EX)=(DS) MOV ES, AX
2. 逻辑与指令 逻辑与指令AND (and) 格式:AND dest, src 功能:把dest的内容与src的内容按位进行逻辑与运算,并 把结果送回dest。 注意:dest不能为立即数;不允许两个操作数都为存储器 操作数;该指令执行后使CF=OF=0,并影响PF、ZF和SF。 例:MOV BL, 38H;(BL)=38H AND BL, 0FH;(BL)=08H, CF=OF=PF=ZF=SF=0 利用AND指令可以使目的操作数的某些位清0。 例:把AX中的D15、D11、D6、D1位保留,其余位清0。 AND AX, 8842H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
总线接口单元BIU (Bus Interface Unit)
负责8086CPU与存储器和I/O设备 功能: 间的信息传送。
8
执行单元EU (Execution Unit)
14
通用寄存器的名称与符号
① AX (Accumulator) --累加器
② BX (Base) --基址寄存器
③ CX (Count) --计数寄存器 ④ DX (Data) --数据寄存器 ⑤ SI (Source Index)是源变址寄存器
数据寄存器
⑥ DI (Destination Index)是目的变址寄存器
38
物理地址和逻辑地址的转换
由于段地址一般存放在段寄存器,所以物理地 址和逻辑地址的转换关系也可表示为: (段寄存器) (CS) 物理地址= (DS) (SS ) 左移4位 + 偏移地址
(ES)
逻辑地址的形式为 段寄存器:偏移地址
39
段寄存器
8086有4个16位专门存放段地址的段寄存器 CS--(Code Segment)(代码段)指明代码段的起 始地址 SS-- (Stack Segment)(堆栈段)指明堆栈段的起 始地址 DS-- (Data Segment)(数据段)指明数据段的起 始地址 ES-- (Extra Segment)(附加段)指明附加段的起 始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻 辑段均有各自的用途
27
数据信息的表达单位
计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1, 记做b 字节Byte:8个二进制位,D7~D0,记做B 字Word:16位,2个字节,D15~D0 双字DWord:32位,4个字节,D31~D0
28
数据的存储格式
D7 D0
地址
00006H 00005H 00004H 00003H
34
段地址和偏移地址 段起始地址的高16位。存 段地址(16位): 放在段寄存器中。 段地址说明逻辑段在主存中的起始位置。
偏移地址(16位): 在段内相对于段起始地址的偏 移值,取决于指令的寻址方式。
35
物理地址和逻辑地址概念
物理地址(20位): 也叫实际地址或绝对地址,是 CPU访问存储器时实际使用的 地址,由20位二进制表示。 CPU需要访问存储器时,采用物理地址。20位 物理地址在地址总线上传输。 逻辑地址: 是程序中使用的地址,它由段地址和段内偏 移地址所组成,段地址与段内偏移地址都为 16位的二进制数。
3
2.1.1 8086功能的扩展(续)
保护虚地址方式是IA-32结构微处理器的主要工作方 式,在此方式下,全部32条地址线都能寻址,故可 寻址高达4GB的物理存储器
3. 片内存储管理单元 ( MMU) 内存在计算机中的作用很大,电脑中所有运行的程序 都需要经过内存来执行,如果执行的程序很大或很多, 就会导致内存消耗殆尽。为了解决这个问题, Windows中运用了虚拟内存技术,即拿出一部分硬盘 空间来充当内存使用,当内存占用完时,电脑就会自 动调用硬盘来充当内存,以缓解内存的紧张。
2
2.1.1 8086功能的扩展 1. 从16位扩展为32位 2. 从实模式至保护模式 x86结构微处理器有两种主要的工作方式: 实地址方式 和保护虚地址方式。 实地址方式是为了与8086兼容而设置的方式。 在实地址方式下,具有32条地址线的x86结构微处理器 只有低20条地址线起作用,能寻址1MB的物理地址;此 时,x86系列结构微处理器相当于一个快速的8086,虽 然可以使用32位的数据寄存器,但远不能充分发挥x86 结构微处理器的全部功能。
OF DF IF TF SF ZF
图2-7 FLAGS寄存器
AF
PF
CF
16
(1)状态标志位
记录算术和逻辑运算结果的一些特征。由微处理器根据 计算的结果自动设置。为转移指令提供转移控制条件。 (1)符号标志位SF( Sign Flag,位7)
与运算结果的最高位相同。
(2)零标志位ZF( zero flag,位6) 如运算结果为0,则ZF=1,否则,ZF=0。 (3)溢出标志OF( overflow flag,位11) 当算术运算结果超出了机器能表示的范围称为溢出,此 时OF=1,否则OF=0。
40
四个段的用途
代码段:存放当前正在运行程序。 数据段:存放当前正在运行程序所用的数据。 堆栈段:堆栈是一种数据结构,它开辟了一 个比较特殊的存储区,并以“后进先出”的 方式来访问这一区域。 附加段:是附加的数据段,也用于数据的保存, 同时也是串处理指令的目的操作数存放区。
⑦ SP (Stack Pointer)为堆栈指针寄存器
⑧ BP (Base Pointer)为基址指针寄存器
指 针 寄 存 器
15
3、 FLAGS(标志)寄存器
16位FLAGS寄存器包含一组状态标志、一个控制标志 和两个系统标志。图2-7定义了此寄存器中的标志。 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
功能: 负责指令的执行。
9
8位微处理器与8086执行程序的方式
取指令→执行→取指令→执行...(串行工作) 时间 图2-2 取指 8位微处理器的执行顺序 取指 取指 . . . .
取指 取指
(并行工作)
等待 时间 图2-3 8086的执行顺序
10
执行
执行
执行
. . . .
2.3 8086微处理器的执行环境
17
整数范围
无符号数整数 8个二进制位表达无符号数整数的范围:0~255 16位表达的范围:0~65535 有符号数整数(处理器内部以补码表示) 8个二进制位表达有符号数整数的范围:-128~+127 16位表达的范围:-32768~+32767
18
溢出的判断
判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(包括不同符号数相 减),而运算结果的符号与原数据(包括减法的 被减数)符号相反时,产生溢出;因为,此时的 运算结果显然不正确 即:(+)+(+)=(-) (-)+(-)=(+) OF=1 (+)-(-)=(-) (-)-(+)=(+) 其他情况下,则不会产生溢出
19
状态标志位
(4)进位标志位CF(carry flag,位0) 如运算时最高位产生进位或借位,则CF=1,否则, CF=0。 (5)辅助进位标志位AF( auxiliary flag,位4) 如果第三位往第四位有进位或借位,则AF=1,否则, AF=0。
20
状态标志位
(6)奇偶标志位PF(parity flag,位2) 若运算结果的低8位中所含的1的个数为偶数,则 PF=1,否则,PF=0。
31
8086存储器的分段结构
Intel 8086微处理器采用了分段的方法对存储器进行 管理。
32
问题的提出
字长为16位的CPU能计算的最大存储器空
间为216=65536=64K,但8086CPU有20根地
址线,可以接上最大存储容量为
220=210*210=1024K=1M个存储单元,那么
字长为16位的CPU如何能访问完这1M个字
4
2.1.1 8086功能的扩展(续) 4. 浮点支持 早期的计算机CPU不具备浮点运算能 力, 从16位微 处理器开始,在16位微处理器的基础上设计了与之相 配合的专门用于浮点运算的协处理器---FPU:Float Point Unit,浮点运算单元 以前的FPU是一种单独芯片,如8087、80287、80387分 别与8086/8088、80286、80386配合使用。 在486之后, 英特尔把FPU与集成在CPU之内。
78H 56H 12H
34H
00002H
00001H 00000H
低地址
29
存储单元及其存储内容
每个存储单元都有一个编号,被称为存储 器物理地址(简称PA) 每个存储单元存放一个字节的内容
00002H单元存放有一个数据34H 表达为 (00002H)=34H
30
多字节数据存放方式
多字节数据在存储器中占连续的多个存储单元: ①存放时,低字节存入低地址,高字节存入高 地址(低对低,高对高); ②表达时,用它的低地址表示多字节数据占据 的地址空间。 上图中00002H“字”单元的内容为: (00002H) = 1234H 00002H“双字”单元的内容为: (00002H) = 78561234H
本章内容
2.1 80x86系列微处理器是8086的延伸
2.2 8086的功能结构
2.3 8086微处理器的执行环境
1
2.1 80x86系列结构微处理器与8086
80x86系列结构微处理器已经经历许多代, 但从使用者(包括程序员)的角度来看, 它是以8086处理器为基础,是一个兼容 的微处理器系列,是8086在功能上 和性能上的延伸。
在8086处理器上执行的程序或任务都有一组执行
指令的资源用于存储代码、数据和状态信息。这
些资源构成了8086处理器的执行环境。
11
2.3.1基本执行环境概要
地址空间
基本程序执行寄存器
堆栈 I/O端口
12
2.3.2 基本的程序执行寄存器 寄存器是微处理器内部暂存数据的存储单
元,以名称表示。
8086微处理内部共有14个寄存器: ① ② ③ ④ 8个通用寄存器 1个指令指针寄存器 1个标志寄存器 4个段寄存器
13
1. 通用寄存器
8086的16位通用寄存器是: AX BX CX DX SI DI BP SP 其中前4个数据寄存器都还可以分成高8位和低8位 两个独立的寄存器 8086的8位通用寄存器是: AL BL CL DL(低8位) AH BH CH DH(高8位 ) 对其中某8位的操作,并不影响另外对应8位的数 据