版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理与接口技术微型计算机系统概述微处理器内外部特性8086/8088指令系统汇编语言程序设计总线技术 存储器及其接口课程简介微机原理与接口技术输入/输出接口技术中断技术通用可编程接口微机的发展方向实验第一章 微型计算机系统概述第 1 章微型计算机发展概况计算机中数的表示与编码微型计算机系统计算机中常用的名词术语1.11.21.31.4微型计算机的主要性能指标1.5七微机原理与接口技术 1.第一台电子计算机 1946年, 美国宾西法尼亚大学 ENIAC 组成:18800个电子管; 6万个电阻器;1万个电容器;6千个开关. 重量:30吨; 占地150平米; 功率: 150千瓦 耗资45万美元
2、功能:5000次/秒加法运算 1.1 微型计算机发展概况1946 第一台电子数字计算机 ENIAC2.微型计算机的由来:电子管晶体管集成电路中小规模集成电路大规模集成电路(微型计算机,简称微机 1971年)1.1 微型计算机发展概况1971 第一台微型计算机 第一代4位和低档8位机Intel 4004第二代中高档8位机8080/8085、Z80、MC6800第三代16位机Intel 8086、Z8000、MC6800第四代32位机80386、80486第五代64位机Intel Pentium(1971-1973)(1974-1978)(1978-1981)(1981-1992)(1993后)3
3、.CPU的 迅猛发展1.1 微型计算机发展概况4. 微型计算机的发展规律: 速度越来越快;容量越来越大;功能越来越强。 5. 发展方向: 巨型化,微型化,网络化,智能化,多媒体化1.1 微型计算机发展概况天河一号: 2010年我国自主研制的超级计算机。峰值运算速度: 4700万亿次/每秒“天河一号”运算1小时 =13亿人同时计算340年以上;“天河一号”运算1天 =1台双核电脑运算620年以上超级计算机1.1 微型计算机发展概况天河2号1.1 微型计算机发展概况6.微型计算机的分类1)单片机:将微处理器、部分存储器、输入输出接口集成在一块集成电路芯片上,一块芯片就成了一台计算机 2)单板机:将
4、计算机的各个部分都组装在一块印制电路板上,包括微处理器/存储器/输入输出接口,还有简单的七段发光二极管显示器、小键盘、插座等。功能比单片机强,适于进行生产过程的控制。可以直接在实验板上操作,适用于教学。 3)PC机(Personal Computer ) :面向个人单独使用的一类微机,实现各种计算、数据处理及信息管理等。1.1 微型计算机发展概况 1.2 计算机中数据的表示和编码 人们最常用的数是十进制数,计算机中采用的是二进制数; 计算机中的数据(文字、图片、声音)都是采用二进制(0和1)形式存储和处理的; 有的时候为了书写方便,往往将二进制数据采用八进制或十六进制表示.二进制运算规则:0+
5、0 = 0 0+1 = 1 1+0 = 1 1+1 =10 (逢二进一)0-0 = 0 10-1 =1 (借位) 1-0 = 1 1-1 =01.2.1 计算机中常用的数制及转换 1.几种数制的表示二进制(Binary)后缀B 元素:0,1 例1010.1011B八进制(Octal)后缀O,为防止与数字0混淆常后缀Q 元素:0,1,2,3,4,5,6,7 例17.6Q十进制(Decimal)后缀D或省略 元素:0,1,2,3,4,5,6,7,8,9 例4659.37十六进制(Hexadecimal)后缀H 元素:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 例8D.AH 1.
6、2 计算机中数据的表示和编码 1.2.1 计算机中常用的数制及转换 2.进制间的转换 (1)R进制数转换为十进制数 方法:按位权进行展开相加即可。 例:11101.101 B=124+123+122+021+120+12-1+02-2+12-3 = 16+8+4+0+1+0.5+0.125 =29.625 127.04Q= =87.0625 1DF.4H= =479.25 1.2 计算机中数据的表示和编码 2.进制间的转换(2)、十进制数转换为R进制数A、将整数部分和小数部分分别进行转换,然后再把转换结果进行相加。B、整数:除R取余,直到商为0:每一步余数,按逆序排列。C、小数:乘R取整直到小
7、部分为0。将所取整数顺序放在小数点后。 1.2 计算机中数据的表示和编码 1.2.1 计算机中常用的数制及转换例1-2 将十进制数38分别转换成二进制、八进制、十六进制数38=100110B 38=46Q 38=26H 1.2 计算机中数据的表示和编码 1.2.1 计算机中常用的数制及转换例1-3 将0.6875转换成二进制、八进制、十六进制数 0.6875=0.1011B 0.6875=0.54Q 0.6875=0.BH所以,38.6875=100110.1011B 1.2 计算机中数据的表示和编码 1.2.1 计算机中常用的数制及转换 2.进制间的转换 (3)二进制、八进制数、十六进制数相
8、互转换 1.2 计算机中数据的表示和编码 1.2.1 计算机中常用的数制及转换1.2.2 带符号数的表示无符号数和带符号数 无符号数:全部有效位均用来表示数的大小 N10001 1010 B 表示无符号数26 N2 1001 1010B 表示无符号数154 带符号数:最高位表示符号位(正数0,负数1) 其余位为数值位。 N30001 1010 B 表示无符号数+26 N4 1001 1010 B表示无符号数26 1.2 计算机中数据的表示和编码 2.机器数与真值 机器数:机器中数的表示形式, 如原码、反码、补码。 真值: 机器数所代表的实际数值 例:8位机器数与真值对应关系: 机器数:X1机=
9、 0101 0100 B X2机= 1101 0100B 真值: X1= +101 0100B =+84 X2= - 101 0100B= - 84 1.2.2 带符号数的表示 1.2 计算机中数据的表示和编码 (1)原码 最高位为符号位,其余位为真值。例:+4原 = 0000 0100B -4原 = 1000 0100B 0 原 = 0000 0000 B - 0 原= 1000 0000B - 0 原 特点: 0的表示不唯一; 8位机表示范围:-127-+127(即:1111 1111B0111 1111B)3.机器数(码) 正数的反码与其原码相同。 负数反码符号位为 1,其余位为原码按位
10、取反。例: x= +4: x原= 00000100B x反= 00000100B x= -4 : x原= 10000100B x反= 11111011B x= +0: x原= 00000000 B x反= 00000000B x= -0 : x原= 10000000B x反= 11111111B + 0 反 x= +127: x原= 01111111B x反= 01111111B x= -127 : x原= 11111111 B x反= 10000000B特点: 0的表示不唯一; 8位机表示范围:-127-+127(即10000000B01111111B)(2)反码:1.2.2 带符号数的表示
11、 1.2 计算机中数据的表示和编码 3.机器数(码)(3)补码:计算机常用码 正数的补码同原码,负数的补码为其反码(含符号位)+1。 例:+4补=+4原=00000100B=04H -4补=-4反+1=11111011B+1B=11111100B=FCH +0补=+0原=00000000B=00H -0补=-0反+1=11111111B+1B=00000000B=00H = + 0 补 +127补=+127原=01111111B=7FH -127补=-127反+1=10000000B+1B=10000001B=81H -128补=10000000B=80H (对于8位机,-128没有原码和反码
12、) 特点:0的表示是唯一的 表示范围-128+127(1000 0000B0111 1111B) 1.2.2 带符号数的表示 1.2 计算机中数据的表示和编码 3.机器数(码)1.2.3 计算机中常用的编码 1. BCD码 :二进制编码的十进制数(Binary Code Decimal) 压缩BCD码: 用4个二进制位表示一个十进制位 非压缩BCD码格式: 用8个二进制位表示一个十进制位,其中高四位无意义, 低四位和压缩BCD码相同。 1.2 计算机中数据的表示和编码 例:十进制 压缩BCD码 非压缩BCD码 13 0001 0011 0000 0001 0000 0011 1622 0001
13、 0110 0010 0010 0000 0001 0000 0110 0000 0010 0000 00101.2.3 计算机中常用的编码 2.ASCII码:美国标准信息交换标准码 (American Standard Coded for Information Interchange) 09 +30H = ASCII码 AF +37H = ASCII码 AZ ASCII码+20H=az ASCII码 1.2 计算机中数据的表示和编码 1. 微处理器:也称中央处理器(CPU) 组成:运算器、控制器和寄存器。 (1)运算器:计算机中加工和处理数据的功能部件。 功能: 1)对数据进行加工处理,主
14、要包括算术和逻辑运算,如加、减、与、或运算等。 2)暂时存放参与运算的数据和中间结果。 (2)控制器: 控制和指挥计算机内各功能部件协同动作,完成计算机程序功能。 (3)寄存器:14个(将来学单片机也要学寄存器) AX、BX、CX、DX、 BP、SP、SI、DI CS、DS、ES、SS FR、IP 1.3 微型计算机系统 指令执行的基本过程: 1. 微处理器: 指令执行过程:(1)找地址: 寄存器IP中保存待执行指令存放的地址。(2)取指令: 控制器 将IP中的地址信息送至地址寄存器MAR,并发出读命令。从该地址取出一条指令,经过数据总线送入指令寄存器IR。(3)执行指令: 译码器对IR中的指
15、令进行译码,并由控制逻辑阵列向存储器、运算器等部件发出操作命令,执行指令操作码规定的操作。(4)修改IP的内容,重复以上操作 1.3 微型计算机系统 2 . 微型计算机(主机)AB外设 包括:CPU 存储器 I/O接口 总线 1.3 微型计算机系统 (1)总线 概念:传递信息的一组公共通道。 系统总线分为:数据总线DB、控制总线CB、地址总线AB AB :决定能够访问的存储空间 AB= 16条: 存储空间: 216 = 64 KB。 AB= 20条: 存储空间: 220 = 1 MB。 1K = 1024B 1M = 1024 KB 1G = 1024 MB DB:决定一次能够输入/输出的数据
16、位数 1.3 微型计算机系统 2 . 微型计算机(主机)(2)存储器 功能:存放程序和数据。(3)I/O接口:CPU与外设的适配器 功能:完成信号转换、数据缓冲、与CPU进行信号联络等工作。 显示器卡:完成显示器与总线的连接。 声卡:完成声音信号的输入/输出。 网卡:完成网络数据的转换。 调制解调器卡:模拟信号与数字信号相互转换。 USB接口:通用串行接口。 1.3 微型计算机系统 2 . 微型计算机(主机) 1.3 微型计算机系统 3 . 微型计算机系统微处理器+?=微型计算机+?=微机系统硬件+?=微型计算机系统1位B(Bit) 计算机中信息的最小单位,只有两种状态: 0和12 字节DB(
17、Byte) 相邻的8个二进制位。3. 字DW(Word) 相邻的16位二进制位,即2个字节。4. 双字DD(Double Word)、四字QW(Quad Word)、双四字(DQW) 双字:32位; 四字:64位; 双四字:128位1.4 计算机常用的名词术语1.字长 :等于DB数 CPU与存储器或输入/输出设备之间一次传送数据的位数。字长通常等于数据总线的 位数和通用寄存器的位数。反映了一台计算机的精度2. 主存容量:与AB数有关 1)用字节表示。 2)用单元数字长表示。3. 主频 1khz,1MHZ, 1GHZ 4. 运算速度5.系统可靠性6.系统的兼容性7.性能价格比1.5 微型计算机的
18、主要性能指标1.微机发展概况 电子管晶体管集成电路大规模集成2.计算机中数的表示与编码(难点) 原码、反码、补码、BCD码、ASCII码3.微型计算机系统组成 微处理器(CPU) 微机(主机)微机系统本章重点1-1、1-2、1-3、1-4、1-5作业第二章 微型计算机的微处理器第 2 章8086/8088的编程结构寄存器结构8086的引脚信号和工作模式8086系统配置2.12.22.32.48086存储器组织8086I/O组织8086的总线操作时序2.52.62.7微机原理与接口技术 图2-1 指令执行过程(串行交替) 图2-2 指令执行过程(流水线)2.1 8086/8088 的编程结构两部
19、分组成:执行部件EU、总线接口部件BIU2.1 8086/8088 的编程结构MOV AX,3000HMOV AX,3000H总线接口部件BIU(Bus Interface Unit) BIU 是CPU与外部的接口,完成所有外部总线的操作 组成: (1)四个16位段地址寄存器 图2-3地址合成框图2.1 8086/8088 的编程结构(2)16位指令指针寄存器IP(PC) 存放下一条要执行指令的地址(3)20位的地址加法器 PA=CS*16+IP(4)指令队列 8086有6字节 8080有4字节(5)输入/输出控制逻辑2、执行部件EU EU完成指令译码和执行 组成: (1)算术逻辑单元ALU
20、完成8/16位二进制算术/逻辑运算 (2)标志寄存器FR 存放指令执行结果的特征和处理器状态, 如结果为0(零标志)、为负(符号标 志)、有进位(进位标志)等。 2.1 8086/8088 的编程结构(3)寄存器组: 通用寄存器AX、BX、CX、DX。 专用寄存器SP、BP、SI、 DI(4)EU执行控制器 从总线接口的指令队列取出指令操作 码,通过译码电路分析,发出相应的 控制命令,控制ALU数据流向。 3. 8086/8088处理器的启动和程序执行过程(1)CPU的启动 CS:FFFFH DS:0000H SS:0000H ES:0000H IP:0000H 指令队列空 FR:0000H(
21、禁止中断)8086/8088将从地址FFFF0H开始执行指令。2.1 8086/8088 的编程结构(2)程序执行过程1)BIU取出一条指令存入指令队列。2)EU从指令队列取指令并执行指令。 同时,BIU利用总线空闲时间,取下一条指令。3)EU执行下一条指令。 如果前面一条指令有写存储器的要求,则通知BIU把前一条指令结果写到存储器中; 如果指令执行要求读取操作数,则由BIU完成。4)EU执行再下一条指令,执行上述操作过程。8086 CPU共有14个16位的寄存器,分为如下4类2. 2 寄存器结构1.通用寄存器组AX(AH、AL): 累加器BX(BH、BL): 基址寄存器(可做间接寻址)CX(
22、CH、CL): 计数寄存器。DX(DH、DL): 数据寄存器2. 2 寄存器结构2.指针和变址寄存器BP:基址指针寄存器。(可做间接寻址)SP:堆栈指针寄存器。 SI:源变址寄存器。(可做间接寻址)DI:目的变址寄存器。 (可做间接寻址)2. 2 寄存器结构与SS联用与DS联用3. 段寄存器为什么要分段?8086/8088 CPU有20根地址线,可直接 寻址220=1MB的存储器空间,即:其物 理地址是20位的而所有内部寄存器都是16位的,只能直 接寻址216=64KB,因此采用分段技术来 解决。将1MB的存储空间分成若干逻辑 段,每段最长64KB。2. 2 寄存器结构4.指令指针寄存器IP用
23、来存放将要执行的下一条指令在现行代码段中的偏移地址可以自动+14个16位的段寄存器CS:代码段寄存器DS:数据段寄存器SS:堆栈段寄存器、ES:附加段寄存器2. 2 寄存器结构5.标志寄存器: 16位寄存器,其中有9位有效位。运算结果的最高位1-有溢出0-无溢出1-结果为00-结果不为01-有进/借位0-无进/借位1-运算结果低8位有偶数个10-奇数个11-D3向D4有进/借位0-D3向D4无进/借位6个状态标志:OF、SF、ZF、AF、PF、CF3个控制标志:DF=1 地址增IF=1 中断允许TF=1 单步中断例2-1 分析下列运算对标志位的影响2. 2 寄存器结构由于运算结果的最高位为1,
24、则SF=1;运算结果本身不为0,则ZF=0;结果的低8位中含4个1(偶数)则PF=1;最高位没有产生进位,则CF=0;运算过程中,第3位向第4位产生进位,则AF=1;由于次高位向最高位产生了进位,而最高位没有向前产生进位,说明发生了溢出,两正数相加,结果为负,则OF=1。2.3.1两种工作模式: 最小模式:系统中只有一片8086/8088CPU。MN/ =1最大模式:CPU两片以上,一个为主CPU,另一个为协CPU。MN/ =02. 3 8086/8088微处理器的引脚功能8086:AB=20,DB=168088: AB=20,DB=8(1)AD15-AD0:地址/数据复用引脚, 双向,三态。
25、 传送地址时输出,传送数据时双向输入/ 输出。在总线周期T1状态,输出地址,在 T2T4状态,传送数据。(2)A19/S6-A16/S3:地址/状态总线复用引脚 输出,三态 T1输出地址,T2-T4输出状态2.3.2 引脚信号和功能1.两种模式下功能相同的引脚2. 3 8086/8088微处理器的引脚功能(3) BHE/S7:高8位数据总线允许/状态复 用引脚。 T1:输出BHE信号,表示高8位数据线 D15-D8上的数据有效。 T2-T4: S7未定义(4)MN/MX:工作模式选择信号,输入。 MN/MX=1,最小模式; MN/MX=0,在最大模式。只有8086有此引脚(5)READY:准备
26、就绪信号,输入,高电 平有效。(6)RESET:复位信号,输入,高电平有 效。至少要保持4个时钟周期2.3.2 引脚信号和功能1.两种模式下功能相同的引脚2. 3 8086/8088微处理器的引脚功能(7)INTR:可屏蔽中断请求信号,输入, 高电平有效。受IF影响(8)NMI:不可屏蔽中断请求信号,输入, 上升沿有效。不受IF影响(9)TEST:测试信号,输入,低电平 有效。执行WAIT指令时, 若TEST为1,继续等待,直 到TEST为0。(10)RD:读信号,三态输出,低电平 有效。(11)CLK:主时钟信号,输入。(12) VCC(+5V),GND(地)(24)INTA:中断响应信号,
27、输出,低电平有效。(25)ALE:地址锁存允许信号,输出,高电平 有效。用来锁存地址信号A15-A0 (26)DEN:数据允许信号,输出,低电平有效。 (27)DT/R:数据发送/接收控制信号 (28) IO/M :存储器或I/O端口控制信号2.3.2 引脚信号和功能2.最小模式下24-31引脚信号2. 3 8086/8088微处理器的引脚功能(29)WR:写信号,三态输出,低电平有效。(30)HOLD:总线请求信号,输入,高电平有效。当系统中CPU之外的另一个控制器要求使用总线时,通过它向CPU发一高电平的请求信号。(31)HLDA:总线请求响应信号,输出,高电平有效。表示CPU对其它控制器
28、的总线请求作出响应,同时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。8086 CPU在最小模式下的基本配置 2. 4 8086系统配置 除了 CPU,存储器及I/O接口芯片外,还要加入:1片8284A,作为时钟发生器3片8282/8283或74LS373,作为地址锁存器2片8286/8287或74LS245,作为双向数据总线收发器总线2.5 8086 存储器组织 1、存储单元的地址和内容 2、8086存储器的分体结构 3、存储器的分段管理 4、物理地址的形成1.存储单元的地址和内容存储单元地址:每个存储单元有唯一的编号,即地址一个存储单元存放一个字节(8位二进制数)。存储单元
29、的读写:写:一个字需要占相继的二个单元:低位字节存入低地址单元(字地址),高位字节存入高地址单元。读:从某个地址可以读出一个字节,也可以读出一个字2. 5 8086存储器组织 问:从地址2002H读出一个字节是多少?从地址2002H读出一个字是多少?从地址2002H读出一个双字是多少?55H所在的字节地址是多少?4433H所在的字地址是多少?8086有20条地址线可寻址220=1M B=1024KB 的存储器空间 奇地址存储体:512 KB,:与高8位数据总线相连,选体信号 =0 偶地址存储体:512 KB,与低8位数据总线相连,选体信号A0=0存储器分体结构单元示意图 2. 8086存储器的
30、分体结构2. 5 8086存储器组织 8086系统中存储器与总线的连接 存放规则:1).一个字节8位:可以存在奇地址体,也可以在偶地址体,字节地址就是存储单元的实际地址。2).一个字(16位):数据占连续的二个单元,高字节存放高地址,低字节存放低地址(一般是偶数地址),并将低字节的地址作为该字的字地址。3).8086CPU访问存储器规则是:一次读写一个字,且从偶地址开始。2. 8086存储器的分体结构2. 5 8086存储器组织 3. 8086存储器的分段管理: 8086/8088有20条AB,寻址220=1M存储空间(00000HFFFFFH)。 CPU中的寄存器是16位的,20位地址无法用
31、16位寄存器表示,必须分段。 1M的存储空间分成若干段,段与段之间可以重叠。但每个段的大小不能超过64KB;2. 5 8086存储器组织 4. 物理地址:唯一性 物理地址PA=段基址16+偏移地址(EA)5. 逻辑地址:不唯一性逻辑地址LA=段基址:偏移量(EA)例:逻辑地址为2000H:3000H,则其物理地址PA=2000H*16+3000H=23000H思考题: 逻辑地址LA为2100H:2000H所代表的物理地址? 1.存储器映像编址(统一编址) 存储器与I/O口统一编地址 优点:所有适用于存储器的指令,同样适用于I/O。用地址大小来区分存储器和I/O口。 缺点:I/O占用存储空间 2
32、.独立编址 存储器与I/O口分别独立编地址,二者地址可重复,用指令区分存储器和I/O口。 优点:I/O不占用存储空间 缺点:对存储器和I/O采用不同的指令,编程不便 2. 6 8086的I/O接口组织8086采用独立编址2.7.1基本概念 1.时序 计算机工作时,严格的时间先后顺序称为时序。 2.时钟周期 是CPU工作最小时间单位,每个时钟周期T又称一个T“状态”或T周期,计算机主频的倒数决定。2. 7 8086的总线操作时序3、总线周期(机器周期)CPU对存储器或I/O口进行一次读/写操作的时间称为总线周期。1个总线周期至少包括4个时钟周期:T1,T2,T3,T44、指令周期执行一条指令所需
33、要的时间称为指令周期。一般要1个以上的总线周期。其长短与指令有关1.典型总线周期时序 读时序 T1:AD线发送地址信息 T2: AD线浮空,为传数据做准备 T3:查看READY信号,若准备好, CPU采样AD线上存储器或I/O数据 T4: AD线浮空,为下一次传送做准备若没准备好,T3T4之间插入TW, TW 的操作同T32.7.2 基本时序分析2. 7 8086的总线操作时序 写时序(只有T2不同) T2:AD线CPU输出数据2.最小模式下存储器读操作时序T3:确认。上升沿检测READY信号为高则将数据送上总线;否则插入等待周期TW 。TW:等待。继续检测READY,同T3T4:传送完毕,准
34、备下一次传送。T4的后半周期数据从总线上撤除,所有信号均无效。T2:准备传数据。A19-A16输出状态信息, AD15-0高阻, RD有效,DEN有效T1:传地址。ALE,M/IO,BHE, ,DT/R,有效2.7.2 基本时序分析2. 7 8086的总线操作时序 2、最小模式下存储器写周期与读周期的区别:(1)DT/R为高电平。(2)AD15AD0输出地址后,紧接着输出数据,T4上升沿浮空。(3)T2-T3,WR有效。3.最小模式下存储器写操作时序2.7.2 基本时序分析2. 7 8086的总线操作时序1.编程结构:EU、BIU 2.寄存器结构:重点 14个16位: AX, BX, CX,
35、DX CS, DS , ES, SS BP,SP, SI, DI IP, FR3.引脚:8086:地址线20条,数据线16条8088:地址线20条,数据线8条本章重点:4.系统配置: CPU,1片8284、3片8282地址锁存器、2片8286数据收发器5.存储器(难点) 分体结构:奇地址体、偶地址体 分段管理:物理地址、逻辑地址6.时序(难点) 时钟周期、总线周期、 T1传地址,T2-4传数据2-1、2-4、2-5(已完成)2-11、2-15、2-18、2-21、2-25第2章 作 业第三章 8088/8086的指令系统第 3 章指令的基本格式8086/8088的寻址方式8086/8088指令
36、系统3.13.23.3微机原理与接口技术3.1 指令的基本格式1.操作码:表示计算机要执行的操作类型 如:MOV数据传送 IN 数据输入2.操作数:指令执行所需的数 1) 大部分指令有2个操作数:目的操作数和源操作数 如: MOV AL ,45H ; 逗号前面的AL是目的操作数,后面45H是源操作数 2) 少数指令只有一个操作数,可能是源操作数,也可能是目的操作数 如:INC BX ;BX既是源操作数,又是目的操作数 PUSH AX ;AX是源操作数 POP AX ;AX是目的操作数 3) 少数指令没有操作数 如:DAA ;加法的十进制调整指令,操作数隐含在AL中汇编指令由两部分组成:操作码
37、操作数寻找操作数来源的方式,称为寻址方式,共6种。操作数的可能来源只有三个: (1)直接包含在指令中; 立即寻址 (2)CPU的寄存器中; 寄存器寻址 (3)存储器中。;4种寻址方式,具体是哪种方式,就看怎样表达存储器单元的地址 操作数来源不同,即寻址方式不同。3.1 指令的基本格式3.1 指令的基本格式3.1 指令的基本格式3.2 8086/8088 的寻址方式1、立即寻址 例:MOV AL,34H MOV AX,3000H 特点: 操作数是立即数,直接放在指令中 注意:立即数只能做源操作数3.2 8086/8088 的寻址方式2、寄存器寻址 例:MOV AL,BL; MOV DS,AX;
38、特点: 操作数包含在寄存器中 注意:寄存器位数要一致 MOV AL,BX; MOV AX,BL;这两种寻址方式,数据都来源于CPU内部,无须访问总线,所以执行速度相对快。3.1 指令的基本格式3.1 指令的基本格式3.1 指令的基本格式3.2 8086/8088 的寻址方式 后面4种寻址方式,操作数都来源于存储器。 表3-1存储单元的表示方法。 不同的表示方法,表示不同的寻址方式。 3.2 8086/8088 的寻址方式3. 直接寻址 例: MOV AX,2000H 特点:操作数的偏移地址2000H直接在指令中物理地址PA的计算:默认PADS16 +偏移地址例如:MOV AL, 2000H ;
39、此时,PADS16 +2000H若有超越,则PA超越到的段寄存器16 +偏移地址例如:MOV AX,ES:4000H ;此时,PAES16 +4000H执行结果:AX=1234H3.2 8086/8088 的寻址方式4.寄存器间接寻址 例: MOV BX,SI 注意: 1)可间接寻址的寄存器只有四个: BX、BP、SI、DI。其中存放操作数所在的偏移地址 2)以SI/ DI/ BX间接寻址时,默认DS段 3) 以BP间接寻址时, 默认SS段 PA=SS16+BP 4)允许段超越MOV BX, SIDS=1000H, SI=3000H结果:BX=2345HMOV BX,SS:SI3.2 8086
40、/8088 的寻址方式5.变址寻址寄存器间接寻址的基础上加一个8/16位的偏移量,注意事项同上 例:MOV BX,SI +4000H 设:DS=3000H,SI=2000H,位移量为4000H,(36000H)=5678H 则:PA = DS16+SI+COUNT =30000H+2000H+4000H =36000H 执行结果为BX=5678H。3.2 8086/8088 的寻址方式.基址加变址寻址例: MOV AX,BX+SI16位偏移量;红色部分加不加都可以 有的教材会把加红色部分称作相对基址变址寻址 注意: BXBP不能共存,SIDI不能共存 若用BX: 默认操作数在数据段DS中 若用
41、BP: 默认操作数在堆栈段SS中 上例中:DS=3000H, BX=2000H,SI=5000H 则:PA=DS16+BX+SI=37000H 指令执行后,AX=5577H 该指令还可写成: MOV AX,BXSI MOV AX, BX+DI+偏移量寻址方式小结(看源操作数,不用看目的操作数):立即寻址: MOV AX, 3000H寄存器寻址: MOV AX, BX直接寻址: MOV AX, 3000H寄存器间接寻址:MOV AX, BX 变址寻址:MOV AX, BX+800H基址加变址寻址:MOV AX,【BX+SI+900H】Intel 8086/8088指令系统共有133条基本指令,可
42、分成6个功能组: 数据传送类指令 算术运算类指令 逻辑运算类指令 串操作类指令 控制转移类指令 处理器控制类指令3. 3 8088/8086的指令系统六种格式: 通用寄存器之间传送(r/r), MOV BL, AL MOV DI, AX 通用寄存器和段寄存器之间传送(r/SEG), MOV DS,AX MOV AX,ES 通用寄存器和存储单元之间传送(r/M), MOV AL,2000H MOV DI,AX 段寄存器和存储单元之间传送(seg/M), MOV DS,2000H MOV BX SI,SS ;立即数到通用寄存器(r Imm), MOV BX,2000H ;立即数到存储单元(M Im
43、m), MOV 4000H,30H ;3. 3.1 数据传送指令基本格式:MOV dst,src;将源操作数src传送到目的操作数dst;后面是注释,不参与编译;功能相当于复制src,粘贴到dst,即src不变,dst被覆盖.位数一致 MOV AL, 2000H ; MOV AL,BX ; MOV AX , BL ; .不允许存储单元间传送数据 MOV 2000H,3000H; MOV DI,SI ;.不能用CS和IP作目的操作数 MOV CS,3000H; MOV IP,2000H; 3. 3.1 数据传送指令1通用数据传送指令 (1)MOV传送指令 2)注意事项段寄存器之间不能直接传送数据
44、。 MOV SS,DS ; 立即数不能作目的操作数。 MOV 2000H,AX; MOV 34H , AL ;不能向段寄存器送立即数 MOV DS,4000H; 应改为 : MOV AX,4000H; ; MOV DS,AX(2)堆栈指令 入栈:PUSH src ;SP -2后,将src压入堆栈 出栈:OP dst ;当前栈顶2个数据弹出到dst,后SP+2 堆栈:用SS:SP管理,其地址表示当前栈顶单元地址 SP总是指向栈顶 SP初值决定了栈的深度,栈深度64kB 。 原则: 操作数必须是16位寄存器/存储器 PUSH AX ; PUSH AL ; PUSH 2345H ; 不可以是立即数
45、后进先出(LIFO)例:PUSH AX PUSH BX . POP BX POP AX 3. 3.1 数据传送指令(3)交换指令格式:XCHG dst,src ;dst与src内容互换 是唯一的把源操作数也刷新了的汇编指令。 交换可以发生在:通用寄存器之间、通用寄存器与存储器 例: XCHG AL,BL ;AL和BL数据互换 XCHG AL,2000H; AL与2000H;数据互换 3. 3.1 数据传送指令注意: 位数一致 XCHG AL,CX ; 段寄存器和立即数不能作为一个操作数; XCHG DS,AX; XCHG BX,2000H ; .不能在存储器与存储器之间交换数据 XCHG 30
46、00H,2000H ; 3.地址目标传送指令LEA例如:LEA BX,table;将table的地址送到BX功能等价于 MOV BX,offset table比较下面三条指令:MOV BX,1700H ;将1700H送到BXMOV BX,1700H; 地址为1700H存储单元的内容送到BX, ,执行完BX=1700H单元的内容LEA BX,1700H; 地址为1700H存储单元的地址1700H送到BX, 执行完BX=1700H 3. 3.1 数据传送指令2累加器专用传送指令 输入/输出指令(CPU与I/O口之间的数据传送)当I/O地址FFH时 IN AL,DX ; ALDX IN AX,DX
47、; AXDX+1DXOUT 同理如下 OUT n,AL ; ALn OUT n,AX ; AXn+1n OUT DX,AL ; ALDX OUT DX,AX ; AXDX+1DX3. 3.1 数据传送指令例:IN AL,86H ;从86H端口读入一个字节到ALIN AX,0F0H ;F0H口的数据到AL,F1H口的到AHMOV DX,280H ; IN A L ,DX ; 端口280H读一个字节到ALOUT 83H,AL ;AL内容输出到端口83HMOV DX,281H ; OUT DX,AX ; AL到端口281H,AH到端口282H例3-3 若十进制数字09的LED七段码(共阳极,小数点常
48、亮)对照表如下表所示,试用XLAT指令求数字N(N=09)的七段码值。(2)换码指令XLAT (表首地址) ;括号可有可无AL=(DS)16(BX)+(AL) 条件:建立表格,有规律可查 BX指向表首地址AL存放待查的码执行XLAT后:转换后的结果存放在AL中。常用于无规律的代码转换3. 3.1 数据传送指令TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H.MOV BX,OFFSET TABLE ;table的偏移地址 MOV AL,N XLAT 若N=5,执行上述指令后AL=12H,若需输出,可采用OUT DX,AL,输出到LED显示数据传送类
49、小结通用传送类: MOV dst,src; PUSH src;src压入堆栈 POP dst ;当前栈顶的内容弹出到dst XCHG dst,src;dst与src内容互换累加器专用指令 IN AL/AX,n/DX OUT n/DX, AL/AX XLAT(表首地址)3. 3.1 数据传送指令加法调整指令(4)DAA;加法结果的十进制调整指令(5)AAA ;加法结果的ASCII调整 被调整的操作数隐含在AL中。 1加法指令 ADD dst,src ;dstdst+src(2) ADC dst,src ;dstdst+src+CF(3) INC dst ; dst dst+1,不影响CF其中:
50、dst:通用寄存器或存储器。 src:通用寄存器、存储器或立即数 dst与src不能同为存储器影响OF、SF、ZF、AF、PF、CF(INC不影响CF)例:MOV AL,0FFH ADD AL , 1 ; AL=00H,CF=1 OF=0 SF=0,ZF=1,AF=1,PF=1MOV AL,0FFH INC AL ;AL=00H,CF不变, 其他标志位同上3. 3.2 算术运算指令例3-8 若AL=BCD 28,BL=BCD 47 ADD AL,BL ;执行完AL=6FH DAA ;执行完AL=75H ,即28+47 若DAA换成AAA,执行后AX=0705H 2. 减法类指令(Subtrac
51、t)以下指令与加法类似(1) SUB dst,src ;dst=dst-src (2) SBB dst,src ;dst=dst-src-CF (3) DEC dst; ;dst=dst-1,不影响CF(4) DAS(5) AAS3. 3.2 算术运算指令比较指令是减法CMP dst,src;比较之后产生分支结构 dst与src做差,但不产生结果,影响标 志位,以判断被比较的两数大小 例:CMP AL,60 JC FAIL ; CF=1,转到FAIL JMP PASS ; 否则转到PASS算术运算类指令小结加法:ADD、ADC、INC、DAA、AAA减法:SUB、SBB、DEC、CMP3. 3
52、.2 算术运算指令1逻辑运算指令:按位操作 (1)取反指令:NOT dst;dst按位取反(2)与、或、异或 指令 AND dst,src ;dst和src按位相与送dst ;与0相与,可实现按位清零 OR dst,src ;按位相或送dst ;与1相或,可实现按位置1 XOR dst,src ;按位异或,结果送dst ;与1相异或,实现按位取反注意:dst可以是寄存器或存储器内容; src可以是寄存器、存储器或立即数。 但不能dst、src同为存储器3. 3.3 逻辑运算和移位指令例:若AL=56H=01010110B若执行 NOT AL; AL=10101001B=A9H若执行 AND A
53、L,0FH AL=06H,高4清零,低4不变若执行 OR AL, 0F0H AL=F6H,高位置1,低位不变若执行 XOR AL ,0FH AL= 01011001B=59H(3) 测试指令 TEST dst,src ; 与运算,但不产生结果,影响标志位。实现按位测试,例3-18 AL中存报警标志。若D7=1,转到温度报警处理程序TALARM;D6=1,则转压力报警程序PALARM。 TEST AL, 80H ;查AL的D7=1? JNZ TALARM ;是1(非零),则转温度报警程序 TEST AL,40H ;D7=0,D6=1? JNZ PALARM ;D6=1,转压力报警其中JNZ为条件
54、转移指令,表示结果非0(ZF=0)则转移。 区别: TEST AL,80H ;按位比较,与操作,测试AL的最高位 CMP AL, 80H ;整体比较,差操作,比较AL 与80H大小 二者共同点就是运算但不产生结果,但影响标志位,实现测试或比较3. 3.3 逻辑运算和移位指令1逻辑运算指令:2算术/逻辑移位指令:用来实现快速乘/除运算 算术左移:SAL dst,n ;dst左移1次,相当于乘2逻辑左移:SHL dst,n ;算术右移:SAR dst,n;dst右移1次,相当于除2逻辑右移:SHR dst,n功能:将 dst移位n次。若移位位数1,n应为CL。3.3.3 逻辑运算和移位指令例3-2
55、0:Y=X*10=(X*2)+(X*8) MOV AL,X SAL AL,1 ;AL=X*2 MOV BL,AL ;BL= X*2 SAL AL,1 ;AL= X*4 SAL AL,1 ; AL=X*8 ADD AL,BL ; L=(X*2)+( X* 8) MOV Y,AL执行上述7条指令一共用30T(时钟周期),这比乘法指令执行时间短得多,见附录一。3.循环移位指令:循环左/右移:每移一次就有一位去CF,可于实现逐位检测 ROL dst,n ;若移位位数1,n应为CL ROR dst,n ; 带进位的循环左/右移:可实现联合移位 RCL dst,n; RCR dst,n 3. 3.3 逻辑
56、运算和移位指令例如: 将通用寄存器DX和AX的32位数的联合左移(乘2)。使用的指令如下: SAL AX,1 RCL DX,1逻辑运算和移位类总结逻辑运算: NOT、AND、OR、XOR、TEST逻辑移位: SAL/SHL、SAR、SHR、 循环移位: ROL、ROR带进位的循环移位: RCL、RCR3. 3.3 逻辑运算和移位指令改变IP(和CS)值,实现分支、循环、子程序等结构。 3. 3.5 控制转移类指令1.无条件转移类 (1) 无条件转移指令 JMP 目的 (2)过程调用和返回指令 CALL 过程名 . RET ;返回到CALL的下一条指令 对于近调用,执行的操作是: SPSP2,
57、IP入栈 对于远调用,执行的操作是: SPSP2, CS入栈 SPSP2, IP入栈如果从近过程返回,IP出栈,同时SPSP2;如果从远过程返回,IP出栈,SPSP2;CS出栈,SPSP2。例3-25 求AL和BL的和,若有进位,则AH置1,否则AH清0。 2.条件转移指令: 满足条件则转移,否则向下执行 (1)直接条件转移3. 3.5 控制转移类指令 ADD AL,BL ; JC NEXT ;若有进位,转NEXT MOV AH,0 ;无进位,AH清0 JMP EXIT ; NEXT:MOV AH,1 ;有进位,AH置1 EXIT: ;2.条件转移指令 (2)间接标志转移指令:3. 3.5 控
58、制转移类指令3. 循环控制指令LOOP 标号 ; 若CX-10,转移到标号(即循环程序),否则退出循环 相当于以下两条指令 :DEC CX; JNZ 标号3. 3.5 控制转移类指令4. 中断指令(Interrupt)(1)INT n ;软件中断指令,n为中断类型号,n=0255(2)IRET ;中断返回指令 IP出栈,SP+2SPCS出栈,SP+2SP FR出栈,SP+2 SPSP-2 SP,FR入栈SP-2SP, CS入栈SP-2SP,IP入栈例3-27 某温度控制系统,从温度传感器(地址520H)读入一个8位温度值。当低于25度时,打开加热器;否则关闭加热器。加热器(地址521H)的控制
59、信号连到端口的最高有效位,当将这一位置0时,打开加热器,1时则关闭加热器。 GETTEMP: MOV DX,320H ; IN AL,DX ;读取温度值 CMP AL,100 ;100度比较 JAE HEATOFF ;100度,转到HEAT_OFF(停止加热程序) MOV AL,00H ;否则D0位置1,启动加热 1000 0000 MOV DX,321H OUT DX,AL ;打开加热器 JMP GETTEMP ;继续检测温度 HEATOFF: MOV AL,80H ;D0位置0,停止加热 MOV DX,321H OUT DX,AL ;关闭加热器 JMP GETTEMP ;继续检测温度3.
60、3.5 控制转移类指令CPUAL加热器321H温度传感器320HD0D7控制转移类小结无条件转移:JMP、CALL、RET条件转移:JZ/JC/JS JNZ/JNC/JNS JA/JAE、JB/JBE(无符号数比较) JG/JGE、JL/JLE(带符号数比较)循环控制:LOOP中断指令:INT n 、IRET3. 3.5 控制转移类指令标志操作:STC ;使CF=1CLC ;使CF=0CMC ;使CF取反CLD ;使DF=0STD ;使DF=1CLI ;使IF=0,禁止中断STI ;使IF=1,允许中断3. 3.5标志操作和处理器控制类指令处理器控制类 HLT ;暂停 WAIT ;等待 ESC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公楼食堂厨师招聘合同
- 矿产资源总经理招聘协议
- 住宅小区监理协议书
- 塑料厂事故死亡赔偿协议
- 江苏商业中心中心建设合同模板
- 新生儿心脏病护理查房
- 湖南省常德市(2024年-2025年小学五年级语文)人教版摸底考试((上下)学期)试卷及答案
- 儿子婚庆父亲的讲话稿(14篇)
- 能源物联网的应用
- 采矿设备管理员工培训
- 如何培养孩子的自信心课件
- 中医药膳学全套课件
- 颈脊髓损伤-汇总课件
- 齿轮故障诊断完美课课件
- 2023年中国盐业集团有限公司校园招聘笔试题库及答案解析
- 大班社会《特殊的车辆》课件
- 野生动物保护知识讲座课件
- 早教托育园招商加盟商业计划书
- 光色变奏-色彩基础知识与应用课件-高中美术人美版(2019)选修绘画
- 前列腺癌的放化疗护理
- 机场英语-Airport-English课件
评论
0/150
提交评论