第二章 80x86计算机组织(modify)
第2章_3 80x86系统微处理器
分段部件SU(Segmentation Unit):有效地址的计算,从逻辑 分段部件 : 有效地址的计算, 地址到线性地址。 地址到线性地址。线性地址连同总线周期事务处理信息发送到分 页部件PU。 通过提供一个额外的寻址器件对逻辑地址空间进 页部件 。SU通过提供一个额外的寻址器件对逻辑地址空间进 行管理。 行管理。
80386的功能部件增加到了 个:总线接口、指令预取、指令译 的功能部件增加到了6个 总线接口、指令预取、 的功能部件增加到了 执行、分段和分页,它们能相对独立工作。 码、执行、分段和分页,它们能相对独立工作。
总线接口部件BIU(Bus Interface Unit):CPU与系统之间的接口。 与系统之间的接口。 总线接口部件 : 与系统之间的接口 产生存储器、I/O端口地址、传送数据和命令。总线周期为2个时 产生存储器、 / 端口地址、传送数据和命令。总线周期为 个时 端口地址 钟。 指令预取部件IPU(Instruction Prefect Unit):16个字节的预取 指令预取部件 : 个字节的预取 队列寄存器,读取4字节指令流 存到指令预取队列寄存器中。 字节指令流, 队列寄存器,读取 字节指令流,存到指令预取队列寄存器中。可 存放5条指令 条指令。 存放 条指令。
实现任务之间的隔离,实现指令和数据区的再定位。 实现任务之间的隔离,实现指令和数据区的再定位。
分页部件PU(Paging Unit):PU把由 或IPU产生的线性地址 把由SU或 分页部件 : 把由 产生的线性地址 转换成物理地址,管理物理地址空间。一页为4KB,每一段可以 转换成物理地址,管理物理地址空间。一页为 , 是一页,也可以是若干页。 是 芯片新增的部件, 是一页 , 也可以是若干页 。 PU是80386芯片新增的部件, 又是 芯片新增的部件 个可选件,若不使用PU, 的线性地址即是物理地址。 个可选件,若不使用 ,80386的线性地址即是物理地址 的线性地址即是物理地址
新编16_32位微型计算机原理及应用(李继灿主编)课件第2章
2. I/O空间: 486利用低16位地址线访问I/O端口,所 以I/O端口最多有216=64K,I/O地址空间为 0000H~FFFFH。 注意:I/O地址空间不分段 I/O地址空间与存储空间不重叠 CPU有一条控制线M/IO,在硬件设计上用 M/IO=1,参与存储器寻址,用M/IO=0参与 I/O寻址。 从PC/XT~Pentium,基于Intel微处理器的 系统机,实际上只使用低10位地址线,寻址 210=1024个I/O端口。
指 代码流 预取 令 译 指令 码 24位 2*16 总线 器
数据总线 线性地址总线 32 32
A2~A31 BE0~BE3 系统 地址总线
D0~D31 系统 数据总线
控制 总线
控制ROM 控制部分
系统 控制总线
指令队列
译码部分 指令预取部分
总线接口部分
一. 7个功能块: 1.总线接口单元: 产生三总线信号,进行存储器和I/O端口 的访问。
地址(32位) A2~A31、BE0~BE3 地址驱动器 系统地址总线
数据(32位) 写缓冲器 4*80 D0~D31 数据(32位) 数据总线收发器 系统数据总线 控制总线 系统控制总线
2.高速缓冲存储器(CPU内部的Cache): 存放从存储器中取出的最近要执行的指 令和数据,这样CPU就只需从Cache中取指令, 不必经常访问存储器了。
指 运算部分 微指令 令 代码流 控制部分 指令 译 24位 码 总线 器
指 令 预 取 队 列
5.控制器: 控制器采用微程序设计,根据指令译码 器送来的信息产生微指令,对运算器、存储 器管理部分……发出控制信号。 存储管 指 控制与保护 理部分 令 微指令 部件 译 运算部分 码 控制ROM 器 控制器
《汇编语言程序设计》(第四版)教案及答案解析
《汇编语言程序设计》教案附:习题参考答案《汇编语言程序设计》(第4版)钱晓捷主编前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (1)1.1进位计数制与不同基数的数之间的转换 (1)1.2二进制数和十六进制数的运算 (2)1.3计算机中数和字符的表示 (3)1.4几种基本的逻辑运算 (3)第 2 章 80X86计算机组织 (4)2.180X86微处理器 (4)2.2基于微处理器的计算机系统构成 (4)2.3中央处理机 (5)2.4存储器 (6)2.5外部设备 (7)第 3 章 80X86的指令系统和寻址方式 (8)3.180X86的寻址方式 (8)3.2程序占有的空间和执行时间 (10)3.380X86的指令系统 (10)第 4 章汇编语言程序格式 (27)4.1汇编程序功能 (27)4.2伪操作 (27)4.3汇编语言程序格式 (31)4.4汇编语言程序的上机过程 (34)第 5 章循环与分支程序设计 (37)5.1循环程序设计 (37)5.2分支程序设计 (38)5.3如何在实模式下发挥80386及其后继机型的优势 (38)第 6 章子程序结构 (40)6.1子程序的设计方法 (40)6.2子程序的嵌套 (41)6.3子程序举例 (41)第 7 章高级汇编语言技术 (43)7.1宏汇编 (43)7.2重复汇编 (44)7.3条件汇编 (45)第 8 章输入/输出程序设计 (46)8.1I/O设备的数据传送方式 (46)8.2程序直接控制I/O方式 (47)8.3中断传送方式 (47)第 9 章 BIOS和DOS中断 (50)9.1键盘I/O (50)9.2显示器I/O (52)9.3打印机I/O (53)9.4串行通信口I/O (54)第 10 章图形与发声系统的程序设计 (55)10.1显示方式 (55)10.2视频显示存储器 (55)10.3EGA/VGA图形程序设计 (56)10.4通用发声程序 (57)10.5乐曲程序 (58)第 11 章磁盘文件存取技术 (59)11.1磁盘的记录方式 (59)11.2文件代号式磁盘存取 (60)11.3字符设备的文件代号式I/O (61)11.4BIOS磁盘存取功能 (62)附录:《IBM—PC汇编语言程序设计》习题参考答案 (63)第一章.习题 (63)第二章.习题 (64)第三章.习题 (65)第四章.习题 (79)第五章.习题 (84)第六章.习题 (104)第七章.习题 (118)第八章.习题 (125)第九章.习题 (130)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
第二章 80x86计算机组织
3、每个字节单元中存放的信息称为该存储单元 的内容,可以表示数据、程序指令,也可表示 地址值。例如(0004)=78H 4、16位字存入存储器时,低位字节存入低地址, 高位字节存入高地址。图2.6中,(0004)=5678H, (0005)=3456H,(5678)=2F1EH, ((5678))=2F1EH X表示地址,(X)表示X单元中内容。
2、存储器(memory) 用于存放程序、数据、信息及中间结果。 RAM:随机存储器 ROM:只读存储器(存储BIOS) EPROM:可擦除只读存储器 FlashROM:闪速存储器
3、I/O子系统(输入/输出) 包括I/O设备及大容量存储器两类外部设备 1)I/O设备:显示器,键盘,打印机等 2)大容量存储器:外存,如磁盘、磁带、光盘 等 4、系统总线:连接CPU,存储器和I/O设备,用 于传送各部分之间信息
2)指针或变址寄存器 SP,BP,SI,DI (16位) 通常用于在段内寻址时提供偏移地址。 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄存器 SI (Source Index): 源变址寄存器 DI(Destination Index):目的变址寄存器
2、专用寄存器 1)IP(Instruction Pointer):指令指针寄存器,指 向下一条指令的首地址。 2)FLAGS:标志寄存器,共16位,用到其中9 位,根据有关指令的运行结果由CPU自动设 置,往往作为后续条件指令的转移控制条件。 OF-溢出标志 SF-符号标志 ZF-零标志 CF-进位标志 3、段寄存器:CS,DS,SS,ES
第四节 外部设备 一、外部设备:包括输入输出设备、大容量存储 器,如键盘、显示器、打印机、磁盘等。 外部设备与主机(CPU和寄存器)的通信是通过 外设接口进行的,每个接口包括一组寄存器。 这些寄存器一般有三种用途: 1、数据寄存器 2、状态寄存器 3、命令寄存器
汇编语言第2章80x86计算机组织
控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
二、一些名词术语(2)
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
标志符号 举例
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
80x86微机原理参考答案
80x86微机原理参考答案第一章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
深圳大学 郑海虹:《微机原理与汇编语言》课程教学大纲
掌握:中断处理程序的设计,设置和获取中断向量的方法
理解:BIOS和DOS中断调用概念和调用方法
教学目的
掌握BIOS和DOS系统功能调用。
内容提要
9.1键盘I/O
9.2显示器I/O
教学要求
掌握:BIOS与DOS的键盘中断和显示中断
教学目的
掌握基本图形操作以及图形程序设计方法,利用PC机的发声系统编写产生各种声音和乐曲的技术。
教学目的
了解8086μcpu的内部结构,存储器的实模式。
内容提要
2.180x86微处理器
2.2基于微处理器的计算机系统构成
2.3中央处理机
2.4存储器
2.5外部设备
教学要求
理解:微处理器的基本结构和工作过程
掌握;8088/8086微处理器的内部特性和功能
掌握:8088/8086微处理器的存储器组织和段寄存器的应用
教学目的
逐步熟悉和掌握汇编语言程序的格式,可以编写简单的顺序程序。
内容提要
4.1汇编程序功能
4.2伪操作
4.3汇编语言程序格式
4.4汇编语言的上机过程
教学要求掌握:Βιβλιοθήκη 编语言的上机过程,汇编语言源程序的格式
掌握:各类伪指令
教学目的
掌握汇编语言源程序的循环、分支设计方法。
内容提要
5.1循环程序设计
5.2分支程序设计
注:写明各学期教学总时数及各周学时数。
(三)主要内容
本课程主要介绍80x86计算机CPU的结构,存储器的组织方式,8086/8088计算机的寻址方式,8086/8088指令系统,80x86、Pentium增强和扩充指令,基本的汇编语言程序设计方法和技能及高级汇编语言技术。
汇编语言程序设计复习
知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。
十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。
8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。
第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。
(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。
存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。
eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。
已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。
如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。
数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。
《汇编语言》作业答案
3545233.doc 制作:江家宝《IBM—PC汇编语言程序设计》课后作业参考答案目录第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)3545233.doc 制作:江家宝第一章:基础知识1.1、用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(3) 4095 答:(3) 4095 =1111 1111 1111B=FFFH1.2、将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 答:(1) 10 1101B=2DH=451.3、将下列十六进制数转换为二进制数和十进制数:(4) 1234 答:(4) 1234H=1 0010 0011 0100B=46601.4、完成下列十六进制数的运算,并转换为十进制数进行校核:(3) ABCD-FE 答:(3) ABCD-FEH=AACFH=437271.5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
第二章 80x86计算机组织
80x86汇编语言程序设计
1. 状态标志取值的一般规则
ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否则 ZF = 0。
SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1, 否则SF = 0。 CF(Carry Flag):进位标志。若加法时结果最高位向前有进 位或减法时最高位向前有借位,则CF = 1,否则CF = 0。 OF(Overflow Flag):溢出标志。若带符号数的运算结果超 出了补码表示的范围,则OF = 1,否则OF = 0。 AF(Auxiliary Carry Flag):辅助进位标志。若加法时结果 低4位向前有进位或减法时结果低4位向前有借位,则AF = 1,否 则AF = 0。 PF(Parity Flag):奇偶标志。若结果最低字节中1的个数为 偶数,则PF = 1,否则PF = 0。
80x86程序可以存取的最小数据单位是字节。例如,若要读取的位 数不足8位,则只能先读出一个完整字节,再屏蔽掉其它位。
字的存储采取“低字节在低地址,高字节在高地址,字的地址由低 地址表示”的小端方式,双字也类似。
要正确理解内存单元的地址和值,地址表示位置,值是相应位置处 的内容。同一地址既可以看作字节单元地址,也可以看作字甚至双字 单元地址,取决于具体的使用方式。
2013-1-20
80x86汇编语言程序设计
80x86 CPU有3种工作模式:实模式、保护模式和虚拟8086模 式。 在实模式下,段地址和偏移地址均为16位。20位物理地址由 16位段地址左移4位加16位偏移地址得到,只能寻址1MB的内存 空间,且每段≤64KB。 在实模式下,32位CPU下的程序可以使用32位寄存器和32位操 作数,但采用32位寄存器表示偏移地址时,只使用低16位,高 16位为0。CS:IP总是指向下一条要执行的指令,EIP的高16位为 0。SS:SP指向堆栈段的栈顶,ESP的高16位为0。 状态标志是CPU进行条件判断和控制程序执行流程的依据,最 常用的是4个:CF、OF、SF和ZF。其中,CF表示无符号溢出,OF 表示带符号溢出。
汇编教程,汇编指令详解
A 0 0 1 1
B 0 1 0 1
AvB 0 1 1 1
21
1.4.3 “非”运算(NOT) 如变量为A,则它的“非”运算的结果用 A来 表示。“非”运算规则可用下表说明: A A 0 1 1 0
22
1.4.4 “异或”运算(XOR Exclusive—OR)
“异或”运算可用符号 来表示。 运算规则:即当两个变量的取值相异时,它们 的“异或” 结果为1。
13
用补码表示数时的符号扩展问题
符号扩展:将一个数从位数较少扩展到 位数较多。正数的符号扩展:高位补0, 负数的符号扩展:高位补1。
大学_《微型计算机原理及应用》(吴宁著)课后习题答案下载
《微型计算机原理及应用》(吴宁著)课后习题答案下载《微型计算机原理及应用》(吴宁著)内容提要目录第1章计算机基础1.1 数据、信息、媒体和多媒体1.2 计算机中数值数据信息的表示1.2.1 机器数和真值1.2.2 数的表示方法——原码、反码和补码1.2.3 补码的运算1.2.4 定点数与浮点数1.2.5 BCD码及其十进制调整1.3 计算机中非数值数据的信息表示1.3.1 西文信息的表示1.3.2 中文信息的表示1.3.3 计算机中图、声、像信息的表示1.4 微型计算机基本工作原理1.4.1 微型计算机硬件系统组成1.4.2 微型计算机软件系统1.4.3 微型计算机中指令执行的基本过程 1.5 评估计算机性能的主要技术指标1.5.1 CPU字长1.5.2 内存储器与高速缓存1.5.3 CPU指令执行时间1.5.4 系统总线的传输速率1.5.5 iP指数1.5.6 优化的内部结构1.5.7 I/O设备配备情况1.5.8 软件配备情况习题1第2章 80x86/Pentium微处理器2.1 80x86/Pentium微处理器的内部结构 2.1.1 8086/8088微处理器的基本结构2.1.2 80386CPU内部结构2.1.3 80x87数学协处理器2.1.4 Pentium CPU内部结构2.2 微处理器的主要引脚及功能2.2.1 8086/8088 CPU引脚功能2.2.2 80386 CPU引脚功能2.2.3 Pentium CPU引脚功能2.3 系统总线与典型时序2.3.1 CPU系统总线及其操作2.3.2 基本总线操作时序2.3.3 特殊总线操作时序2.4 典型CPU应用系统2.4.1 8086/8088支持芯片2.4.2 8086/8088单CPU(最小模式)系统 2.4.3 8086/8088多CPU(最大模式)系统 2.5 CPU的工作模式2.5.1 实地址模式2.5.2 保护模式2.5.3 虚拟8086模式2.5.4 系统管理模式2.6 指令流水线与高速缓存2.6.1 指令流水线和动态分支预测2.6.2 片内高速缓存2.7 64位CPU与多核微处理器习题2第3章 80x86/Pentium指令系统3.1 80x86/Pentium指令格式3.2 80x86/Pentium寻址方式3.2.1 寻址方式与有效地址EA的概念 3.2.2 各种寻址方式3.2.3 存储器寻址时的段约定3.3 8086/8088 CPU指令系统3.3.1 数据传送类指令3.3.2 算术运算类指令3.3.3 逻辑运算与移位指令3.3.4 串操作指令3.3.5 控制转移类指令3.3.6 处理器控制类指令3.4 80x86/Pentium CPU指令系统3.4.1 80286 CPU的增强与增加指令 3.4.2 80386 CPU的增强与增加指令 3.4.3 80486 CPU增加的指令3.4.4 Pentium系列CPU增加的指令 3.5 80x87浮点运算指令3.5.1 80x87的数据类型与格式3.5.2 浮点寄存器3.5.3 80x87指令简介习题3第4章汇编语言程序设计4.1 程序设计语言概述4.2 汇编语言的程序结构与语句格式 4.2.1 汇编语言源程序的框架结构4.2.2 汇编语言的语句4.3 汇编语言的伪指令4.3.1 基本伪指令语句4.3.2 80x86/Pentium CPU扩展伪指令 4.4 汇编语言程序设计方法4.4.1 程序设计的基本过程4.4.2 顺序结构程序设计4.4.3 分支结构程序设计4.4.4 循环结构程序设计4.4.5 子程序设计与调用技术4.5 模块化程序设计技术4.5.1 模块化程序设计的特点与规范4.5.2 程序中模块间的关系4.5.3 模块化程序设计举例4.6 综合应用程序设计举例4.6.1 16位实模式程序设计4.6.2 基于32位指令的实模式程序设计 4.6.3 基于多媒体指令的实模式程序设计 4.6.4 保护模式程序设计4.6.5 浮点指令程序设计4.7 汇编语言与C/C 语言混合编程4.7.1 内嵌模块方法4.7.2 多模块混合编程习题4第5章半导体存储器5.1 概述5.1.1 半导体存储器的分类5.1.2 存储原理与地址译码5.1.3 主要性能指标5.2 随机存取存储器(RAM)5.2.1 静态RAM(SRAM)5.2.2 动态RAM(DRAM)5.2.3 随机存取存储器RAM的应用5.3 只读存储器(ROM)5.3.1 掩膜ROM和PROM5.3.2 EPROM(可擦除的PROM)5.4 存储器连接与扩充应用5.4.1 存储器芯片选择5.4.2 存储器容量扩充5.4.3 RAM存储模块5.5 CPU与存储器的典型连接5.5.1 8086/8088 CPU的'典型存储器连接5.5.2 80386/Pentium CPU的典型存储器连接 5.6 微机系统的内存结构5.6.1 分级存储结构5.6.2 高速缓存Cache5.6.3 虚拟存储器与段页结构习题5第6章输入/输出和中断6.1 输入/输出及接口6.1.1 I/O信息的组成6.1.2 I/O接口概述6.1.3 I/O端口的编址6.1.4 简单的I/O接口6.2 输入/输出的传送方式6.2.1 程序控制的输入/输出6.2.2 中断控制的输入/输出6.2.3 直接数据通道传送6.3 中断技术6.3.1 中断的基本概念6.3.2 中断优先权6.4 80x86/Pentium中断系统6.4.1 中断结构6.4.2 中断向量表6.4.2 中断响应过程6.4.3 80386/80486/Pentium CPU中断系统6.5 8259A可编程中断控制器6.5.1 8259A芯片的内部结构与引脚6.5.2 8259A芯片的工作过程及工作方式 6.5.3 8259A命令字6.5.4 8259A芯片应用举例6.6 82380可编程中断控制器6.6.1 控制器功能概述6.6.2 控制器主要接口信号6.7 中断程序设计6.7.1 设计方法6.7.2 中断程序设计举例习题6第7章微型机接口技术7.1 概述7.2 可编程定时/计数器7.2.1 概述7.2.2 可编程定时/计数器82537.2.3 可编程定时/计数器82547.3 可编程并行接口7.3.1 可编程并行接口芯片8255A7.3.2 并行打印机接口应用7.3.3 键盘和显示器接口7.4 串行接口与串行通信7.4.1 串行通信的基本概念7.4.3 可编程串行通信接口8251A7.4.3 可编程异步通信接口INS82507.4.4 通用串行总线USB7.4.5 I2C与SPI串行总线7.5 DMA控制器接口7.5.1 8237A芯片的基本功能和引脚特性 7.5.2 8237A芯片内部寄存器与编程7.5.3 8237A应用与编程7.6 模拟量输入/输出接口7.6.1 概述7.6.2 并行和串行D/A转换器7.6.3 并行和串行A/D转换器习题7第8章微型计算机系统的发展8.1.1 IBM PC/AT微机系统8.1.2 80386、80486微机系统8.1.3 Pentium及以上微机系统8.2 系统外部总线8.2.1 ISA总线8.2.2 PCI局部总线8.2.3 AGP总线8.2.4 PCI Express总线8.3 网络接口与网络协议8.3.1 网络基本知识8.3.2 计算机网络层次结构8.3.3 网络适配器8.3.4 802.3协议8.4 80x86的多任务保护8.4.1 保护机制与保护检查8.4.2 任务管理的概念8.4.3 控制转移8.4.4 虚拟8086模式与保护模式之间的切换 8.4.5 多任务切换程序设计举例习题8参考文献《微型计算机原理及应用》(吴宁著)目录本书是普通高等教育“十一五”国家级规划教材和国家精品课程建设成果,以教育部高等学校非计算机专业计算机基础课程“基本要求V4.0”精神为指导,力求做到“基础性、系统性、实用性和先进性”的统一。
IBM—PC(80x86)汇编语言与接口技术-第2章 80x86计算机组织
• 80386是1985年研制出的一个32位微处理器, 内部及外部数据总线均为32位,地址线也为32 位,因此它可处理4G(232)字节的物理存储 空间。
• 1989年Intel公司又研制出新一代的微处理器 80486,80486芯片内除了有一个与80386相同 结构的主处理器外,还集成了一个浮点处理部 件FPU以及一个8K字节的高速缓冲存储器 (cache),使80486的计算速度和总体性能比 80386有了明显的提高。
• Intel公司在1982年推出了80286微处理器,它仍 然是16位结构。80286的内部及外部数据总线都 是16位的,但它的地址线是24位的,可寻址16M 字节的存储空间。
80286有两种工作方式,即实模式和保护模式: 实模式与8086工作方式相同,但速度比8086快。
保护模式除了仍具有16M字节的存储器物理地址空 间外,她还能为每个任务提供1G字节的虚拟存储 器地址空间。保护方式把操作系统及各任务所分配 到的地址空间隔离开,避免程序之间的相互干扰, 保证系统在多任务环境下正常工作。
• 8086是1978年Intel公司推出的16位微处理器。
(1)8086有16位数据总线,处理器与外部传送数据 时,一次可传送16位二进制数。
(2)8086有20位地址总线,寻址空间提高到1M字节。
(3)8086采用了流水线技术,可以实现处理器的内 部操作与存储器或I/O接口之间的数据传送操作重叠 进行,从而提高了处理器的性能。
2.2 基于微处理器的 计算机系统的构成
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
80x86汇编语言程序设计 概述及解释说明
80x86汇编语言程序设计概述及解释说明1. 引言1.1 概述在计算机科学领域中,汇编语言是一种与计算机硬件直接交互的低级语言。
它通过使用特定的指令集和对应的操作码,与硬件进行通信和控制。
80x86汇编语言是一种针对Intel 8086微处理器系列的汇编语言。
本文将介绍80x86汇编语言程序设计的基本概念、语法规则以及开发环境与工具。
1.2 文章结构本文将按照如下结构进行介绍:- 引言部分(当前部分)将提供关于文章内容和结构的总体说明。
- 在第二部分中,我们将概述汇编语言的基本概念,并详细介绍80x86架构。
- 第三部分将重点介绍程序开发环境与工具,包括常用的编译、链接和调试工具,并提供搭建开发环境的指南。
- 第四部分将涵盖80x86汇编语言的基本概念和常用语法指南,包括数据类型和寻址方式、寄存器和标志位、以及指令集和汇编指令格式等内容。
- 第五部分我们将通过程序设计实例分享一些技巧,包括简单程序示例及解释、循环结构及优化技巧分享,以及数组与字符串处理技巧。
- 最后,在结论部分将总结回顾本文的主要内容,并对80x86汇编语言程序设计在未来的发展提出展望,同时引出一些问题供读者思考。
1.3 目的本文的目的是为读者提供一个全面且系统性的80x86汇编语言程序设计概述与解释说明。
通过阅读本文,读者将了解到80x86汇编语言的基本概念和语法规则,并掌握相关开发环境和工具的使用。
同时,通过实例和技巧分享,读者能够加深对80x86汇编语言程序设计的理解,并应用于实际项目中。
我们希望读者能够通过本文学习到更多关于80x86汇编语言程序设计方面的知识,并在日后的学习与工作中能够灵活运用这些知识。
2. 80x86汇编语言程序设计概述2.1 汇编语言简介汇编语言是一种低级的计算机编程语言,它使用助记符来代表计算机的机器指令。
与高级编程语言相比,汇编语言更接近计算机底层硬件的操作,可以对计算机进行更细粒度的控制和优化。
(完整word版)《微机原理及应用》习题答案
(完整word版)《微机原理及应用》习题答案《微机原理及应用》习题答案教材:《80X86/Pentium微型计算机原理及应用》答案第一章计算机基础1-3(1)01101110 真值=110(2)10001101 真值=-131-4(1)+010111[+010111]原=[+010111]反=[+010111]补=00010111 (2) +101011[+101011]原=[+101011]反=[+101011]补=00101011 (3) –101000[-101000]原=10101000 [-101000]反=11010111 [-101000]补=11011000(4) -111111[-111111]原=10111111 [-111111]反=11000000 [-111111]补=110000011-6(1) [x1+y1]补=[x1]补+ [y1]补=00010100+00100001=00110101(2)[x2-y2]补=[x2]补+ [-y2]补=11101100+00100001=000011011-7 (1)85+60解:[-85]补=10101011 [60]补=00111100[-85]补+[60]补=10101011+00111100=11100111 (11100111)补=10011001 真值=-25CS=0,CP=0, CS⊕CP=0 无溢出(4)-85-60[-85]补=10101011 [-60]补=11000100[-85]补+[-60]补=10101011+11000100=101101111 CS=1, CP=0 CS⊕CP=1 有溢出1-8(1) [x]补+ [y]补=01001010+01100001=10101011 CS=0, CP=1 CS⊕CP=1 有溢出(2) [x]补- [y]补=[x]补+ [-y]补=01001010- 01100001=01001010+10101010=100010110CS=1, CP=1 CS⊕CP=0 无溢出1-9(1) (127)10=(000100100111)BCD(2) (74)H=(116)10=(000100010110)BCD1-10(1) 41H 代表A(2) 72H 代表r(3) 65H 代表e(4) 20H 代表SP1-14(1) 69.57(69.57)10=(1000101.100)B=0.1000101100 X 27=0.1000101100 X 2+111浮点规格数为011101000101(2)-38.405(-38.405)10=(-100110.011)B-100110.011= -0.100110011 x 26 = - 0.100110011 x 2110浮点规格数为011011001100(3) - 0.3125(-0.3125)10=(-0.0101)2=(-0.101)2 x 2-001浮点规格数为1111110100001.+0.008342.(+0.00834)10=(0.000000100010001)2=(0.100010001)2 x 2-1103.浮点规格数为1010010001004.1-155.(1) (69.57)10=(1000101.10010001111010111)26. =(1.00010110010001111010111)2 x 21107. p=6+127=133=(10000101)28.单精度浮点数为010000101000101100100011110101119.(2)(-38.405)10=(-100110.011001111010111000)210. = - (1.00110011001111010111000)2 x 210111. p=5+127=132=(10000100)212.单精度浮点数为1100001000011001100111101011100013.(3) (-0.3125)10=(-0.0101)2=(-1.01)2 x 2-1014. p=-2+127=125=(1111101)215.单精度浮点数为10111110101000000000000000000000第二章 80X86/Pentium 微处理器2-3IO/M DT/R DEN RD WR读存储器 0 0 0 0 1写存储器 0 1 0 1 02-17PA=CS x 16+IP IP的范围为0000H~FFFFH 而CS为A000H因此PA的范围即现行代码段可寻址的存储空间范围为A0000H~AFFFFH2-201234ABCDH=00010010001101001010101111001101 BPA=SS x 16+SP=A0000H+0100H=A0100H栈顶SP=0100H-4=00FCH11001101 A00FCH101010110011010000010010 A0100F2-21(1) 1278H+3469H=0001 0010 0111 1000+0011 0100 0110 1001=0100 0110 1110 0001SF=0 ZF=0 AF=1 PF=1 CF=0 OF=0(2) 54E3H-27A0H=0101 0100 1110 0011+1101 1000 0110 0000=1 0010 1101 0100 0011SF=0 ZF=0 AF=1 PF=0 CF=0 OF=0当进行16位或8位加或减运算时,若最高位产生进位或借位时,将CF置1,否则为0,当进行带符号数补码运算时,运算结果超出了机器所能表示的数值范围,就产生溢出,将OF置1,否则OF置0,即OF用来表示有符号数运算的溢出,而CF则用来表示无符号数运算的溢出。
微机8088第二章
15
1 0 0 1 1
OF DF IF TF SF ZF
0 1 0 1
AF PF
0
CF
FR
实模式下标志寄存器有9个标志位:6个状态标志位,3个控制标志位 状态标志位反映算术或逻辑运算后结果的状态: CF——进/借位标志。D7/D15向高位有进/借位,CF为1,否则为0。 PF——奇偶标志,运算结果中1的个数为偶数置1 AF——辅助进/借位标志,低4位/ 8位向高位产生进/借位置1,用于十进 制数运算调整。 ZF — 零标志,结果为0置1 SF ——符号标志,与运算结果的最高位相同。 OF — 溢出标志。反映有符号数作加法或减法运算时,运算结果是否 出现溢出的状态。OF=1,溢出。 字节:+127~-128; 字:+32767~-32768
微处理器的集成度
•指微处理器芯片上集成的晶体管的密度。 •最早Intel 4004的集成度为2250个晶体管,Pentium III的集 成度已经达到750万个晶体管以上,集成度提高了3000多倍 。
微处理器的发展概况 1971年~1977年是微处理器发展的早期阶段:
1971年:Intel 4004,是世界上
第三代:80386(1985年-1988年)
•第一个实用的32位微处理器,采用了 1.5m工艺,集成了275,000个晶体管 ,工作频率达到16MHz。80386的内 部寄存器、数据总线和地址总线都是 32 位 的 。 通 过 32 位 的 地 址 总 线 , 80386的可寻址空间达到4GB。
•80386的其他一些版本:80386SX,包含16位数据总线 和24位地址总线,寻址空间为16MB;80386SL/ 80386SLC,包含 l6位数据总线和25位地址总线,寻址 空间为32MB。由于这些微处理器由于与I/O之间传输 为16位,故也称为准32位微处理器。
chapter2 Intel 80x86 系列微处理器简介
18 18
第2章 IA-32结构微处理器
奔腾 II和奔腾 III
Intel Pentium II 处理器把 MMX 技术加至 P6 系列处理器,并具 有新的包装和若干硬件增强。第一级数据和指令 caches 每个扩展至 16 K 字节,支持二级 cache 的尺寸为 256 K 字节、512 K 字节和1 M 字节。
第2章 IA-32结构微处理器
Intel 80x86 系列微处理器简介 认识典型的CPU微处理器 ●了解80x86 系列微处理器。 ●了解典型的CPU芯片。 ●熟悉Intel系列微处理器。
1 1
第2章 IA-32结构微处理器
典型的CPU微处理器外观图 从1971年Intel公司推出的4位微处理器Intel4004以来,经 过30多年的发展,CPU已经从4位发展到目前正在使用的 64位。发展过程中一些典型的CPU芯片如图所示。
1985年10月Intel公司推出了32位微处理器Intel 80386。 1989年4月Intel公司推出了32位微处理器Intel 80486。 1993年3月Intel公司推出了32位微处理器Intel Pentium(也称 80586 )。 1995年11月推出32位微处理器Intel Pentium Pro(也称为80686)。 1997年1月Intel公司推出了32位微处理器Intel Pentium with MMX。 1997年5月Intel公司推出了32位微处理器Intel Pentium Ⅱ。
微机原理与接口技术(第三版)&电子工业出版社&课本习题答案
&电子工业出版社&第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086系统中物理地址的形成过程。
8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。
8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。
通过一个20位的地址加法器将这两个地址相加形成物理地址。
具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
③、数据段(Data Segment) : 数据段存放运行程序所用的数据
数据段寄存器DS存放数据段的段地址 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移 地址 处理器利用DS:EA存取数据段中的数据
④、附加段(Extra Segment) : 附加段是附加的数据段,也用于数据的保存:
------------------ --------------------- ---------------------------------------------
HLT
停机
指令执行过程见下页图
指令执行过程(取指/译码/执行)
输出指 置初值 令地址
①
②
时序控制信号(控制命令)
③ +1
输出
时序逻辑电路
;数据段超越,使用数据段的数据
;附加段超越,使用附加段的数据
段超越的示例
• 没有段超越的指令实例:
MOV AX,[2000H] ;AX←DS:[2000H] ;从默认的DS数据段取出数据
• 采用段超越前缀的指令实例:
MOV AX,ES:[2000H] ;AX←ES:[2000H] ;从指定的ES附加段取出数据
– – – – CS(代码段)指明代码段的起始地址 SS(堆栈段)指明堆栈段的起始地址 DS(数据段)指明数据段的起始地址 ES(附加段)指明附加段的起始地址
• 每个段寄存器用来确定一个逻辑段的起始地 址,每种逻辑段均有各自的用途
①、代码段(Code Segment): 代码段用来存放程序的指令序列
• 若运算结果为0,则ZF = 1; 否则ZF = 0 注意:ZF为1表示的结果是0 3AH + 7CH=B6H,结果不是零:ZF = 0
84H + 7CH=(1)00H,结果是零:ZF = 1
符号标志SF(Sign Flag)
• 运算结果最高位为1,则SF = 1; 否则SF = 0
有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态
(3).控制寄存器
指令指针寄存器IP :是一个16位的寄存器,存放EU要执行的 下一条指令的偏移地址,用以控制程序中指令的执行顺序,实 现对代码段指令的跟踪 。 标志寄存器F :是一个16位的寄存器,共9个标志,其中6个用 作状态标志,3个用作控制标志。 A、状态标志:状态标志用来反映EU执行算术和逻辑运算 以后的结果特征。 CF:进位标志 ;PF:奇偶标志 ;AF:辅助进位标志 ZF:零标志 ;SF:符号标志 ;OF:溢出标志 B、控制标志 :控制标志是用来控制CPU的工作方式或工 作状态 。 TF:陷阱标志或单步操作标志 :IF:中断允许标志 DF:方向标志
AX:称为累加器,是算术运算时使用的主要寄存器,所有外部设备
的输入输出指令只能使用AL或AX作为数据寄存器。 BX:称为基址寄存器,它可以用作数据寄存器,在访问存储器时, 可以存放被读写的存储单元的地址,是具有双重功能的寄存器。
CX:称为计数寄存器,它可以用作数据寄存器,在字符串操作、 循环操作和移位操作时用作计数器。 DX:称为数据寄存器,它可以用作数据寄存器,在乘、除法中 作为辅助累加器,在输入输出操作中存放接口的地址。
附加段寄存器ES存放附加段的段地址 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移 地址 处理器利用ES:EA存取附加段中的数据 串操作指令将附加段作为其目的操作数的存放区域
⑤、如何分配各个逻辑段?
程序的指令序列必须安排在代码段 程序使用的堆栈一定在堆栈段 程序中的数据默认是安排在数据段,也经常安排在附加段,尤其
溢出和进位有什么区别?
处理器怎么处理,程序员如何运用?
如何判断是否溢出?
溢出和进位的对比
例1:3AH + 7CH=B6H
无符号数运算: 有符号数运算: 58+124=182 范围内,无进位 58+124=182 范围外,有溢出 CF=0 OF=1
例2:AAH + 7CH=(1)26H
无符号数运算:
3AH + 7CH=B6H,最高位D7=1:SF = 1
84H + 7CH=(1)00H,最高位D7=0:SF = 0
奇偶标志PF(Parity Flag)
• 当运算结果最低字节中“1”的个数为零 或偶数时,PF = 1;否则PF = 0
PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作 3AH + 7CH=B6H=10110110B
有符号数运算:
170+124=294 范围外,有进位 -86+124=28 范围内,无溢出
CF=1 OF=0
辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)有进位或
借位时,AF = 1;否则AF = 0。
这个标志主要由处理器内部使用, 用于十进制算术运算调整指令中,用 户一般不必关心
标志寄存器 ( FLAGS / PSW )
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF
AF
PF
CF
条件码标志:
OF SF ZF CF AF PF 溢出标志 符号标志 零标志 进位标志 辅助进位标志 奇偶标志
控制标志:
DF IF TF 方向标志 中断标志 陷阱标志 AX, BX
取指令 指令译码
取操作数
执行指令
指令周期
存结果
1。CPU如何知道从哪里取出程序的第一条指令?——操作系统 2。CPU如何按程序控制流执行指令?——程序计数器
3。CPU如何知道从哪里取操作数?——地址、寻址方式
例:计算5+8
汇编语言程序 MOV AL, 5 ADD AL, 8 对应的机器指令 对应的操作 10110000 00000101 00000100 00001000 11110100 将立即数1传送到累加寄存器AL中 计算两个数的和,结果存放到AL中
是串操作的目的区必须是附加段 数据的存放比较灵活,实际上可以存放在任何一种逻辑段中
⑥、段超越前缀指令 • 没有指明时,一般的数据访问在DS段;使用BP 访问主存,则在SS段 • 默认的情况允许改变,需要使用段超越前缀指 令;8086指令系统中有4个: CS: SS: DS: ES:
;代码段超越,使用代码段的数据 ;堆栈段超越,使用堆栈段的数据
代码段寄存器CS存放代码段的段地址 指令指针寄存器IP指示下条指令的偏移地址 处理器利用CS:IP取得下一条要执行的指令
②、堆栈段(Stack Segment): 堆栈段确定堆栈所在的主存区域
堆栈段寄存器SS存放堆栈段的段地址 堆栈指针寄存器SP指示堆栈栈顶的偏移地址 处理器利用SS:SP操作堆栈顶的数据
(2) 4个专用寄存器,即BP、SP、SI、DI;
主要用来存放操作数的偏移地址(即操作数的段内地址)。 SP:称为堆栈指针寄存器,在堆栈操作中存放栈顶的偏移地址。 BP:称为基址指针寄存器,常用作堆栈区的基地址寄存器。 SI:称为源变址寄存器,主要用于存放地址,在字符串操作中存放
源操作数的偏移地址。变址寄存器内存放的地址在数据传送完成后, 具有自动修改的功能。例如,传送1字节数据后把地址加1,为下次 传送做好准备,变址寄存器因此得名。 DI:称为目的变址寄存器,主要用于存放地址,在字符串操作中存 放目的操作数的偏移地址。
第二章 80x86计算机组织
计算机系统
存储器
中央处理机
外部设备
一、 计算机系统
地址总线 AB 输 入 设 备 输 出 设 备 数据总线 DB 控制总线 CB
CPU
存 储 器
I/O 接 口
I/O 接 口
程序的执行过程
程序
指令1 指令2 指令3 指令4 …… 指令n 操作码 操作数
执行
MPU 等待取指1 执行1 等待取指2 执行2
等待取指3 执行3
总线
忙
闲
忙
闲
忙
闲
传统微处理器的指令执行过程
BIU
EU 总线 忙 取指1 取指2 取指3 取指4 取指5 取指6 执行6
执行1 忙
执行2 忙
执行3 忙
执行4 忙
执行5 忙
8086CPU的指令执行过程
3. 总线接口部件的组成:
总线接口部件负责与存储器、I/O端口传送数据 ,由下列4部分 组成: (1) 4个段地址寄存器(CS、DS、ES、SS) 8086/8088 CPU 总线接口部件 BIU 中设置有 4 个 16 位段寄存器, 它们是代码段寄存器CS,数据段寄存器DS,附加段寄存器ES和 堆栈段寄存器SS。
2.总线接口部件BIU
总线接口部件BIU内部设有四个16位段地址寄存器:代 码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加 段寄存器ES,一个16位指令指针寄存器IP,一个6字节指令 队列缓冲器,20位地址加法器和总线控制电路。 主要功能:根据执行部件EU的请求,负责完成CPU与 存储器或I/O设备之间的数据传送。
结果中有5个1,是奇数:PF = 0
溢出标志OF(Overflow Flag)
• 若算术运算的结果有溢出, 则OF=1;否则 OF=0
3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0
溢出标志OF(Overflow Flag)
问题
什么是溢出?
1011 0000 锁存数据
MOV A, 5 ADD A, 8 HLT
⑥
⑤ 读写命令
读写控制电路
1.执行部件EU
执行部件中包含一个16位的算术逻辑单元(ALU),8 个16位的通用寄存器,一个16位的状态标志寄存器,一个数 据暂存寄存器和执行部件的控制电路。 功能:从BIU的指令队列中取出指令代码,经指令译码 器译码后执行指令所规定的全部功能。执行指令所得结果或 执行指令所需的数据,都由 EU 向 BIU 发出命令,对存储器 或I/O接口进行读/写操作。