第二章 80x86计算机组织 § x86微处理器 § 2.2 基于微处理器的计算机系统构成 § 2.3 中央处理机

Slides:



Advertisements
Similar presentations
2017年3月5日 单片机原理与应用 背景知识调查.
Advertisements

第2章 微处理器 2.1 概述 /8086微处理器 微处理器 X86/Pentium微处理器
计算机基础知识 丁家营镇九年制学校 徐中先.
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第 2 章 8086 系 统 结 构 中国科学技术大学 何克东.
汇编语言与接口技术 教师:范新民.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
 指令系统  寻址方式 第3章 80x86的指令系统和寻址方式 一组指令的集合 指令 与数据有关的寻址方式 与转移地址有关的寻址方式
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
汇编语言程序设计 Assembly Language Programming
第2章 微型计算机基础.
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
逆向工程-汇编语言
/8088指令系统 为便于理解指令的形式和功能, 对指令中操作数符号的约定如下: 大小写字母无区别
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第四章 典型CPU及指令系统举例.
第2章 汇编语言与汇编程序 ——8086/8088指令系统 mov ax,12h call display Jmp 1234h.
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
第3章 寻址方式 罗文坚 中国科大 计算机学院
第2章 IA-32结构微处理器 退出 2.1 IA-32结构的概要历史 2.2 IA-32 PROCESSOR的功能结构
第3章 8086/8088指令系统 mov ax,12h call display Jmp 1234h.
走进编程 程序的顺序结构(二).
7.1 机器指令 7.2 操作数类型和操作类型 7.3 寻址方式 7.4 指令格式举例 7.5 RISC 技术.
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
微型计算机原理及应用.
Assembly Language Programming
第五章 微处理器.
8086 指令系统特点 可变长指令:指令格式比较复杂。
1.3 微型计算机的结构和工作原理.
逆向工程-汇编语言
CPU结构和功能.
第二章 IBM-PC微机的功能结构 2.1 IBM-PC微机基本结构 一、 微机的一般构成 一般计算机应包括五大部件:
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
第二章 8086微处理器. 第二章 8086微处理器 微处理器的基本结构 8086微处理器的主要特性和内部结构 8086CPU的工作模式和引脚信号 8086的存储器管理 8086的总线操作和时序.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
单片机应用技术 项目一 循环彩灯装置 第3讲 8051单片机的存储器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第3章 指令系统和寻址方式 3.1指令系统概述 /8086CPU的寻址方式 3.3 指令的机器码表示方法(略)
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
第十章 输入输出程序设计 10.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式.
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
本节内容 标志寄存器.
第2章 16位和32位微处理器 16位微处理器8086/ 位微处理器
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第二章 8086系统结构 /8086的存储器组织 的系统配置及引脚功能 CPU时序
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第三章 CPU子系统 西南石油大学计算机科学学院 主讲教师 杨 梅 联系电话:
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
本节内容 JCC 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Presentation transcript:

第二章 80x86计算机组织 § 2.1 80x86微处理器 § 2.2 基于微处理器的计算机系统构成 § 2.3 中央处理机 § 2.2 基于微处理器的计算机系统构成 § 2.3 中央处理机 § 2.4 存储器 § 2.5 外部设备

CPU是计算机的心脏,是控制程序的核心。只有真正了解CPU的结构和运行机理,才能真正编出优秀的程序。

§ 2.2 基于微处理器的计算机系统构成 系统资源:CPU、存储器、I/O端口

微处理器的地址与数据总线宽度 微处理器 DB宽度 AB宽度 最大物理 存储空间 8086/8088 16 20 1MB 80386/80486 32 4GB Pentium 64 PentiumII 36 64GB PentiumIII PentiumIV

§ 2.3 中央处理机 一、Intel 8088/8086微处理器的功能结构 1.编程结构 二、8086/8088的寄存器组 1.通用寄存器 § 2.3 中央处理机 一、Intel 8088/8086微处理器的功能结构 1.编程结构 2.工作过程 二、8086/8088的寄存器组 1.通用寄存器 2.段寄存器 3.控制寄存器

8086编程结构 ∑ ALU 内部暂存器 IP ES SS DS CS 输入/输出控制电路 外部总线 执行部分控制电路 1 2 3 4 5 6 ∑ ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 8位 8086编程结构

编程结构 BIU(总线接口部件) 负责与存储器及I/O设备交换信息 指令 数据 EU(执行部件) 负责指令的执行

工作过程 两部分并行工作,提高了工作效率 每当指令队列中有两个空字节,BIU自动把内存中的指令送入指令队列中 EU从指令队列中取出指令代码去执行(此时,BIU可继续取指)。如在指令执行过程中需要访问存储器或I/O设备,则EU会请求BIU进入总线周期,去完成访问存储器或I/O端口的操作 BIU处于空闲状态,则立即响应EU的总线请求 BIU正在取指,完成当前取指操作后响应EU的请求 当指令队列已满,且EU没有总线请求时, BIU进入空闲状态 在执行转移、调用和返回指令时,BIU指令队列的原有内容会被自动清除,而装入转移目标处的指令。

二、8086/8088的寄存器组 是基本资源,亦是操作对象。对内部寄存器的使用尤为重要: 可实现的操作多 速度快 是基本资源,亦是操作对象。对内部寄存器的使用尤为重要: 可实现的操作多 速度快 1.通用寄存器 2.段寄存器 3.控制寄存器

1.通用寄存器 8个16位寄存器位于EU中 数据寄存器(共4个16位) 指针及变址寄存器(共4个16位)

∑ ALU 内部暂存器 IP ES SS DS CS 输入/输出控制电路 外部总线 执行部分控制电路 1 2 3 4 5 6 标志寄存器 1 2 3 4 5 6 ∑ ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 8位

1.通用寄存器—数据寄存器 AX(Accumulator)累加器:算术运算的主要R ,所有的I/O指令都用此R BX(Base)基址寄存器:除通用外,计算存储器地址做基址用 CX(Count)计数器:通用,作循环计数器 DX(Data)数据寄存器:常用来存放双字长数据的高16位,或存放外设端口地址 特点: 可作16位R使用,也可将每个拆成2个8位寄存器使用,对其中某8位的操作,并不影响另外对应8位的数据 具有良好的通用性:在程序中即可存放操作数,也可存放操作结果

1.通用寄存器—指针及变址寄存器 变址寄存器 SI(Source Index)源变址寄存器 DI(Destination Index)目的变址寄存器 指针寄存器 SP(Stack Point)堆栈指针寄存器—栈顶的偏移地址 BP(Base Point)基址指针寄存器—默认SS段 特点: 可用于存放操作数,但只能作为16位R使用

2.段寄存器 4个16 bits Segment Registers 在8086/8088系统中,存储器是按段进行组织的,段寄存器就是用来存放段基值的(段起始地址的高16位) 运行程序时所必要的指令、数据等存放于内存的不同段内,根据其用途的不同,又不同的段寄存器指示,并称其为当前段

∑ ALU 内部暂存器 IP ES SS DS CS 输入/输出控制电路 外部总线 执行部分控制电路 1 2 3 4 5 6 标志寄存器 1 2 3 4 5 6 ∑ ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 8位

2.段寄存器 CS:代码段寄存器—对应的段存放指令代码 DS:数据段寄存器—对应的段存放数据或变量 SS:堆栈段寄存器—对应的段存放栈操作的数据 ES:附加段寄存器—对应的段一般存放数据或变量 整个内存可划分为多个段,但当前段最多只能有4个,如果需要改变当前段,则可通过程序修改段寄存器的内容

3.控制寄存器 ∑ ALU 内部暂存器 IP ES SS DS CS 输入/输出控制电路 外部总线 执行部分控制电路 1 2 3 4 5 6 1 2 3 4 5 6 ∑ ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 8位

3.控制寄存器—IP IP(Instruction Pointer)指令指针寄存器IP (16bits) 程序顺序执行 指示代码段中指令的偏移地址 它与代码段寄存器CS联用,确定下一条指令的物理地址 计算机通过CS : IP寄存器来控制指令序列的执行流程 IP寄存器是一个专用寄存器 不能对IP指针直接进行访问 程序顺序执行 修改 转移指令的执行 调用、返回指令的执行

XX CS 16 bits 偏移量 正在执行的指令 IP 下一条将要执行的指令

3.控制寄存器—FLAGS 标志(Flag)用于反映指令执行结果或控制指令执行形式 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器) OF 11 15 12 DF 10 IF 9 TF 8 SF 7 ZF 6 5 AF 4 3 PF 2 1 CF

标志位的分类 状态标志(6):表示前面的操作执行后,ALU所处的状态,将影响后面的操作 控制标志(3):用专门的指令进行设置,用于控制处理器执行指令的方式 OF 11 15 12 DF 10 IF 9 TF 8 SF 7 ZF 6 5 AF 4 3 PF 2 1 CF

标志位的功能—进位标志CF(Carry Flag) 记录运算时从最高有效位产生的进/借位值 0 NC 没有产生进/借位 1 CY 有进/借位产生 CF= 3AH + 7CH=B6H,没有进位:CF = 0 AAH + 7CH=(1)26H,有进位:CF = 1

标志位的功能—零标志ZF(Zero Flag) 0 NZ 结果非零 1 ZR 结果为零 ZF= 注意:ZF为1表示的结果是0 3AH + 7CH=B6H,结果不是零:ZF = 0 84H + 7CH=(1)00H,结果是零:ZF = 1

标志位的功能—符号标志SF(Sign Flag) 表明有符号数运算结果的正负 0 PL 结果为正 1 NG 结果为负 SF= 有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态 3AH + 7CH=B6H,最高位D7=1:SF = 1 84H + 7CH=(1)00H,最高位D7=0:SF = 0

标志位的功能—奇偶标志PF(Parity Flag) 表明运算结果最低字节中“1”的个数的奇偶 0 PO “1”的个数为奇数 1 PE “1”的个数为偶数 PF= PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作 3AH + 7CH=B6H=10110110B 结果中有5个1,是奇数:PF = 0

标志位的功能—溢出标志OF(Overflow Flag) 表明补码的运算结果是否有溢出 0 NV 没有溢出 1 OV 溢出 OF= 3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0

关于溢出 处理器内部以补码表示有符号数 8位表达的整数范围是: -128 ~ +127 16位表达的范围是: -32768 ~ +32767 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确 3AH+7CH=B6H,就是58+124=182, 已经超出-128~+127范围,产生溢出,故OF=1; 另一方面,补码B6H表达真值是-74, 显然运算结果也不正确

溢出和进位 溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算结果不正确; 溢出标志表示有符号数运算结果是否超出范围,如溢出,运算结果已经不正确。

溢出和进位的对比 例1:3AH + 7CH=B6H 例2:AAH + 7CH=(1)26H 无符号数运算: 58+124=182 无符号数运算: 58+124=182 范围内,无进位 有符号数运算: 58+124=182 范围外,有溢出 CF=0 OF=1 例2:AAH + 7CH=(1)26H 无符号数运算: 170+124=294 范围外,有进位 有符号数运算: -86+124=28 范围内,无溢出 CF=1 OF=0

如何运用溢出和进位 处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志CF;同时,根据是否超出有符号数的范围设置溢出标志OF。 应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。

标志位的功能— 辅助进位标志AF(Auxiliary Carry Flag) 记录运算时D3位(低半字节)有无进位或借位 0 NA D3未产生进/借位 1 AC D3产生进/借位 AF= 这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心 3AH + 7CH=B6H,D3有进位:AF = 1

标志位的功能—方向标志DF(Direction Flag) 用于串操作指令中,控制地址的变化方向 0 UP 存储器地址自动增量修改 1 DN 存储器地址自动减量修改 DF= CLD指令复位方向标志:DF=0 STD指令置位方向标志:DF=1

标志位的功能—中断允许标志IF(Interrupt-enable Flag) 用于开中断或屏蔽中断 0 DI 关中断,禁止响应中断 1 EI 开中断,允许响应中断 IF= CLI指令复位中断标志:IF=0 STI指令置位中断标志:IF=1

标志位的功能—陷阱标志TF(Trap Flag) 用于控制处理器进入单步操作方式 0 处理器正常工作 1 处理器单步执行指令 单步执行指令——处理器在每条指令执行结束时,便产生一个编号为1的内部中断 这种内部中断称为单步中断 所以TF也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试

§ 2.4 存储器 一、存储器的组成 二、存储器的段结构 三、逻辑地址与物理地址 四、堆栈

一、存储器的组成 存储器的编址 数据的存储 8086/8088对内存的访问 由若干个存储单元组成,存储单元的多少代表存储器的容量 每个存储单元存储8个2进制位—容量用Byte数来衡量 存储器的编址 数据的存储 8086/8088对内存的访问

1.存储器的编址 8086 CPU 有20条地址线 存储单元连续编号,被称为存储器地址 最大可寻址空间为 220=1MB 物理地址范围 00000H~0FFFFFH 存储单元连续编号,被称为存储器地址 00000H 00001H 00002H 00003H 0FFFFDH 0FFFFEH 0FFFFFH

字单元的地址可为奇数也可为偶数,但由于机器中对字单元的访问是以偶地址进行的,故若设字地址为奇地址,则需进行两次存储器访问 78H 56H 34H 12H 09234H 09235H 09236H 09237H 2.数据的存储 字节(Byte) 每个字节占据1个存储单元 (09234H)=78H 字(Word) 任何两个相邻的字节构成1个Word 存放形式:高地址单元对应高位字节,低地址单元对应低位字节 字的地址:用地址较小的字节单元的地址作为该字单元的地址 (09235H)=3456H (09236H)=1234H 双字(DWord) 两个相邻的字单元构成1个双字(09234H)=12345678H 字单元的地址可为奇数也可为偶数,但由于机器中对字单元的访问是以偶地址进行的,故若设字地址为奇地址,则需进行两次存储器访问

3.对内存的访问 8086 字节 字 80386 双字 由指令明确规定或由指令中所使用的变量名(存储单元的符号地址)的类型决定,变量名的类型是事先定义的。

二、存储器的段结构 8086 CPU 有20条地址线,存储器地址是20位的 8086 的内部寄存器(包括IP)都是16位的 无法用寄存器直接对1MB的内存空间直接进行寻址 引入分段的概念—实模式存储器寻址

1MB的存储空间可由用户根据需要划分成若干个逻辑段(Segment) 每个段的容量≦ 64KB,连续的存储单元。(段内是16位的寻址,0000H—0FFFFH) 每段地址最小的字节单元的地址为该段的段基址(首地址),要求其最低4位为0(如:00000H, 00010H, 000F0H,等) 段与段之间的关系:邻接、间隔、部分重叠、完全重叠。(一个物理存储单元可以映象到一个或多个逻辑段中 某一时刻,系统只允许访问4个段中的内容(由4个段寄存器指示,其中存放段首址的高16位—段基值) 如果程序/数据较大(〉64KB)可修改段寄存器的内容来访问其他段

段 1 邻接 部分重叠 段 2 段 3 段 4 段 5 完全重叠 间隔

三、逻辑地址与物理地址 1. 物理地址 2. 逻辑地址 即20位的地址编码,每个存储单元有唯一的物理地址 信息的传送是通过它来寻址存储单元并进行传送 2. 逻辑地址 程序设计中使用的是逻辑地址 由于段可重叠,同一个存储单元可以有多个逻辑地址 段基值:段起始单元地址的高16位,其值存放于段寄存器中 偏移量:某存储单元与它所在起始单元之间的距离,以字节数计 偏移量为0:该单元就是段的起始单元 偏移量的最大值:0FFFFH(0—0FFFFH共64K个) 逻辑地址的表示方式 段基值:偏移量

∑ ALU 内部暂存器 IP ES SS DS CS 输入/输出控制电路 外部总线 执行部分控制电路 1 2 3 4 5 6 标志寄存器 1 2 3 4 5 6 ∑ ALU 标志寄存器 AH AL BH BL CH CL DH DL SP BP SI DI 通用寄存器 地址加法器 指令队列缓冲器 执行部件 (EU) 总线接口部件 (BIU) 16位 20位 8位

三、逻辑地址与物理地址 3. 逻辑地址与物理地址的逻辑关系 + 当CPU访问存储器时,BIU将逻辑地址转换为物理地址 物理地址=段基值× 16+偏移量 16位段基值 16位偏移量 0000 15 0 + 20位物理地址 20 0

16位段基值 15 0 0000 16位偏移量 15 0 所选段 所选存储单元 ⊕ 20位物理地址 20 0

3. 逻辑地址与物理地址的逻辑关系 逻辑地址 1460H:0100H、1380H:0F00H 14600H + 100H 14700H 段地址左移4位 加上偏移地址 得到物理地址 14600H + 100H 14700H 13800H + F00H 14700H 物理地址 14700H

段的分配 例:如代码段程序占用8KB(2000H)存储区,数据段占用2KB(800H)存储区,堆栈段占用256B存储区。内存应如何分配。 每段均小于64KB,且总占用量小于1MB 可有多种分配方案

每段占用64KB,且段间间隔,所占用空间远多于实际需要。 代码段 堆栈段 数据段 附加段 01500H 1CD00H 0150H CS 4200H DS 1CD0H SS 42000H B000H ES B0000H 每段占用64KB,且段间间隔,所占用空间远多于实际需要。

0200H 0400H 0480H 02000H 8KB代码段 CS 04000H DS 2KB数据段 SS 04800H 256B堆栈段 ES 段间邻接 此例中每段的长度都是16的整数倍,可邻接;若不满足此要求,则下一段将从最近的第一个小段开始,中间有少于16 Bytes 的间隔

4. 逻辑地址的来源 程序运行中所需要的指令、数据根据用途不同存放在内存的不同段中,对内存进行访问时根据操作类型的不同,通过不同的途径给出逻辑地址,以获得物理地址。 取指 CS IP 堆栈 SS SP 数据 DS CS ES SS SI,DI等

四、堆栈(STACK) 堆栈:是按后进先出原则组织的一片存储区域 用途:暂存数据、断点信息或传送信息 堆栈的构造(一般意义) 8086堆栈的组织 堆栈的操作

1.堆栈的构造(一般意义) 一端固定,具有最大地址的单元—栈底(数据由此向上堆积) SS 一端固定,具有最大地址的单元—栈底(数据由此向上堆积) SP 堆 栈 段 一端浮动,指向最后被压入堆栈的数据所在存储单元—栈顶(栈顶的位置虽堆栈中存放数据多少而变化) Top XX XX XX 堆栈指针:用来指示当前栈顶的位置。(压入的数据放入哪个单元或从那个单元弹出数据均由SP决定 XX Bottom 初始 SP

2.8086堆栈的组织 堆栈段:由SS存放堆栈段段基值以决定其起始地址 堆栈段的长度:即该片存储区域所包含存储单元数,其值有由初始时SP的值决定(指向栈底+1单元) 数据在堆栈段内的存放:堆栈是按字组织的,数据的存取均为2字节操作 12H 34H 01954H 01955H 堆栈区域的扩展: 如64KB的堆栈段不能满足需要,可通过修改SS来改变当前的堆栈段,使之指向另一片存储区域,同时SP重新赋值

3.堆栈的操作 三种基本操作 设置堆栈:SS、SP赋值(段的起始位置及长度) 进栈:把数据压入堆栈,在栈顶进行 SP-2→ SP 栈顶向上浮动 数据→(SS:SP) 出栈:从栈顶取出数据送入R/M (SS:SP) → R/M SP+2→ SP数据 栈顶向下回落

SS PUSH AX POP BX SP=SP-2 AL AH AL AH AL AH AX BX SP=SP+2 SP XX XX Bottom

§2.5外部设备 外部设备与主机(CPU)的通信是通过外设接口进行的。每个接口包括一组寄存器。 BIOS、DOS功能调用 数据寄存器 状态寄存器 命令寄存器 BIOS、DOS功能调用

386CPU内部寄存器

386CPU内部寄存器