北京邮电大学微机原理复习资料有特色非全面的总结整理_第1页
北京邮电大学微机原理复习资料有特色非全面的总结整理_第2页
北京邮电大学微机原理复习资料有特色非全面的总结整理_第3页
北京邮电大学微机原理复习资料有特色非全面的总结整理_第4页
北京邮电大学微机原理复习资料有特色非全面的总结整理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京邮电大学微机原理复习资料有特色非全面的总结整理by 1CPU读写存储器的简单过程是: 先由CPU给出要操作的存储单元地址,该地址信号通过地址总线送到存储器的地址译码器译码后,在256个单元中选中对应于该地址的存储单元; 然后CPU通过控制总线发出读或写的控制信号,对该单元读或写。 读出的内容通过数据总线送到CPU的数据寄存器中。要写入的内容则由CPU发出,经数据寄存器通过数据总线写入存储单元。2 3流水线操作方式CPU在执行一条指令的同时,就可以取出下一条或多条指令并将其送至指令流队列中排队;在执行完一条指令后便可立即执行下一条指令。从而减少了CPU为取指

2、而等待的时间,提高了CPU的利用率,加快了整体运行速度,并且降低了存储器存取速度的要求。4若所需的程序、堆栈、数据三者的总存储长度不超过64K,则可在程序开始时使CS、SS和DS三者相等。对于一个程序中要用的数据区超过64K,或要求从两个或多个不同区域存取操作数时,只要在取操作数前用指令给DS重新赋值即可。5方向标志DF ( Direction Flag ) 若用指令置DF1,则引起串操作指令为自动减量指令,即从高地址到低地址处理串;若使DF0,则串操作指令为自动增量指令。5A19/S6,A18/S5,A17/S4,A16/S3 (Address/Status)分时复用的地址状态线。S4 S3

3、 段 寄 存 器 0 0 ES 0 1 SS 1 0 CS(I/O、INT) 1 1 DS 作地址线用时,A19 A16与 AD15AD0一起构成访问存储器的20位物理地址。 当CPU访问I / O 端口时,A19A16保持为 “0”。作状态线用时,S6S3用来输出状态信息。如: S5用来表示中断标志状态线,当IF1时,S5置“1”。S6恒保持为“0”。 6BHE/S7 (Bus High Enable / Status) 总线高位有效信号。三态输出,低电平有效,用来表示当前高8位数据总线上的数据有效。读写存储器或 I / O端口以及中断响应时,BHE用来作选体信号,与最低位地址码A0配合,表

4、示当前总线使用情况。非数据传送期间,S7输出状态信息。这样在8086系统中访问存储器可读写一个字节(8位)的信息,也可读写一个字(16位)的信息。需增设总线高位有效信号BHE。BHE有效时,选定奇地址存储体,与A0配合作用,体内地址由A19A1确定。7字节读取 MOV AL ,3000H 字读取 MOV AX ,3000H从奇地址开始的数据字,需要两次访问存储器才能读出。为加快程序运行速度,希望访问存储器的字地址为偶地址,从偶地址开始的字称作“对准字”。8对比:/TEST测试信号:由外部输入,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试,若测试TEST无效,则

5、CPU处于踏步等待状态,直到TEST有效, CPU才继续执行下一条指令。 RESET复位信号:由外部输入,高电平有效,RESET信号至少要保持4个时钟周期,CPU接收到RESET信号后,停止进行操作,并将标志寄存器,段寄存器,指令指针IP和指令队列等复位到初始状态。 9ALE (Address Latch Enable) 地址锁存允许信号。向外部输出,高电平有效。在最小模式系统中用来作地址锁存器 8282 / 8283的片选信号。 10HOLD and HLDAHOLD总线请求信号。由外部输入,高电平有效,在最小模式系统中表示有其它共享总线的处理器向CPU请求使用总线;HLDA总线请求响应信号

6、。向外部输出,高电平有效。CPU一旦测试到有Hold请求时,就在当前总线周期结束时,使HLDA有效,表示响应这一总线请求,并立即让出总线使用权。 CPU中指令执行部件(EU)可继续工作到下一次要求使用总线为止,一直到Hold无效,CPU才将HLDA置成无效,并收回对总线的使用权,继续操作。 11BIU 总是在T1周期时将存储器的20位物理地址 ( 或16位 I/O端口地址 ) 送上总线,在T2T4周期期间通过总线进行数据传送。T1状态:8086把地址放在地址/数据总线上,ALE锁存地址,M/IO和DT/R指明存储器访问或I/O访问,确定数据传送方向。T2状态:发出RD、WR和DEN信号T3状态

7、:在T3的前沿采样READY信号,若为低电平,则在T3之后插入Tw(等价于T3)。T4状态:T4的前沿采样数据总线。然后,所有总线信号变为无效,为下一总线周期做准备。12 XCHG中CS和IP既不能作为OPRD1,也不能作为OPRD2。13查表转换指令:XLAT 转换表名 (即转换表首地址) 其功能是从转换表中查找出一个字节的内容,用其取代AL寄存器中的内容。转换表最长为256个字节,是由用户设计的。执行查表指令前,BX应指向转换表的起点。AL中的内容被用作查表时索引,查出表中偏移量等于AL中的二进制值的那个单元的内容,并用其取代AL中原来的内容。例如,数字09对应的格雷码为:18H,34H,

8、05H,06H,09H,0AH,0CH,11H,12H, 14H。将转换表列于表21中。如果从5号端口输入一位十进制数码,把它变成格雷码再输出到10号端口,则应执行以下几条指令:MOV BX,OFFSET TABLE;取TABLE的偏移地址送到BXIN AL,5XLAT ;AL得到表中某值(对应的格雷码)OUT 10,AL14LAHF ( Load AH with F1ags )SAHF ( Store AH into F1ags )操作与LAHF相反。PUSHF和POPF指令一般用于子程序和中断处理程序的首尾,分别起保存主程序标志和恢复主程序标志的作用。15ADC在形式上和功能上都和ADD指

9、令类似,只有一点区别,就是ADC指令被执行时将进位标志CF的值加在和中。ADC指令为实现多字节的加法运算提供了方便。SBB指令在形式上和功能上都和SUB指令类似,只是SBB指令在执行减法运算时,还要减去CF的值。SBB主要用在多字节减法运算中。16INC指令影响标志位AF、OF、PF、SF和ZF,但要特别注意,它不影响进位标志CF。一些缺乏经验的程序员常常以为执行INC指令时,由于不断加1而最终会产生进位,在这种想法指导下设计的程序往往进入死循环。17如果操作数的值为128(即16进制数80H)或者 32768(即16进制数8000H),那么执行求补指令后,结果没有变化,即送回的新的值仍为80

10、H或8000H,但溢出标志OF置1。NEG指令会影响标志位AF、CF、OF、PF、SF和ZF。此指令在执行时,总是使CF为1,只有当操作数为0时,才使CF为0。这是因为NEG指令在执行时,是用0去减某个操作数,自然要产生借位,除非给定的操作数为0,而CF正是表示借位,所以就出现上述情况。18比较指令 CMP 首先,如果所比较的两个操作数相等,那么标志位ZF1,所以,根据ZF就可以判断两数是否相等。 两个无符号数的比较 如果CF为0,则表示无借位,即被减数大于减数。如果CF为1,则表示有借位,即被减数小于减数。 两个有符号数的比较 如果得到溢出标志OF和符号标志SF的值相同 ( 均为1或者均为0

11、 ),则说明被减数比减数大; 如果得到溢出标志OF和符号标志SF的值不同 ( 一个为0,另一个为1 ),则说明被减数比减数小。因此,对于有符号数的比较,要根据OF和SF两者的关系来判断结果。19乘法运算指令MUL和IMUL在执行时,会影响标志位CF和OF,但AF、PF、SF和ZF是不确定和无意义的。MUL在执行时手算可以进行移位运算,而IMUL则必须根据补码-十进制数-补码的方式进行计算。例:执行以下指令MOV AL,0FBH-MOV BH,02H-IMUL BH可得到AX0FFF6H,即10,CF0,OF0。0FBH为5。若将IMUL换成MUL,则得到AX01F6H,即502,CFl,OFl

12、。 对MUL指令,当乘积的高半部分不为0,则CF1,OF1;否则CF0,OF0。对于IMUL指令,当乘积的高半部分是低半部分的扩展,即高半部分的每位与低半部分的最高位相同时,则CF0,OF0;否则CFl,OF1。可见,CF1,OF1表示高半部分包含有结果的有效数。20除法指令,有几点需要指出: 除法运算后,标志位AF、CF、OF、PF、SF和ZF都是不确定的,它们或为0,或为1,但都没有意义。 用IDIV指令时,如果是一个双字除以一个字,则商的范围为3276832767;如果是一个字除以一个字节,则商的范围为128127。如果超出了这个范围,会作为除数为0的情况来处理,产生0号中断。而不是按照

13、通常的想法使溢出标志OF置1。 在对有符号数进行除法运算时,可以得到商为3,余数为6。因为8086指令系统中规定余数的符号和被除数的符号相同。 除法运算时,要求用16位除以8位数,或者用32位数除以16位数,当被除数只有8位时,必须将此8位数据放在AL中,并对高8位AH进行扩展。同样,当被除数只有16位,而除数也为16位时,必须将16位被除数放在AX中,并对高16位DX进行扩展。如果在这些情况下,没有对AH或DX进行扩展,那就会得到错误的结果。 对于无符号数相除来说,AH和DX的扩展很简单,只要将这两个寄存器清0就行了。 对于有符号数相除来说,AH和DX的扩展就是低位字节或低位字的符号扩展,即

14、把AL中的最高位扩展到AH的8位中,或者把AX中的最高位扩展到DX的16位中。为此,8086指令系统提供了专用于对有符号数进行符号扩展的指令CBW和CWD。遇到两个字节相除时,要预先执行CBW指令,来产生一个双倍长度的被除数。否则不能正确执行除法操作。遇到两个字相除时,程序中要预先用CWD指令将AX中的被除数扩展成双字,即把AX中的符号扩展到DX中。21NOT对标志位没有影响。AND、OR、XOR后标志CF和OF复位,而标志SF、PF、ZF反映操作结果的特征。22逻辑移位指令在执行时,实际上是把操作数看成无符号数来进行移位,右移时,最高位添0;算术移位指令在执行时,则将操作数看成有符号数来进行

15、移位,右移时保持最高位的值不变,这里的最高位就是符号位。SAR和SHR的功能不同。SAR指令在执行时最高位保持不变,因为算术移位指令将最高位看成符号位,而SHR指令在执行时最高位补0。SHL和SAL这两条指令的功能完全一样,每移一次,最低位补0,最高位进入CF。在左移位数为1的情况下,移位后,如果最高位和CF不同,则溢出标志OF置l,这样,对有符号数来说,可以由此判断移位后的符号和移位前的符号位不同;反过来,如果移位后的最高位和CF相同,则OF为0,这表示移位前后符号位没有变。如果左移或右移多于1位,那么必须用CL寄存器预先指定所移的位数。移位指令常用来替代乘除法用。左移一位相当于乘2,右移一

16、位相当于除2。移位指令在执行时,都会影响标志位CF、OF、PF、SF和ZF。23循环移位指令只影响CF和OF。ROL和RCL指令在执行一次左移后,如果操作数的最高位与CF不等,则OF置1。对有符号数来说,OF为1,就表明循环移位后符号改变了。ROR和RCR指令在执行一次右移后,如果操作数的最高位和次高位不等,则OF置1,表明移位后的数的符号改变了。因此根据OF1可以断定数的符号发生了变化。24五条串操作指令的共同特点: 通过加重复前缀来实现串操作。 可以对字节串进行操作,也可以对字串进行操作。 所有的串操作指令都用寄存器SI对源操作数进行间接寻址,并且假定是在DS段中;此外,所有的串操作指令都

17、用寄存器DI为目的操作数进行间接寻址,并且假定是在ES段中。串操作指令是唯一的一组源操作数和目的操作数都在存储单元的指令。 串操作时,地址的修改往往与方向标志DF有关,当DF1时,SI和DI作自动减量修改,当DF0时,SI和DI作自动增量修改。25JMP DWORD PTR SI执行后,程序转移到以SI,SI+1两单元内容作为IP,SI+2和SI+3两单元内容作为CS的地方。CALL DWORD PTR SI ;段间间接调用,CS在SI2指向的字单元中,IP在SI指向的字单元中。26RET n。n 可以是00FFFFH中的任一个偶数。这条指令表示从栈顶弹出返回地址以后,再使SP值加上 n。其大

18、小一般是调用子程序前压入堆栈的参数所占字节数,这些参数供子程序用。这条指令可以在返回的同时释放这些单元。28空操作指令 NOP。NOP指令使CPU不做任何工作,它不影响任何标志。只是每执行一条NOP指令,耗费3个时钟周期的时间,常用来作延时或取消部分指令。它可以使程序加长或执行速度减慢,还可以方便程序的调试工作。29ASSUME语句给出了段名与段寄存器的对应关系,但并没有真正给段寄存器赋值。32表示汇编程序的汇编地址计数器的当前值。34关系运算符比较两个操作数并产生一个逻辑值。如果关系成立,则结果为真 ( 0FFFFH );否则为假( 0000H )。由于关系运算符只能产生两个值,因此很少单独

19、使用。一般都同其他操作结合以构成一个判断表达式。关系运算符有:EQ 等于NE 不等LT 小于GT 大于LE 小于等于GE 大于等于35SEG和OFFSET运算符分别返回一个变量或标号的段地址和偏移地址。MOV AX,SEG TABLE ;把TABLE的段地址送AXMOV BX,OFFSET TABLE ;把TABLE的偏移地址送BX,等价于LEA BX TABLE36TYPE运算符用于返回变量和标号的类型。对于字节变量返回1,对于字变量返回2,对于双字变量返回4;对于NEAR标号返回值1 (0FFFFH),对于FAR标号返回值2 ( 0FFFEH )。37LENGTH和SIZE运算符只对用DU

20、P定义的变量有意义。LENGTH返回的是分配给该变量的元素的个数,而SIZE返回的是分配给变量的字节数,或者说它返回的是变量的长度与其类型之积。38HIGH和LOW运算符分别返回一个16位表达式的高位字节和低位字节39 PTR运算符用于暂时改变变量或标号的原有属性。PTR的一般格式是: 新属性 PTR 表达式 例如F1是DW定义的字变量,F2是DB定义的字节变量,若要取F1的低字节,或者要将F2开始的两个字节送BX,则可以: F1 DW 1234H F2 DB 23H,56H,18H MOV AL,BYTE PTR F1 ;AL34H MOV BX,WORD PTR F2 ;BX5623H传送

21、指令的源操作数和目的操作数的位数必须一致。当不一致时,可以用PTR运算符暂改变一下变量的属性,使两个操作数的类型一致。44LOCAL伪操作只能用在宏定义体内,而且必须是MACRO伪操后的第一个语句。468253的接口方法一个8253占用4个地址,由A1A0的取值来区分,00、01、10分别寻址0号、1号、2号3个计数器,11寻址控制寄存器,4个端口的具体地址是由CS和A1A0共同决定。8253的RD、WR分别接总线的IOR和IOW信号。设地址为340343H接口电路如图所示。478255A初始化问题描述:要求A口以方式0输出,B口以方式0输入,C口高4位输入,低4位输出代码:MOV AL,8A

22、HMOV DX,323H OUT DX,AL48在8088/8086系统中8259A中断响应过程如下: 1)当有一条或若干条中断请求线(IR0IR7)变高时,则使中断请求寄存器IRR的相应位置位。 2)若中断请求线中至少有一条的中断申请是允许的,即未被屏蔽的,则8259A由INT脚向CPU送出中断请求信号。 3)若CPU处于开中断状态(IF1),则在当前指令执行完后,发出INTA中断响应信号。 4)8259A接收到第一个INTA信号,把允许中断的最高优先级请求位置入ISR,并清除IRR中相应位。 5)在第二个INTA期间,8259A发出中断类型号。如果是自动结束中断方式,INTA脉冲后沿复位I

23、SR的相应位。在其他方式中,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。 若8259A为级连方式的主从结构,并且某从片8259A的中断请求优先级最高,则在第一个INTA脉冲结束时,主8259A把这个从设备标志ID送到级连线上。各个从8259A把这个标志与自己级连缓冲器中保存的标志相比较,在第二个INTA期间,被选中的(两标志相等)从8259A的中断类型号送到数据总线上。 6)CPU接收到中断类型号,将它乘以4,就可以从中断矢量表中取出中断服务程序入口地址,转至中断服务程序。498259A优先级的方式 1)全嵌套方式 若主片初始化ICW4中没有设置特殊全嵌套方式,则就默认为全嵌套方

24、式。该方式有固定的优先权顺序,0级(IR0)优先权最高,7级(IR7)优先权最低。 当一个中断被响应,中断类型码被放上数据总线,ISR中对应位被置1。然后进入中断服务程序。一般情况下(除自动结束中断方式外),在CPU发出中断结束命令(EOI)前,该对应位一直保持为1。 这样可为中断优先级裁决器提供裁决依据。新收到的中断请求的优先级若比正在处理的中断的优先级高,则实行中断嵌套,即打断正在处理的中断,响应新的较高级的中断。2)优先级自动循环方式 在某些场合,系统内部存在着相同优先权的中断设备,可以采用优先级自动循环方式。在该方式下,优先级队列是变化的,一个设备得到中断服务后,它的优先级自动降为最低

25、。 例如初始优先级队列为IR0、IR1、IR7,如果这时IR4有请求,响应IR4后优先级队列为:IR5、IR6、IR7、IR0、 、IR4。 OCW2的R SL EOI100时设置为该方式。当R SL EOI000时,结束优先级自动循环方式。当R SL EOI101,使当前中断处理程序对应的ISn位被清除,并使系统仍按优先级循环方式工作,优先级次序左移了一位。 例如当前最高级为IR5,新的优先级次序为IR6、IR7、IR0、 、IR5。3)优先级特殊循环方式 优先级特殊循环方式与优先级自动循环方式只有一点不同。在优先级特殊循环方式中,一开始的最低优先级是编程确定,从而最高优先级也由此而定。例如

26、若IR4为最低优先级,则IR5为最高优先级,其次是IR6、IR7、IR0、IR1、IR4。优先级自动循环方式的最初最低级是IR7。 当OCW2中的R SL EOI110时,8259A会按照L2L0的值确定优先权最低级。当R SL EOI111时,则8259A使当前中断对应的ISn位清除,并使优先权最低级为L2L0指定的值。例如当前最高级为IR5,若写入OCW2B则使IS2清除(IR2以前的优先级比IR5高,用R SL EOI110 设置后,当前最高级为IR5 ),优先级次序改为IR3、IR4、 、IR7、IR0、IR1、IR2。 4)特殊全嵌套方式 特殊全嵌套方式和全嵌套方式只有一点不同,就是

27、在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,那么也会给予响应,从而实现一种对同级中断请求的特殊嵌套。而在全嵌套方式中,只有当更高级的中断请求来到时,才会进行嵌套;当同级中断请求来到时,则不会予以响应。 特殊全嵌套方式一般用在8259A级连的系统中。这种情况下,通过编程让主片工作在特殊全嵌套方式,而从片仍处于其他优先级方式。当来自某一从片的中断请求正在处理时,一方面和普通全嵌套方式一样,对来自优先级较高的主片其他引脚上的中断请求进行开放;另一方面,对来自同一从片的较高优先级请求也会开放。对后者,在主片引脚上反映出来是与当前正在处理的中断请求处于同一级的,但在从片内部看,新来的中

28、断请求一定比正在处理的优先级别高。 在使用单片8259A的系统中,当外部中断请求不太频繁时,用特殊全嵌套方式与全嵌套工作方式完全一样。但在中断请求频繁时,可能会造成不必要的同级中断的多重嵌套,从而引起混乱。 在多片系统中,主片把从片看作一级,尽管从片内部可以判断输入该片的各中断请求的优先级,但要让系统确认,则必须使主片工作在特殊全嵌套方式。否则主片无法识别。 特殊全嵌套方式由ICW4的D4位SFNM1设定,一般用在级连系统的主8259A芯片。508259A的特殊屏蔽方式当CPU处理某级中断时,要求仅对本级中断进行屏蔽而允许优先级比它高或低的中断进入系统,被称作特殊屏蔽方式。对8259A进行初始

29、化时,可利用OCW3的ESMM位和SMM位的置位来使8259A进入这种特殊屏蔽方式。 例如:若正在执行IR3的中断服务程序,希望进入特殊屏蔽方式时,只需在STI指令后,使用OCW1将IMR寄存器的第3位置“1”,并将控制寄存器的SMM位置“1”,标志8259A已进入特殊屏蔽方式。此后,除IR3之外,其它任何级的中断均可进入,待IR3的中断服务程序结束时,应将IMR寄存器的第3位复位,并将SMM位复位,标志退出特殊屏蔽方式,然后利用特殊EOI方式,由8259A将ISR寄存器的第3位清“0”。518259A的中断结束 8259A中的中断结束用复位正在服务的位(IS)来表示。有两种复位方法: 一种是

30、在初始化命令字ICW4中设置自动中断结束方式AEOI,这时8259A在中断响应周期的最后一个INTA脉冲下降沿自动完成对应的IS位复位。 另一种是在中断服务程序结束时返回主程序以前,对8259A发送一条中断结束命令EOI来完成IS位的复位。 若用级连方式,通常需要两个EOI命令,分别给主片和对应的从片8259A。 EOI命令有两种形式:特殊的中断结束命令SEOI和一般的中断结束命令EOI。 当8259A以全嵌套方式工作时,最高优先权的IS位是刚得到响应和服务的中断级别。因此8259A接收EOI命令后,即自动将被置位的最高优先级的IS位复位。这时的中断结束命令用一般的中断结束命令EOI。EOI命

31、令用OCW2中的EOI1,SL0和R0来实现。 但是,当8259A在一种扰乱的全嵌套结构方式下工作时,它可能无法确定刚才所响应的中断级别(例如在特殊屏蔽方式中)。此时必须送出特殊的中断结束命令SEOI。在SEOI命令中,包含了指定要复位的IS位的级别部分。SEOI命令用OCW2中的EOI1,SL1和R0来发出。而命令中的L20则用来指定被复位的IS位的级别。 自动中断结束方式用ICW4中的AEOI位来设置。在这种方式下,每当中断响应的最后一个INTA脉冲后沿到达时,8259A自动执行EOI操作,将对应的IS位清除。 AEOI方式只有在不要求多级中断嵌套结构,且下一次中断申请肯定在本次中断服务结

32、束后发生时,才能够使用。指令类型助记符对标志寄存器的影响备注ZFCFPFSFOFAFDFIFTF数据传送类通用MOV不影响标志位交换XCHG堆栈操作PUSHPOP地址传送LEALDSLES累加器专用INOUTXALT标志寄存器LAHFSAHF标志寄存器低八位的内容由AH的值决定CF,AF,ZF,SF,PF的值会被影响PUSHF不影响标志位POPF标志寄存器的内容由装入的具体值决定可能影响所有标志位算术运算类加法指令ADDADCINCINC指令不影响CFAAA?表示不确定或者未定义DAA?减法指令SUBSBBDECDEC指令不影响CFAAS?DAS?DAA指令不影响OF乘法指令MUL?IMUL?

33、AAM?除法指令DIV?此指令可能会产生中断,故影响IF,TFIDIV?同上AAD?符号位扩展CBW不影响标志位CWD不影响标志位比较指令CMP由计算结果确定标志位的值不会影响到DF,IF,TF逻辑运算类单操作数逻辑指令求反NOT不影响标志位移位SAL见备注?OF标志位只在移位次数是1时有效,AF未定义SHL?SAR?SHR?循环移位ROL?循环移位指令影响OF和CF,AF未定义ROR?RCL?RCR?指令类型助记符对标志寄存器的影响备注ZFCFPFSFOFAFDFIFTF双操作数与AND置0置0或OR置0置0异或XOR置0置0检测TSET置0置0字符串操作传送MOVS不影响标志位比较CMPS

34、由计算结果确定标志位的值不会影响DF,IF,TF搜索SCAS由计算结果确定标志位的值不会影响DF,IF,TF装入LODS不影响标志位填充STOS不影响标志位前缀REP不影响标志位程序控制类无条件JMP不影响标志位条件转移指令单个标志位JS/JNSSF=1/0,则转移到目的地址JZ/ JNZZF=1/0,则转移到目的地址JP/JNPPF=1/0,则转移到目的地址JB/JNBCF=1/0,则转移到目的地址JO/JNOOF=1/0,则转移到目的地址若干标志位的逻辑组合JA两个无符号数比较,ABJBE两个无符号数比较,A BJGE两个带符号数比较,A=BJL两个带符号数比较,ABJLE两个带符号数比较

35、,A =B循环控制LOOP不影响标志位LOOPELOOPNEJCXZ中断控制INT不影响标志位INTOIRET影响所有标志位标志位到恢复中断以前的状态CPU控制指令标志位操作CLC此指令置CF=0CMC此指令CF取反STC此指令置CF=1CLD此指令置DF=0STD此指令置DF=1CLI此指令置IF=0STI此指令置IF=1空操作NOP不影响标志位暂停HLT等待WAIT交权ESC总线锁定前缀LOCKCF(Carry Flag):进位标志。当指令执行的结果(8位或16位)在最高位上产生了一个进位或借位时,CF =1。AF(Auxiliary Carry Flag):辅助进位标志。当一个8位数(或

36、16位数)的低四位向高四位(即b3向b4)有进位或借位时,AF1。常用于十进制算术运算指令。OF(Overflow Flag): 溢出标志。带符号数的运算结果超出了8位或16位符号数所能表示的范围时,OF1。ZF(Zero Flag): 零标志。当运算结果为全零时,ZF=1。SF(Sign Flag): 符号标志。当运算结果为正数,即结果的最高位为0时,SF=1。PF(Parity Flag):奇偶标志。当算术逻辑运算的结果中1的个数为偶数时,PF1,为奇数时,PF=0。DF(Direction Flag):方向标志。用于控制数据串操作指令的步进方向,当DF=1时,表示从高地址向低地址以递减的

37、顺序对数据串中的数据进行处理。IF(Interrupt-enable Flag):中断允许标志。当IF=1时,CPU可以响应外部可屏蔽中断请求。该标志可以用指令设置为1或0。TF(Trap Flag):陷阱标志。当TF=1时,CPU进入单步工作方式,每执行完一条指令就自动产生一个内部中断,以便进行程序调试。当TF0时,正常执行程序。53存储器设计存储器地址: FC000FC7FFH FC800FCFFFH FF800FFFFFH54存储器总结:55指令大总结:56中断总结57简述在最小工作模式下,8086如何响应一个总线请求?答:外部总线主控模块经HOLD引线向8086发出总线请求信号;808

38、6在每个时钟周期的上升沿采样HOLD引线;若发现HOLD=1则在当前总线周期结束时(T4结束)发出总线请求的响应信号HLDA;8086使地址、数据及控制总线进入高阻状态,让出总线控制权,完成响应过程。58指令的错误:MOVAX,OFFSET SI- OFFSET只用于简单变量,应去掉59变量DATAX和DATAY定义如下: DATAXDW 0148H DW 2316H DATAYDW 0237H DW 4052H按下述要求写出指令序列:DATAX和DATAY中的两个字数据相加, 和存放在DATAY和DATAY+2中。DATAX和DATAY中的两个双字数据相加, 和存放在DATAY开始的字单元中

39、。DATAX和DATAY两个字数据相乘(用MUL)。DATAX和DATAY两个双字数据相乘(用MUL)。DATAX除以23(用DIV)。DATAX双字除以字DATAY(用DIV)。答案:MOVAX, DATAXADDAX, DATAYMOVBX, DATAX+2ADDBX, DATAY+2MOVDATAY, AXMOVDATAY+2, BX(2)MOVAX, DATAXADDDATAY, AXMOVAX, DATAX+2ADCDATAY+2, AX(3)MOVAX, DATAXMULDATAYMOVDATAY,AXMOVDATAY+2,DX(4)MOVAX,WORD PTR DATAXMOVB

40、X,WORD PTR DATAYMULBXMOVRESULT,AXMOVRESULT+2,DXMOVAX,WORD PTR DATAXMOVAX,WORD PTR DATAY+2MULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAYMULBXADDRESULT+2,AXADCRESULT+4,DXMOVAX,WORD PTR DATAX+2MOVBX,WORD PTR DATAY+2MULBXADDRESULT+4,AXADCRESULT+6,DX(5)MOVAX, DATAXMOVBL, 23DI

41、VBLMOVBL,AHMOVAH, 0MOVDATAY, AX;存放商MOVAL,BLMOVDATAY+2, AX;存放余数(6)MOVAX, DATAXMOVDX, DATAX+2DIVDATAY MOVDATAY, AXMOVDATAY+2, DX试分析下面的程序段完成什么操作?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL答案:将DX: AX中的双字左移4位(乘16)编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。答案:LEASI, OLDSLEADI

42、, NEWSMOVCX, 5CLDREPZCMPSBJNZNEW_LESS有两个3位的ASCII数串ASC1和ASC2定义如下:ASC1DB578ASC2DB694ASC3DB0000请编写程序计算ASC3ASC1+ASC2。答案:CLCMOVCX, 3MOVBX, 2BACK:MOVAL, ASC1BXADCAL, ASC2BXAAAORASC3BX+1, ALDECBXLOOPBACKRCLCX, 1ORASC3BX, CL10. 编写一个程序,接收从键盘输入的10个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT指令变换)存入内存缓冲区BUFFER。加密表为;输入数字:

43、 0,1,2,3,4,5,6,7,8,9密码数字: 7,5,9,1,3,6,8,0,2,4答案:scodedb7,5,9,1,3,6,8,0,2,4bufferdb10 dup(?); movsi,0movcx,10leabx,scodeinput:movah,01int21hcmpal,0ahjzexitandal,0fhxlatmovbuffersi,alincsiloopinputexit:ret比较中断与DMA两种传输方式的特点。答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控

44、制之下。直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。DMA控制器应具有那些功能?答:DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数

45、据传输过程。8237A只有8位数据线,为什么能完成16位数据的DMA传送?答:I/O与存储器间在进行DMA传送过程中,数据是通过系统的数据总线传送的,不经过8237A的数据总线,系统数据总线是具有16位数据的传输能力的。8237A的地址线为什么是双向的?答:8237A的A0A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。当8237A取得总线控制权进行DMA传送时,A0A3输出低4位地址信号供存储器寻址对应单元用,A0A3必需是双向的。说明8237A单字节DMA传送数据的全过程。答:8237A取得总线控制权以后进行单字节

46、的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃。若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。8237A单字节DMA传送与数据块DMA传送有什么不同?答:单字节传送方式下,8237A每传送完一个字节数据就释放总线,传送下一字节时再请求总线的控制权。块传送方式下8237A必须把整个数据块传送完才释放总线。8237A什么时候作为主模块工作,什么时候作为从模块工作?在这两种工作模式下,各控制信号处于什么状态,试作说明。答:8237A取得总线控制权后,开始进行DMA传送过程,此时8237A作为主模块工作。8237A在被处理

47、器编程或读取工作状态时,处于从模块工作状态。8237A处于从模块时,若CS#=0、HLDA=0说明它正被编程或读取状态,IOR#与IOW#为输入,A0A3为输入。8237A处于主模块时,输出地址信号A0A15 (低8位经A0A7输出,高8位经DB0DB7输出)。8237A还要输出IOR#、IOW#、MEMR#、MEMW#、AEN、ADSTB等有效信号供DMA传送过程使用。8255A的3个端口在使用上有什么不同?答:8255A的A端口,作为数据的输入、输出端口使用时都具有锁存功能。B端口和C端口当作为数据的输出端口使用时具有锁存功能,而作为输入端口使用时不带有锁存功能。同步传输方式和异步传输方式

48、的特点各是什么?答:同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一位作偶校验,2个停止位。若每秒钟发送100个字符,它的波特率和位周期是多少?答:每个字符需要的发送位数是12位(数据位8位,校验位1位,停止位2位,起始位1位)。每秒发送100个字符共1200位。因此波特率为1200波特,位周期= 833s。 什么叫D/A转换器的分辨率?答:D/A转换器的分辨率指它所能分辨的最小输出电压与最大输出电压的比值。通常用D/A转换器输入数字量的位数来表示。扩充总线的作用是什么?它与系统总线的关系是什么?答:扩充总线是将许多I/O接口连接在一起,集中起来经桥接电路与系统总线相连,减轻系统总线的负载,提高系统性能。系统总线与扩充总线的之间有专门的连接电路,它们各自工作在不同的频宽下,可适应不同工作速度的模块的需要。为什么要引入局部总线?它的特点是什么?答:早期的扩充总线(ISA总线)工作频率低,不能满足象图形、视频、网络接口等高数据传输率I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论