微机原理复习提纲(华师)
AL 高 4 位清零。 其他标志位 OF、PF、SF、ZF 不确定。 (11)非组合十进制数乘法调整指令 AAM 功能:对 8 位的非组合 BCD 码的乘积(AX)的内容进行调整。调整后的结果仍为一个正确的 非组合 BCD 码,放回 AX 中。 说明:该指令对 PF,SF,ZF 产生影响,对 OF,AF 和 CF 无定义。 (12)非组合十进制数除法调整指令 AAD 功能: 将 AX 中的被除数调整成二进制数,并放在寄存器 AL 中。该指令执行的操作是:
数据串的长度送入 CX/ECX 建立方向标志(可用 STD 指令将 DF 置 1 或用 CLD 指令将 DF 清 0) (14)格式:① STOSB——往字节串中存数
8.Pentium 微处理器的超标量流水线技术和分支预测技术 超标量流水线 在 Pentium 中,采用 U 和 V 两条流水线,每条流水线均含有独立的 ALU、一系列寄存器、地 址生成电路和连接数据的 Cache 接口。能够以并行方式在 U、V 两条流水线上同时执行两条 指令。 主流水线 U 可以执 Intel 体系结构的全部整型与浮点指令,包括微代码构成的复杂指令。 V 流水线则只能执行简单的整型指令和浮点部件的 FXCHG 指令。 Pentium 的一条流水线含有 5 个流水线级。 指令预取级 PF 首次译码级 D1 二次译码级 D2 执行级 EX 回写级 WB 流水线运行时,一条接一条的指令连续不断地送到流水线,于是,在流水线全速运行时,同 一个时钟周期内,多个部件分别对多条指令的不同步骤进行操作。 分支转移的动态预测 Pentium 用分支目标缓冲器 BTB(branch target buffer)来执行预测功能,它含有一个 1KB 容量的 Cache,其中可以容纳 256 条转移指令的目标地址和历史状态。 当一条指令造成分支时,BTB 检测这条指令以前的执行状态,并用此状态信息预测当前的分 支目标地址,然后预取此处的指令。 高速分支预测技术 Pentium 微处理器的存储器组织及 I/O 地址空间与 80486 微处理器完全相同。
4. 80486 微处理器的寄存器结构
段寄存器
代码段寄存器 CS 数据段寄存器 DS
堆栈段寄存器 SS 附加段寄存器 ES、FS 和 GS
系统寄存器
系统地址寄存器
GDTR:全局描述符表寄存器 IDTR:中断描述符表寄存器
LDTR:局部描述符表寄存器 TR:任务寄存器
控制寄存器 CR:保存全局性与任务无关的机器状态。
LOOP MOVE
MOV AH,4CH
INT 21H
START ENDP
CSEG ENDS
;---------------------------------------------
END START
2. 操作数的寻址方法,其中存储器建起要求能够计算操作数的有效地址及实际地址。 3. 掌握常用的变量及常量定义的方法。 变量:在除代码以外的其他段中定义,后面不跟冒号。变量经常在操作数字段出现。它也有 段、偏移及类型三种属性。 ① 段属性定义变量的段起始地址,此值必须在一个段寄存器中。 ② 偏移属性变量的偏移地址是 16 位无符号数,它代表从段的起始地址到定义变量的位置之 间的字节数。在当前段内给出变量的偏移值等于当前地址计数器的值,当前地址计数器的值 可以用 $ 来表示。 ③ 类型属性变量的类型属性定义该变量所保留的字节数
mov eax,[ebp+8] ; EAX←SS:[EBP+8] mov [ebp],eax ; SS:[EBP]←EAX 利用堆栈实现主、子程序间传递参数 堆栈还常用于子程序的寄存器保护和恢复 注意入栈和出栈的数据要成对,要保持堆栈平衡
3. 80486 微处理器各部件的功能及其基本工作原理 总线接口部件 指令预取部件 指令译码部件 控制和保护测试单元部件 整数执行部件 浮点运算部件 分段部件和分页部件 Cache 管理部件
8086 的存储器编址 逻辑地址:段基址和偏移地址 物理地址=段基址×16+偏移地址
例 1: 从 10000H 开始的内存单元存放有“A”到“G”的 ASCII 码,请画出存储示意图。 例 2:有三个字数据,分别是 1268H,0A132H,3630H,存储在 21001H 开始的单元,并连续 存放,请画出存储示意图。 8086 的 I/O 端口采用独立编址方式 8086 允许有 65535(64K)个 8 位的 I/O 端口,两个相邻编号的端口可以组合成一个 16 位端口
补码表示的整数范围: -2n-1~+(2n-1-1) n 为机器字长。 8 位:-128~+127 16 位:-32768~+32767
当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。 补码运算 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补 [[Y]补]变补= [-Y]补
(AL)←10*(AH)+(AL) (AH) ←0 说明: 该指令对 PF,SF,ZF 产生影响,对 OF,AF 和 CF 无定义。 与 AAA,AAS,AAM 不同,该指令应在除法指令前执行。 (13)使用 MOVS 前应做好以下准备工作: 数据段中源串的首地址(如反向传送则是末地址)放入 SI/ESI 中; 附加段中目的串首地址(如反向传送则是末地址)放入 DI/EDI 中;
2. 掌握计算机系统的硬件组成
3. 微型计算机系统的性能指标 字长、存储器容量、运算速度、扩展能力、软件配置情况
第二章 微处理器及其结构 1.8086 微处理器的结构 8086 是 Intel 系列的 16 位微处理器,有 16 根数据线和 20 根地址线。 从功能上,8086 分为两部分: 总线接口部件(BIU):负责与存储器、I/O 端口传送数据。 执行部件(EU):负责指令的执行。
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:ESEG
START PROC FAR
MOV AX,DSEG
MOV DS,AX
MOV AX,ESEG
MOV ES,AX
LEБайду номын сангаас SI,A
LEA DI,B
ADD DI,9
MOV CX,10
MOVE:CLD
LODSB
STD
STOSB
第三、四章 指令系统及汇编语言程序设计 1. 知道汇编语言与机器语言之间的关系。 汇编是把汇编语言程序翻译成机器语言描述的目标程序的过程。 例题:在数据段定义首地址为 A 的 10 个字符,将这 10 个字符以相反次序传送到附加段首地 址为 B 的内存单元中。 TITLE TRANS
DSEG SEGMENT
0000 1000 0000 1001B 原码:正数的符号位为 0,负数的符号位为 1 -(2n-1-1)~+(2n-1-1) 其中 n 为机器字长。 8 位: -127~+127 16 位: -32767~+32767 反码:对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符 号位以外的各位按位取反 -(2n-1-1)~+(2n-1-1) 其中 n 为机器字长。 8 位: -127~+127 16 位: -32767~+32767 补码:正数的补码与原码相同,负数的补码为其为其反码在最低位加 1。
4. 80486 基本指令系统中指令的格式、功能、操作数寻址方法及其对状态标志位的影响。 (1)XLAT 指令功能:AL←[EBX+AL]
将(E)BX 指定的缓冲区中 AL 指定的位移处的一个字节数据取出赋给 AL (2)LEA r16/r32,mem
;r16/r32←mem 的有效地址 EA(不需类型一致) LEA 指令类似的地址操作符 OFFSET 的作用 LEA 指令在指令执行时计算出偏移地址 OFFSET 操作符在汇编阶段取得变量的偏移地址 OFFSET 无需在执行时计算、指令执行速度更快 LEA 指令能获取汇编阶段无法确定的偏移地址 (3)LDS:从指令的源操作数 s 所指定的储存单元开始,从连续的四个存储单元中取出某个变 量的地址指针,将其前两个字节传送到指令的目标操作数 d 所指定的某 16 位通用寄存器, 其后两个字节送到 DS 段寄存器。 (4)LAHF:将标志寄存器的低 8 位送到 AH 中 (5)SAHF:将 AH 寄存器的内容送到标志寄存器的低 8 位中。 (6)PUSHF(PUSHFD):将标志寄存器的低 16 位(32 位值)推入堆栈 (7)POPF(POPFD):从堆栈中弹出一个字或双字到标志寄存器。 (8)DAA 功能:如果 AL 寄存器中低 4 位大于 9 或辅助进位(AF)=1,则(AL)=(AL)+6 且(AF)=1;如果(AL)>=0A0H 或(CF)=1,则(AL)=(AL)+60H 且(CF)=1。同时,SF、 ZF、PF 均有影响。 说明: 该指令应跟在 ADD 或 ADC 指令之后,且加法指令的运算结果必须放在 AL 中。 (9)DAS 功能:如果(AF)=1 或 AL 寄存器中低 4 位大于 9,则(AL)=(AL)-6 且(AF) =1;如果(AL)>=0A0H 或(CF)=1,则(AL)=(AL)-60H 且(CF)=1。 同时 SF、ZF、PF 均受影响。 (10)减法的非压缩 BCD 码调整指令 AAS 如果 AL 的低 4 位大于 9 或(AF)=1,则: (AL)=(AL)-6 (AH)=(AH)-1 (AF)=(CF)=1 否则:(CF)=(AF)=0
微机原理复习纲要 第一章 概论 1. 掌握数在计算机中的表示及其编码方法。(原码、反码、补码、BCD 码的表示及其与真值
之间的转换) 数:用来直接表示量的多少,有大小之分,能够进行加减等运算。如二进制数,十六进 制数。 码:通常指代码或编码,在计算机中用来描述某种信息。 如 ASCII 码,国标码 压缩 BCD 码 每一位数采用 4 位二进制数来表示,即一个字节表示 2 位十进制数。 例如:1000 1001B 表示十进制数 89D。 非压缩 BCD 码 每一位数采用 8 位二进制数来表示,即一个字节表示 1 位十进制数。而且只用每个字节 的低 4 位来表示 0~9,高 4 位为 0。 例如:十进制数 89D,采用非压缩 BCD 码表示为二进制数是: