资源描述
微机原理与接口技术讲稿张永林,201545微机原理与接口技术讲稿开课前准备:了解教学班级基本情况。开课前联系教学班级辅导员,了解学生对大学计算机基础、计算机程序设计、数字电子 技术、模拟电子技术等先修课程的掌握情况,了解教学班级班风、 学风情况,尤其是需要特别关注的学生。第1讲(第一章1)教学内容1 .课程简介2 .计算机中数值数据的表示(原码、反码和补码)基本要求1 . 了解本课程的教学目标、教学内容、教学要求及考核方法。掌握溢出的判别方法。2 .熟练掌握有符号数的表示方法; 掌握补码运算的特点和基本法则;相互认识点名,确认选修学生名单无误;留下班长、学习委员联系方式;所有学生必须进入本课程教学交流QQ群。课程引入计算机软硬件技术 应用日益广泛:计算机控制系统(数字控制、集散控制、分布控制), 智能系统(智能建筑、智能交通、智慧城市 工智能设备(智能家电、智能手机、智能仪 器储 数字化、信息化;物联网;大数据;工业 4.0;课程简介1 .课程基本情况学分/学时:4.5/72课程类别:必修/专业基础,考试先修课程:大学计算机基础、计算机程序设计、数字电子技术、模拟电子技术等后续课程:单片机与嵌入式系统、DSP原理及应用等教学安排及方式:本课程理论教学48学时,实验24学时。理论授课20-22次,课堂练 习与讨论1-2次、课程复习与总结 1次,必做课内实验 8个,同时安排微型计算机系统、微 机系统中的总线、DMA控制器、USB串行接口、Pentium微处理器等内容自学。此外,本课 程单独设置了 1.5W的课程设计环节。其他:电子信息类专业的学科基础课,涉电各工程类专业的必修课,研究生入学考试的可选专业课,计算机等级考试的主要内容(江苏省三级偏硬)2 .课程教学目标(1)使学生掌握微型计算机的逻辑结构、工作原理、典型CPU的指令系统、存储器扩展及其典型接口电路等知识。(毕业要求1)(2)使学生初步掌握汇编语言程序设计的基本方法,初步掌握微机与输入输出设备的典型接口电路,初步具备微机应用系统的分析能力。(毕业要求2)(3)使学生掌握微机实验的基本技能,初步具备进行微机应用系统软、硬件设计开发 的能力。(毕业要求3)(4)使学生了解微机系统发展的新技术和新知识。(毕业要求1)3 .课程教学要求本课程的教学强调 理论与实践相结合。要通过理论学习、实验运用、课堂讨论、课后练习等教学环节,使学生获得知识运用能力、实验分析能力和工程设计的能力。教学中不拘于抽象的理论,而应加强实例分析,启发学生的独立思考和自主分析。教学中还应结合授课内容,安排必要的复习思考题,以便学生能够巩固学习成果。4 .课程考核课程考核分平时、实验和期末考试三部分:平时考核:包括到课情况、课堂回答问题与讨论情况、每章的复习思考题、 网络学习与互动情况等,占总成绩的30%。平时考核不合格不得参加期末考试。实验考核:包括实验准备、实验实施与效果、实验报告等,占总成绩的 10%。实验考核 不合格不得参加期末考试。期末考试:采用闭卷笔试形式,具体要求见本课程考试大纲。 期末成绩占总成绩的 60%。对期末考试可能尝试采用以下方式替代(考核方式改革探索):(1)微机应用系统设计方案;(2)微机应用作品实物或 Proteus仿真;(3)可以证明达到课程教学目标的其他方式。改革尝试考核包括两个部分:第一部分为设计方案或作品 实物(仿真),占60%。前者必须上交 详细设计方案,方案 应包括系统结构图、硬件原理图、软件功能图、程序流程图及程序清单;后者的(仿真)作品实物应能够演示,并上交完整的 设计报告和演示视频;方式(3)必须上交报告,报告中 必须充分证明自己已经达到本课程教学目标。第二部分为答辩,占40%。主要陈述如果通过系统设计或作品研制达成了本课程教学目 标,并回答老师问题;答辩老师应关注学生设计方案或作品中未涉及到的大纲中要求的知识 点及其应用。答辩必须保留记录。5.学时分配 第一章 第二章 第三章 第四章 第五章 第八早基础知识系统结构指令系统程序设计 存储器组织I/O 接口4 (讲授4)4 (讲授4)11 (讲授8,实验3)12 (讲授6,实验6)7 (讲授4,实验3)9 (讲授6,实验3)第七章中断/定时第八章模拟接口第九章串行接口9 (讲授6,实验3)7 (讲授4,实验3)7 (讲授4,实验3)自学:讲授=1:1 = 46学时,不定期抽查,计入平时成绩 1.1 算机中数值数据的表示 1.1.1 位计数制及其相互转换1 .进位计数制指用数字符号排列成数位,按由低到高的进位方法进行计数。涉及到数码、位权、基数。数码:各数位中允许选用的数字符号位权:每个数位赋予一定的位值基数:计数制中所允许选用的数码个数(1)十进制数码:09 十个不同的数字符号基数:10计数规则:逢10进1,即9+1=10权:以10为底的哥。如10-1、101等数码的数值取决于它在数中的位置例:十进制数333,最左边的3代表数值300,权值为102,中间的3代表数值30,权 值为101,最右边的3代表数值3,权值为100。(2)二进制数码:只有0和1两个数字符号基数:2计数规则:逢2进1,即1 + 1=10 权:以2为底的哥。如2-1、21等每个数码的数值取决于它在数中的位置例:二进制数11.1,最左边的1代表数值2,权值为21,中间的1代表数值1,权值为20,最右边的1代表数值0.5,权值为2-1(3)八进制数码:有07八个数字符号基数:8计数规则:逢8进 1,即7+1=10权:以8为底的哥。如 8-1、81等 每个数码的数值取决于它在数中的位置例:八进制数44.4,最左边的4代表数值32,权值为81,中间的4代表数值4,权值 为80,最右边的4代表数值0.5,权值为8-1(3)十六进制数码:有09、AF十六个数字符号基数:16计数规则:逢16进1,即F+1=10权:以16为底的哥。如16-1、161等每个数码的数值取决于它在数中的位置例:十六进制数 AA.A,最左边的A代表数值160,权值为161,中间的A代表数值10, 权值为16,最右边的A代表数值0.625,权值为16-1。结论任何一个进位计数制数|N=Dn-i Dn-2Di D0 D-1 D-2D-m |都可以展开为:N = Dn-iXW1+Dn-2xn-2+-Di/R+D0X0+D-iX1 + D-2X-2+ D-m xR其中,Di为OR-1中的任何一个数,R为基数,Ri为权值。2 .不同进制数的表示(1 )用大写字母表示二进制用 B (Binary)、八进制用 Q (Octal)、十进制用D (Decimal)、十六进制用 H(Hexadecimal)例:1010B=10D=12Q=0AH一般十进制数后可以省略不写。编程时只能采用这种表示方法。(2 )用括号加数字表示例:(1010)2=(10)10=(12)8=(0A)163 .数制间的相互转换(1 )二、八、十六进制数一十进制数方法:按权展开例:(1101.011)2=1 X 3+1 X 2+0 X 1+1 X 0+0 X 21 + 1 X -2 + 1 X -3=8+4+0+1+0+0.25+0.125=(13.375)10 (276)8 = 2 支+7X1+6X0=(190)10(A3F)16= 10 X 263X 1815X 10=(2623)10(2)十进制数一二、八、十六进制数 将整数部分与小数部分分别转换 4数部分:除基取余,先低后3采用辗转相除法,用基数不断去除要转换的十进制数,直至商为0,将各次计算所得的余数,按最后的余数为最高位,第一次余数为最低位,依次排列,即得转换结果。例,要求将口埼皤转换为二进制敷2 I 2241 113余。位)2 56亲I3 m全4 口*俅05 7余。6 3 余17 1 余 1o 余 1所以(第6M(1】1口(1al例:餐求期工通人轴换为八进效R I用S1S 命工f低位)K3 余 40 余3高位)例:聂求将S2也“转换为十六进制数162261614 低位0案14 f 离位)所以。工114 小数部分:乘基取整,先高后低采用乘基数取整数方法,即不断用2、8或16去乘需转换的十进制小数,直到满足要求的精度或小数部分等于0为止,然后取每次乘积结果的整数部分,以第一次取整为最高位,依次排列,可得到转换结果。例;求对应于(Q.625川的二进制敷 0.625 X 2UM Sftl(最离位)0250 X 20.5整如。X 21J 整数I量低位)此对小数部分为弧转换结束 所以 W.6 例:求对应于(226.625)10的二进制数。分析:本题中十进制数既有整数部分又有小数部分,应先分别加以转换,然后再合并在一起得到最后结果。因为(226)io=(11100010)2(0.625)10=(0.101)2所以(226.625)10=(11100010.101) 2(3)二进制数一八、十六进制数二进制数一八进制数:整数向左,小数向右,三位合一,不足补按小数点为界,整数部分向左、小数部分向右,每3位为一组用一位八进制数表示,即“三合一”,位数不够时用“ 0”补。例:(100 010 011.011 101)2=(423.35)8 二进制数一十六进制数: 整数向左,小数向右,四位合一,不足补 0按小数点为界,整数部分向左、小数部分向右,每4位为一组用一位十六进制数表示,即“四合一”,位数不够时用“ 0”补。(4)八、十六进制数一二进制数八进制数一二进制数用3位二进制数替换每位八进制数,即“ 一扩三若整数的最高位为0,小数的最末位,可以省去。例:(264.54)8 =(010 110 100.101 100) 2 =(10110100.1011)2十六进制数一二进制数用4位二进制数替换每位十六进制数,即“ 一扩四”,若整数的最高位为 0,小数的最 末位,可以省去。例:(7F.C4)6= (01111111.1100 0100) 2 =(1111111.110001)21.1.2计算机中数的表示1 .机器数与真值机器数:一个数在计算机中的表示形式,即二进制代码如:10010、11001100 等。真值:一个机器数所表示的数值如:+10、-29、+1011 等。无符号数:全部有效位都用来存放数据。有符号数:数的最高位是符号位,正数用“ 0”表示,负数用“ 1”表示。2 .有符号数的表示方法原码:数真值形式中的“ +”,“-”号用0, 1表示,数据本身用机器数表示。反码:负数的反码形式在原码基础上,符号位不变,其余位按位求反;正数的反码形式与原码相同。补码:负数的补码形式由 反码加1求得;正数的补码形式与原码相同。正数:X 反=X 补=X 原负数: X 补=X 反+ 1X 反反=X 原X卜补=X 原求补码的方法XW = X反+1;负数凶补=凶反;正数XN=K+ X; K 模例如:1)钟表模为122) 8位二进制模= 28=2563)电表(4 位)模=104= 10000直接求补法一一负数(二进制)*-X#= X补变补例:+36原=00100100B36补=11011100B说明:变补是一种运算,不是一种码制 。具体操作是:不论X补是正还是负,连其符号位一起变反,末尾加1。例:设字长为8, X的十进制数为+85, Y的十进制数为-85,求X 原,X 反,X 补,Y原, Y反,Y补。解:X 原=01010101 , Y 原=11010101X 为正数X 反=X 补=X 伸=01010101Y 为负数Y 反=10101010Y =10101011课后思考:0的原码、反码、补码 ?下讲提问:1 .十进制数如何转换成非十进制数;2 .原码、反码、补码的概念及相互关系。第2讲(第一章2)教学内容1 .计算机中数值数据的表示(定点数和浮点数)2 .计算机中常用编码(BCD码、ASCII码、汉字编码)3 .计算机运算基础4 .微型计算机系统的基本组成(自学)基本要求1 .掌握定点数、浮点数的特点、表示方法及其运算。2 . 了解BCD和ASCII码,理解BCD码加法的调整。3 .理解微型计算机系统的硬件组成和软件作用。上一讲内容回顾提问上一讲留下的思考题与问题,检查上一讲教学效果。继续第一章教学内容讲授 1.1 算机中数值数据的表示(续), 1.1.2 算机中数的表示3.定点数与浮点数定点数:小数点在数中的位置固定不变的数通常有两种简单约定:小数点在最高数位之前,符号位之后,这种约定参与运算的数是纯小数;小数点在数的最低位之后,这种约定参与运算的数是纯整数。浮点数:小数点在数中的位置可变化的数。数N的二进制浮点数表示:N=2j x S,其中S称为尾数,j称为阶码。其格式由阶符、阶码、数符、尾数四个部分组成。阶符:1位,表示阶码的正负号数符:1位,表示数的正负号 尾数:n位,一般为纯小数 阶码:m位,一般为纯整数 阶码和尾数可用原码、反码或用补码表示。规格化数:尾数S满足:0.5 |S| 指令指针一次 地址加法器 指令队列苜线接口拴制逻辑4喊中5和小风刊 TT 小11曰*冈叱二二U执行单元EU负责指令的执行,从 BIU的指令队列中取指令和数据,不直接与外部总线 相连。总线接口单元BIU根据EU的请求,完成 CPU与存贮器或I/O设备之间的数据传送。执行单元EU(1)寄存器组通用寄存器:AX BX CX DX 16位AH,AL BH,BL CH,CL DH,DL 2*8 位指针寄存器 SP BP SI DI 16位其中SP为堆栈指针,SP总是指向栈顶,而且堆栈是先进后出,后进先出BP基数指针 SI DI数据块操作类标志寄存器FR (PSW)状态标志控制标志(2)算术逻辑单元 ALU算术运算:+ X +逻辑运算:AND OR NOT XOR移位操作位操作总线接口单元BIU(1)段寄存器组CS DS SS ES 16 位(2)指令指针IP特点:IP总是指向将要执行指令的首地址取指令代码使用IP+ 1 - IP(3)指令队列6个字节(4)地址加法器物理地址(20位)= 段地址(16位)*16+偏移地址(16位)(无符号数) 段地址 一CS/DS/SS/ES段地址:偏移地址(逻辑地址) 2.1.2 8086/8088内部寄存器1 .数据寄存器组二AX:累加器(Accumulator)。可分成两个八位寄存器AH、AL使用。BX:基址寄存器(Base register)。可分成两个八位寄存器BH、BL使用。CX:为计数器(Counter)。可分成两个八位寄存器CH CL使用。DX:数据寄存器(Data register)。可分成两个八位寄存器DH、DL使用。数据寄存器用来存放计算的结果和操作数.也可以存放地址每个寄存器又有它们各自的专用目的AX一累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX 一基址寄存器,常用做存放存储器地址:CX一计数器,作为循环和串操作等指令中的隙含计数器:DX 数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。2 .指针与变址寄存器组六SP(Stack Pointer):堆栈指针寄存器BP(Base Pointer):基地址指针寄存器SI(Source Index):源变址寄存器DI(Destination Index):目的变址寄存器指针寄存器用于 寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能3 .段寄存器组会8086有4个16位段寄存器,每个段寄存器用来 确定一个逻辑段的起始地址,每种逻辑段均有各自的用途。CS (代码段)指明代码段的起始地址SS (堆栈段)指明堆栈段的起始地址DS (数据段)指明数据段的起始地址ES (附加段)指明附加段的起始地址4.标志寄存器(FRO 9位标志1514131211109876543210OFDFIFTFSFZFAFPFCF(1)状态标志 一6 bitOF溢出标志(有符号数运算)8位运算 OF= C7C 6 16位运算 OF= C15Ci4OF= 0,无溢出;OF= 1 ,溢出;CF进位标志(无符号数运算)CF= NC 7/ NC15, N为加减标志,加 N=0,减N=1;8 位为 N C 7, 16 位为 N C 15;CF= 0,加无进位/减无借位;CF= 1,加有进位/减有借位;ZF 零标志非全零 ZF= 0,全零 ZF= 1 (如:D7Do=00H , D15Do=0000H);*AF辅助进位标志AF= N C 3当AF= 0时,修正值=当AF= 1时,修正值=(BCD码运算)0 0 0 0 0 0 0 0B0 0 0 0 0 1 1 0B例:BCD码形式如前面介绍19+ 17= ( BCD运算)190 0 0 1 1 0 0 1B+ 170 0 0 1 0 1 1 1B0 0 1 1 0 0 0 0B修正值(BCD 码)360 0 1 1 0 1 1 0B0 0 0 0 0 1 1 0BSF符号标志S已D7 /D15; (8位为D7, 16位为D15) S已0,正数;SF= 1,负数;PF奇偶标志(包括符号位)奇数个“1,PF= 0;偶数个“1,PF= 1;(2)控制标志一3 bitDF方向标志串操作指令DF= 0, + (地址指针);DF= 1 ,(地址指针);如后面将介绍的串传送时,块有重叠时,必从尾指针起,做减法搬移;IF 中断允许标志中断 可屏蔽中断 IF= 0不响应(禁止中断),IF= 1响应(允许中断);(8086) 非屏蔽中断(有请求即响应)*TF 单步执行标志TF= 0 连续执行, TF= 1 单步执行;课后预习:8086/8088的外部引脚与功能下讲提问:1. 8088CPU包括哪两个部分?功能是什么?相互关系如何?2. 8088CPU内部有哪些寄存器?分属哪个部分?3. 标志位的含义。第4讲(第二章2)教学内容1. 8086/8088的外部引脚与功能2. 8086/8088体系结构基本要求1 .掌握8086/8088 CPU的内部工作时序。2 .了解CPU外部引脚功能。3 .掌握8086的系统配置、存储器结构。上一讲教学效果检查,预留问题提问。检查预习情况。 2.2 8086CPU 弓 I脚 2.2.1 种工作方式公用引脚1. AD0 15:地址/数据复用引脚*总线周期:由、T2、T3、T4四个时钟组成,T1为地址,其余为数据。2. A16/ S3A19/ S6:地址/状态线T1: A16A19地址线T2T4: 9S5状态线S4 S3含义00正在使用ESS5= IF01正在使用SSS6= 010正在使用CS11正在使用DS3. BHE/ S7:高8位数据允许线/状态线T1 一 BHE0 一 AD8AD15 (数据有效)1 一 AD8AD15 (数据无有效)4. RD读选通线RD = 0表示正进行 M或I/O读操作5. READY准备好线T1T2T3 T2N 74READ仁0插入Tw并继续检测 READY犬态READ仁1进入T4状态6. INTR可屏蔽中断请求线若IF= 1,则在一条指令结束后即响应中断请求,进入中断处理7. NMI非可屏蔽中断请求线它不受IF的影响8. RESET复位线(至少维持4个时钟周期的高电平)CS= FFFFH SS= ES= DS= 0000H , IP=0000H,指令队列为空;F= 0000H一IF= 0,表示禁止中断;例:物理地址, CS: IPf FFFF0H9. TEST测试线(与8087)TEST=1,执行 WAIT指令;TEST = 0,继续执行;10. CLK11. MN/ MX最小/最大模式线12. GND 2.2.2 小模式(第2431引脚)CPU直接控制系统1. M/ IO 存储器、I/O选择线M/ IO =1 一 访问 M (AoA19)M/ IO =0 一 访问 I/O 端口( AoA15)2. WR写信号线WR=0, CPU完成对M或I/O端口的写操作(CPURM、I/O)3. INTA中断响应线INTA0,外设要提供中断类型号;INTR= 1, IF= 1;4. ALE地址锁存线Ti 时,ALE= 1;5. DT/R数据收发线6. DEN数据允许线7. HOLD总线请求线8. HLDA总线响应线 2.2.3 大模式 (第2431引脚)CPU间接控制系统1.SO S1 S2总线周期状态线输出S7S1&操作及S1S0操作000发中断响应信号100取指令001读I/O端口101读内存010写I/O端口110与内存011暂停111无源状态2. RQ / GT0、RQ /GTi总线请求/响应线与最小方式的HOLD、HLDA线为相同引脚3. LOCK锁定线(总线锁定)4. Q S、Q So指令队列状态线Q SQ S0意义00无操作01从指令队列中的第1个字节取走代码10队列为空11除第1个字节外,还取走了后续字节中的代码 2.3 8086/8088 CPU 的时序1 .总线周期的相关概念(1)时钟周期:为CPU工作主频的时钟周期:T=1/f (f为主频)(2)总线周期:CPU通过总线对存储器或I/O端口进行一次访问(读/写操作)所需的时间 称为一个总线周期;一个总线周期至少包括4个时钟周期,即 T1、T2、T3、T4。(3)指令周期:指计算机完成一条指令的执行所需要的时间,它包含一个或多个总线周期。通常采用 MIPS ( Million Instructions Per Second)单位,即每秒执行百万条指令的含义。2 .8086典型的总线周期时序(TiT4)3 .最小模式读总线周期(1) 8088读总线周期T1T2个总线会期T3CLKZD-ZXZ2ZZDCZA故据坳入ALEZKRDDT;RT1状态输出20位存储器地址 A19A0 io/M输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态一一输出控制信号 R?T3和Tw状态一一检测数据传送是否能够完成T4状态一一前沿读取数据,完成数据传送(2) 8088写总线周期,.卜怠线庵期T1状态输出20位存储器地址 A19A0 io/M输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态一一输出控制信号 W?和数据D7D0T3和Tw状态一一检测数据传送是否能够完成T4状态一一完成数据传送 2.4 8086/8088 的体系结构1.8086存储体结构AOBMECi2-ID0D7(1个总线周期)字节:8bit字:16bit偶地址一数据总线低8位奇地址一数据总线高8位低8位所在的地址为字的地址规则字:字地址为偶地址(1个总线周期)非规则字:字地址为奇地址(2个总线周期)D0 Di5一 T1 T4(a)偶地址一 D0D7(b)奇地址一 D8D15 (占用TiT4 一个总线周期)CPUR M Ao = 0 偶地址一匚二,1 一 DoD7 12H(d) Ao = 1偶地址一奇地址一 偶地址一 田地址一34H11个总线周期(规则字)一 Do D7一 D8 D15一 Do D7一 D8 D152个总线周期(非规则字)12H34H奇地址一 一 D8D152 .数据的表达与存放计算机中信息的单位二进制位Bit:存储一位二进制数:0或1字节Byte: 8个二进制位, D7Do字Word: 16位,2个字节,D15D0双字DWord: 32位,4个字节,D31Do最低有效位LSB:数据的最低位,Do位最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、Di5、D31位多字节数据在存储器中占连续的多个存储单元:存放时,低字节存入低地址,高字节存入高地址;表达时,用它的低地址表示多字节数据占据的地址空间。3 .存储器的分段管理人8086有20条地址线最大可寻址空间为 220= 1MB物理地址范围从 00000HFFFFFH8086将1MB空间分成许多逻辑段(Segment)每个段最大限制为 64KB段地址的低4位为0000B一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址8086对逻辑段要求:段地址低4位均为0每段最大不超过64KB8086对逻辑段并不要求:必须是64KB各段之间完全分开(即可以重叠)如何分配各个逻辑段程序的指令序列必须安排在代码段程序使用的堆栈一定在堆栈段程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区 必须是附加段数据的存放比较灵活,实际上可以存放在任何一种逻辑段中4 .物理地址和逻辑地址”对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000HFFFFFHCPU以物理地址访问存储单元。分段后在用户编程时,采用 逻辑地址,形式为段(基)地址:(段内)偏移地址段基地址 说明逻辑段在主存中的起始位置,8086规定段基地址必须是模 16地址:xxxx0H,省略低4位0000B,段地址就可以用 16位数据表示,就能用 16位段寄存器表达段地址。偏移地址说明主存单元距离段起始位置的偏移量 ,每段不超过 64KB,偏移地址也可用16位数据表示将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址一个物理地址可以有多个逻辑地址5 .堆栈.堆栈:堆栈是按照 先进后出,后进先出 原则组织的一段内存区域。子程序调用和中断 响应中的现场保护常用堆栈。向上生长型堆栈:进栈时 SP指针递增,出栈时 SP指针递减向下生长型堆栈:进栈时SP指针递减,出栈时 SP指针递增。8086/8088的堆栈属于向下生长型,在堆栈段(SS),用堆栈指针 SP指向堆栈的顶部。堆栈结构堆栈位置:8086/8088的堆栈在存储器中 实现,并由堆栈段寄存器SS和堆栈指针寄存器SP来定位。堆栈大小:一个系统中可以有多个堆栈,每个堆栈的空间最大为64K字节。堆栈个数:若有多个堆栈,只有一个现行堆栈。SS寄存器存放现行堆栈的基址,SP寄存器指向栈顶。堆栈操作:进栈操作和出栈操作。8086/8088 CPU的堆栈操作必须以字为单位。6.各种类型访问存储器时的段地址和偏移地址访问存储器的方式默认可跨越偏移地址取指令CS无IP堆栈操作SS无SP一般数据访问DSCS, ES, SS有效地址EA以BP为基址的寻址SSCS, ES, DS有效地址EA串操作的源操作数DSCS, ES, SSSI串操作的目的操作数ES无DI下讲提问:1 .最小模式下的引脚与功能;2 .总线周期、指令周期、Tw的概念;3 .多字节数据的存放;本章作业:P35: 1、 2、 5、 8、 11课后预习:寻址方式、数据传送指令(第三章)第5讲(第三章1)教学内容1 . 8086/8088的指令格式与寻址方式;2 .数据传送指令。基本要求1 .掌握寻址方式的含义。2 .熟练掌握常用的数据传送指令。上一讲内容回顾提问上一讲留下的思考题与问题,检查上一讲教学效果。简要回顾第二章,引入第三章主要教学内容上一章讲述了 8086微处理器的内部结构,包括 EU和BIU,以及他们的工作原理。要想让这些硬件真正工作起来,必须给他们指令,告诉他们做什么。这一章我们将要学习8086都能接受哪些指令也就是8086的指令系统。 3.1 令系统概述指令:使计算机执行某种特定操作的二进制编码。指令系统:指一种计算机能够识别和执行的所有不同指令的集合。每种CPU在设计时就规定了一系列与硬件电路相配合的指令。指令功能的实现需要硬 件结构支持。CISC ( Complex Instruction Set Computer)复杂指令集计算机RISC ( Reduced Instruction Set Computer)精简指令集计算机CISC的指令丰富、功能强大、结构复杂,适合于通用机。RISC的指令规整、简单高效,适合于专用机。Intel CPU为CISC指令组成操作码操作数操作码说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不 可缺少的组成部分。每种指令的操作码用一个唯一的助记符表示(指令功能的英文缩写),对应着机器指令的一个二进制编码。操作数(地址码)是指令执行的参与者,即各种操作的对象有些指令不需要操作数, 通常的指令都有一个或两个操作数,也有个别指令有3个甚至4个操作数指令的助记符格式操作码 操作数1,操作数2;注释操作数2,称为源操作数src,它表示参与指令操作的一个对象操作数1,称为目的操作数 dest,它不仅可以作为指令操作的一个对象,还可以用来存放指令操作的结果分号后的内容是对指令的解释。指令中的操作数是指令执行的参与者,可以是一个具体的数值(立即数寻址方式),可 以是存放数据的寄存器 (寄存器寻址方式),或指明数据在主存位置的 存储器地址(存储器 寻址方式)。 3.2 址方式日指令系统设计了多种操作数的来源。寻找操作数的过程就是操作数的寻址。操作数采取哪一种寻址方式,会影响机器运行的速度和效率。 3.2.1 作数的寻址方式1 .立即寻址方式一源操作数、目标操作数例: MOVAL, 2 MOVBX, 1234H2 . 寄存器寻址方式8bit、16bit寄存器一立即数例:MOV AL, AH; (AL) (AH)3 .直接寻址方式 有效地址XXXXHB指令代码中例:MOVBX, 5678H;若当前 DS= 1234H, 179B8H= 12H, 179B9H = 34H,物理地址 DS : 5678H= 179B8H,有效地址(偏移地址)5678H;故(BX)= 3412H, (BL)= 12H, (BH)=34H;4 .寄存器间接寻址方式(BX SI、DI)有效地址XXXXH在寄存器中例:MOVBX, SI ;将首地址为物理地址 DS : SI的内容放入BX中5 .寄存器相对寻址方式有效地址:寄存器(SI/DI/BX /BP)+8位或16位偏移量(带符号数)(补码表示)物理地址=16*(DS) + (SI/DI/BX)+8位或16位偏移量或物理地址=16*(SS)+ (BP)+ 8位或16位偏移量例: MOV DX, BP+ 10H(或 MOV DX, 10 BP);将首地址为物理地址 SS: BP的内容放入 DX中MOV BP+1234H, AL陵 MOV 1234H BX, AL);将AL的内容放入物理地址 DS : BX的存储器中6 .基址变址寻址方式(用于表格)有效地址:基址寄存器(BX/BP)+变址寄存器(SI/DI)物理地址=16*(DS) + (BX)+ (SI/DI)或物理地址=16*(SS)+ (BP)+ (SI/DI)例: MOV AX, BXSI(或 MOVAX, BX+ SI) MOV BXDI, AL(或 MOVBX+ DI, AL)7 .相对基址变址寻址方式有效地址:基址寄存器(BX/BP) +变址寄存器(SI/DI) + 8位或16位偏移量物理地址=16*(DS) + (BX)+ (SI/DI) + 8位或16位偏移量或物理地址=16*(SS)+ (BP)+ (SI/DI) + 8位或16位偏移量例:MOV AL, BX+ SI+ 12HMOVAL, 12BX+ SIMOVAL, 12BXSI;三者等效 3.2.2 移地址的寻址方式64k,只需修改IP (段内转移)64k,修改CS IP (段间转移)1 .段内直接寻址方式IP指令码(地址16位/位移量8位/16位)带符号数2 .段内间接寻址方式IP-寄存器(16位)/存储器(16位)(5种寻址方式) 例:JMP BX ; (BX) 一(IP),将BX的内容送给IPJMP BX;将首地址为 DS : BX的内容送给IPJMP WORD PTR BX;同 JMPBX3 .段间直接寻址方式CS: IP-指令码(地址32位)例:JMP 4000H A000H; (CS) = 4000H, (IP) = A000H4 .段间间接寻址方式CS: IP-存储器 3.3 据传送指令(不影响F) 3.3.1 用数据传送指令1、传送指令;源和目标不能同时为存储器M MOV M/Ri, M/R2 M/RiM/R2 MOVR, DATA8/16例:MOVAX, 1234HMOV DH, 56H MOVAC, M ; AC= AX/AL;AC- M存储器一累加器MOV M, AC ; MAC MOV SEG M/R ; SEG= DS; SS; ES (不包括 CS) 立即数不能直接赋给段地址例:欲将DS 1000HMOVDS,1000H;是错的!只能用如下方法:MOVAX,1000HMOVDS,AX;先将立即数赋给寄存器再赋给段寄存器MOV M/R, SEG ; SEG= CS DS ES SSMOV M/R, DATA8/162、堆栈操作指令进栈: PUSH M/RPUSH SEG例:PUSH ALPUSH AX出栈: PUSH M/R PUSHSEGSS SP (16 位)只能以16位为单位向堆栈中赋数据SEG=CS DS ES SS;错!;对!该操作为修改指针 S2 SP- 2,再将AX的内容放入栈顶只能以16位为单位向堆栈中赋数据SEG= DS ES S SEG不能为 CS例:POP AX;该操作为将栈顶数据字取出放入AX中,并修改指针 S2 SP+ 2堆栈应用*中断处理程序保护断点,恢复断点子程序保护现场(寄存器)例:PUSH AXPUSH BXPOP BXPOP AX交换数据例:AX? BX方法一:MOV CX, AX MOV AX, BX MOV BX, CX方法二:PUSH AX PUSH BX POP AX POP BX 子程序中有关入口参数的传递3、交换指令8位/16位 XCHGR, M/R ; R? M/RXCHGR ; A
展开阅读全文