《2022年电子科技大学成都学院微机原理知识点精华.docx》由会员分享,可在线阅读,更多相关《2022年电子科技大学成都学院微机原理知识点精华.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 8086中, BIU 负责取指、读操作数和写结果,而EU 负责执行指令; EU 和 BIU 之间的通信是通过 16 位的 ALU 总线和 8 位指令队列总线来完成的EU 接收指令队列中的指令,进行指令译码、分析,形成各种掌握信号,实现 EU 各个部件完成规定动作的掌握;运算器分为算术规律单元 ALU (2 个 16 位数据的算术运算;2 个 16 位数字的规律运算 16 位偏移地址 EA 的运算)和通用寄存器组:数据、地址EU 的工作过程 1. 从 BIU 的指令队列中取指令字节; 2. EU 掌握电路进行指令译码、分析; 3. 如需要,送操作
2、数的偏移地址至 BIU ; 4. 将 BIU 取来的操作数送 ALU 进行运算; 5. 存运算结果到通用寄存器或送至 BIU ; 6. 更新标志寄存器;总线接口单元 BIU 总线掌握规律(分时传递地址信息或数据信息)指令队列缓冲器(FIFO 用于暂存指令取指令和执行指令可重叠操作)地址生成( 4 个 16 位段寄存器, 16 位指令指针寄存器 IP ,20 位地址产生器)BIU 的工作过程1. 从储备器的指定单元取出指令; 2. 将指令送至指令流队列中排队或直接传送给 EU 3. 把 EU 的操作结果传送到指定的储备单元或外设端口中指令队列缓冲器:FIFO 结构,指令队列至少保持有一条指令,且
3、只要有一条指令,EU 就开头执行,指令队列只要不满,BIU 就会自动执行取指操作,直到填满为止;当执行转移指令时,EU 要求 BIU 从新的地址中重新取队列中原有指令被清除,新取得的第一条指令直接送 EU 执行,随后取得的指令填入队列;地址产生器 产生 20 位的地址名师归纳总结 - - - - - - -第 1 页,共 12 页精选学习资料 - - - - - - - - - 输入:段寄存器中的 16 位段首地址(规律地址)从 EU 中来的 16 位段内偏移地址(规律地址)输出:20 位实际地址(物理地址)8086CPU地址总线宽度 20 位;寄存器 16 位物理地址 PA (段首地址( C
4、S、DS、SS、ES 供应)左移 址( IP 或 EU 部件供应)AX AH AL 累加器( 数据寄存器BX BH BL 基址寄存器4 位二进制位)偏移地CX CH CL 计数寄存器 通用寄存器组DX DH DL 数据寄存器 SP 堆栈指针 地址指针及变址寄存器) BP 基址指针掌握寄存器组 SI 源变址指针 DI 目的变址指针 IP 指令指针 FLAG 标志寄存器段寄存器组 CS 代码段寄存器 DS 数据段寄存器 SS 堆栈段寄存器 ES 附加段寄存器OF:溢出标志;1. 当进行带符号的补码运算时,算术运算的结果超出了机器所能表达的带符号数的范名师归纳总结 围,就会产生溢出,OF1 ;否就
5、OF0 ,表示运算结果无溢动身生;第 2 页,共 12 页求解方法:双进位位法最高进位位次高进位位2. 两个无符号数相加时,当最高数值位向高位数值位有进位时,即CF=1 时表示有溢出;当 CF=0时表示无溢出;- - - - - - -精选学习资料 - - - - - - - - - SF:符号标志,运算结果为负时, SF=1; 否就为 0 ZF:全零标志,运算结果各位都为零,就 ZF=1; 否就为 0 AF:帮助进位标志,作加法时 D3 位向 D4 位进位,就 AF=1; 否就为 0 PF:奇偶标志,操作结果的低 8 位中含有偶数个 1,就 PF=1; 否就为 0 CF:进位标志,加法时最高
6、位产生进位或减法时高位产生借位,CF=1 ;否就为 0 IF :中断答应标志,掌握可屏蔽中断的标志,如 IF 1 ,表示答应 CPU 接受外部从 INTR 引线上发来的可屏蔽中断恳求信号;如 IF 0,就禁止;DF :方向标志,用于掌握字符串操作指令的步进方向,当 DF 1 时,字符串操作指令将从高地址到低地址的方向对字符串进行处理;如 DF 0 时,就相反;总线周期 CPU 拜访一次储备器单元或 I/O 口所需的时间;总线周期全部由 BIU来完成,所以也称为 BIU 总线周期;一个基本的总线周期至少由 4 个时钟周期组成储备器以字节为单位储备信息;为区分不同的字节储备单元,每个单元都被指定一
7、个唯独的编号,称为该单元的物理地址(简称PA);地址编号从0 开头,按次序加1 ,一般用十六进制数表示;因此PC 机的内存是以字节单元为单位对内存进行编址名师归纳总结 8086地址线有 20 根,储备器的最大储备空间为1MB (220),因此储备器地址范第 3 页,共 12 页围为 00000HFFFFFH : 8086有 20 根地址线,但寄存器内部可以表示的地址最多只能是16 位;为了能寻址 1MB 空间, 8086对储备器进行规律分段,每个段最大为64KB ,最小为 16B ;- - - - - - -精选学习资料 - - - - - - - - - 采纳了段地址加偏移地址的寻址方式CS
8、: IP ,这样最大寻址范畴扩大到FFFFF,即1MB ;段基址:一个规律段的起始地址,形如 XXXXH ;偏移地址:段内一个储备单元到达段地址的距离(16 位);物理地址 PA :储备单元的实际地址(20 位);规律地址 LA :段基址和偏移地址;留意:规律地址是在程序指令中引用和操作的地址;而物理地址是在 20 位地址总线上产生的地址进栈出栈(二 52 53)每个 I/O 端口都有一个唯独的端口地址,由于只用地址总线的低 16 位 A15 A0来寻址端口地址,所以 8086 CPU 可以拜访的 I/O 端口地址共有 64KB ,其地址为0000H FFFFH 无操作数指令,例:等待指令 W
9、AIT 单操作数指令,例:加 1 指令 INC AL 双操作数指令,例:减法指令 SUB AL ,BL 目的操作数:前者 AL 源操作数:后者 BL 用 BX 、SI 、DI 默认段寄存器: DS 用 BP 默认段寄存器: SS 寻址方式(三 12 左右)对 I/O 端口的寻址方式有端口直接寻址和端口间接寻址方式两种;拜访 I/O 端口只能使用其专用指令:IN 和 OUT 指令;端口直接寻址:当端口地址在 8 位二进制 n=00HFFH 范畴时才可使用直接寻址方式名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - - - - - - 端口间接寻址:当端
10、口地址大于FFH ,就只能采纳间接寻址方式,必需使用间址寄存器 DX ,存放 I/O 端口的地址码CS、立刻数不作目的数堆栈 以“ 先进后出 ” 原就组织起来的连续的内存空间;堆栈操作以字为单位;固定以SS:SP 为指针指示栈顶,出、入堆栈的操作均针对栈顶单元进行;80X86的堆栈生长方向为“ 向下增长”入栈,指针减出栈,指针加入栈操作(三 30 )交换指令 XCHG 功能:将源、目的操作数的内容相互交换,指令执行后源、目的操作数同时被 转变累加器专用传送指令(1 ) 输入 / 输出( I/O )指令 输入指令 IN 功能:把指定端口中的一个数据(字节或字)输入至 AL 或 AX ;指令形式:
11、 IN 累加器,端口地址 IN AL,20H ;从 20H 端口输入一个字节至AL 输出指令 OUT 功能:把 AL 或 AX 中的数据输出到指定的端口;指令形式: OUT 端口地址 , 累加器 OUT 20H,AL ;将 AL 中一字节输出到20H 端口换码指令 XLAT 功能:直接查表并读表格中元素值的指令) 换码指令 XLAT 名师归纳总结 - - - - - - -第 5 页,共 12 页精选学习资料 - - - - - - - - - 功能:直接查表并读表格中元素值的指令 目标地址传送指令不是传送操作数,而是传送操作数的地址,把储备单元地址送入 指定的寄存器;(1 )有效地址送寄存器
12、指令 LEA 源、目操作数长度必需一样; 源、目操作数不能同时是储备器操作数; 源、目操作数不能同时是段寄存器; 立刻数和代码段寄存器 CS 不能作目操作数; 当目操作数是段寄存器时,源操作数不能是立刻数 可以使用段寄存器的指令:MOV 、PUSH 、POP ; 除 XCHG 指令外,其它数传指令仅转变目操作数,源操作数保持不变; 除 SAHF 、POPF 指令外,其它数传指令的执行不影响标志位;不带进位加指令 ADD 带进位位的加法指令ADC CFADC AL ,78H ;AL AL 78H CF ADC AX,CX ;AX AX CXCF ADC BX,WORD PTRDI ;BX BX
13、DI 1DI加 1 指令 INC 名师归纳总结 执行之后影响标志位SF、ZF 、AF 、PF、OF ,但不影响CF BCD第 6 页,共 12 页例:将分别存放在34000H、34200H处的两个 4 位组合 BCD 码相加,组合码的结果放在34200H处;MOV AX ,3400H MOV DS ,AX ;设置默认段寄存器值MOV SI ,0 ;使 SI 指向 34000H单元- - - - - - -精选学习资料 - - - - - - - - - MOV DI ,0200H ;使 DI 指向 34200H单元MOV AL ,SI ADD AL ,DI ;低 2 位组合 BCD 码相加DA
14、A ;调整得组合 BCD 码,仍在 AL 中MOV DI,AL ;组合 BCD 码结果(低 2 位)存入 34200H 处MOV AL ,SI+1 ADC AL,DI+1 ;高 2 位组合 BCD 码相加DAA MOV DI+1, AL ;组合 BCD 码结果(高 2 位)存入 34201H 处MOV DI+2, 0 ADC DI+2,0 ;高位的进位存入 34202H 处不带借位减法指令SUB 带借位的减法指令SBB 比较指令 CMP 形式: CMP dst , src 判定条件:1. 无符号数比较大小:CF=0 ,dst src ; CF=1 ,dst src ;2. 两个正数比较大小:
15、SF=0 ,dst src ; SF=1 ,dst src ;3. 两个带符号数比较大小:OFSF=0 ,dstsrc; OFSF=1 ,dstsrc 无论两个有符号数仍是无符号数比较是否相等:ZF=1 , dst=src 求补指令 NEG 形式: NEG dst ;dst 0 dst 无符号数乘法指令:MUL 通用寄存器或储备器带符号数乘法指令:IMUL 通用寄存器或储备器名师归纳总结 - - - - - - -第 7 页,共 12 页精选学习资料 - - - - - - - - - 无符号数除法指令:DIV 通用寄存器或储备器带符号数除法指令:IDIV 通用寄存器或储备器小结: 加、减法的
16、运算结果与两个操作数的长度相等,进、借位反映在标志位上; 乘、除法运算仅由指令指定一个操作数,另一个操作数固定为累加器; 除了除法和符号扩展指令外,其它算术运算指令均影响状态标志,不同指令对标志位的影响也各不相同; 答应使用 BCD 码进行算术运算;为了得到正确的 应的十进制调整指令;BCD 码运算结果,应使用相 全部的十进制调整均对累加器进行;加、减、乘法的调整在运算之后进行,只有 除法必需先调整,后运算布尔型指令(1 )与、或、非、异或AND 、OR 、NOT 、XOR 执行之后影响全部状态标志 SF、ZF、 AF、PF、CF、OF 例 1. 把标志寄存器 FLAGS 中符号标志位 SF
17、置 1; 2. 将标志寄存器 FLAGS 中跟踪标志位 TF 置 1; 3. 将标志寄存器 FLAGS 中溢出位 OF 变反;1. LAHF 2. PUSHF OR AH, 80H POP AX SAHF OR AX, 0100H PUSH AX POPF 3. PUSHF POP AX XOR AX, 0800H PUSH AX POPF 检测指令 TEST 名师归纳总结 - - - - - - -第 8 页,共 12 页精选学习资料 - - - - - - - - - 形式: TEST dst ,src ; dst src 如: TEST AL ,20H ;取 AL 的 D5 位 JZ B
18、CLR 算术左移指令 SAL ;ZF=1 (该位为 0 )就转到 BCLR 处(移空的位全部补 0 )算术右移指令 SAR (移空的位用原操作数的符号位补充)规律左移指令 SHL (移空的位全部补 0)规律右移指令 SHR (移空的位全部补 0)无条件转移指令 JMP 调用指令 CALL 格式: CALL 操作数(即目标地址)返回指令 RET 格式: RET RET 8 位立刻数位于被调过程的末尾;必需与 CALL 指令成对使用条件转移指令 JCC 标志位 1 就转移JS JZ/JE JP/JPE JC 名师归纳总结 - - - - - - -第 9 页,共 12 页精选学习资料 - - -
19、- - - - - - JO . 判定无符号数大小的指令JA/JNBE ;目操作数源操作数就转移JAE/JNB/JC ;目操作数 源操作数就转移JB/JNAE/JNC ;目操作数源操作数就转移JBE/JNA ;目操作数 源操作数就转移. 判定带符号数大小的指令JG/JNLE ;目操作数源操作数就转移JGE/JNL ;目操作数 源操作数就转移JL/JNGE ;目操作数源操作数就转移JLE/JNG ;目操作数 源操作数就转移LOOP 指令:CX1 CX CX 0 ?是:转移 否:次序执行LOOPZ 指令 CX 1 CX CX 0 且 ZF1?是:转移 否:次序执行MOV CX ,10 (其它初始条
20、件)NXT :DEC CX JCXZ LAST (循环执行的指令) JMP NXT LAST :(退出循环后的处理)以字母开头,由大写字母AZ小写字母 az (汇编程序不区分大小写)、数字(0 9 )及 4 个特别字符( .、$ 、和 _等)组成名字的命名规章:名师归纳总结 字符串长度不能超过31 个字符第 10 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 命名不能使用汇编语言中的保留字几点留意: 操作数假如是两个操作数,中间用逗号隔开操作数的形式可以有:常数、寄存器名、标号、变量和表达式 DB 变量为字节数据类型(8 位)DW 变量为字数据类型
21、(16 位)DD 变量为双字数据类型(32 位)DQ 变量为 4 字数据类型( 64 位)DT 变量为 10 字节数据类型( 80 位)ST DB 96, 20, ., 57 ; 以 ST 为首址连续安排 4 个字节的储备单元STR DB How are you . $ ; 定义字符串 TWIN DB 5 DUP 0FFH ; 连续安排 5 个字节,初值均为 0FFH DB 100 DUP . DATA SEGMENT ;连续安排 100 个字节单元,初值不定ARE1 DB 20H,30H ARE2 DW 2030H ARE3 DB ,BARE4 DW ABDATA ENDS名师归纳总结 - - - - - - -第 11 页,共 12 页精选学习资料 - - - - - - - - - . 符号 $表示程序下一个所能安排的储备单元的偏移地址名师归纳总结 .设 DATA 的段首地址为2000H 第 12 页,共 12 页.DATA SEGMENT .ORG 0004H .AVR1 DW 2030H .AVR2 DB 40H .DWVR DW OFFSET AVR1 .DDVR DD AVR2 .DATA ENDS - - - - - - -
限制150内