136-存储器与寄存器有什么不同?.ppt

上传人:京东小超市 文档编号:5791110 上传时间:2020-08-08 格式:PPT 页数:32 大小:347.50KB
返回 下载 相关 举报
136-存储器与寄存器有什么不同?.ppt_第1页
第1页 / 共32页
136-存储器与寄存器有什么不同?.ppt_第2页
第2页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《136-存储器与寄存器有什么不同?.ppt》由会员分享,可在线阅读,更多相关《136-存储器与寄存器有什么不同?.ppt(32页珍藏版)》请在三一文库上搜索。

1、第二章 1 存储器与寄存器有什么不同? 答:寄存器在CPU的内部,它的访问速度快,但容量小(8086微处理器只有14个16位寄存器)、成本高,它用名字来标识(如AX、BX等),没有地址;存储器在CPU的外部,它的访问速度比寄存器慢,容量大(20根地址线寻址1M内存空间)、成本低,存储单元用地址来标识,地址可用各种方式形成。 2 标志寄存器中的状态标志和控制标志有什么区别? 答:状态标志用来记录程序运行结果的状态信息,许多指令执行完毕后都相应地设置状态标志,它又称为条件码标志,包括进位标志、溢出标志、符号标志、零标志、奇偶标志等;控制标志用来控制处理器执行指令的方式,一般在程序中根据需要由指令设

2、置,如方向标志、中断标志、陷阱标志等。 3溢出标志OF和进位标志CF有什么不同? 答:当运算结果的最高有效位有向高位的进位(加法)或借位(减法)时,进位标志CF置1;当运算结果超出了机器所能表示的数的范围时,产生溢出,溢出标志OF置1。,溉奥哨育哦砂却糕私蕴绰索涝募访今管蔓烁围忍汉诫欲速歧桥玉酞蜘簇邪136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,4一个字在存储器中是如何存放的? 答:一个字在存储器中占用相邻的两个存储单元,低8位存入低地址,高8位存入高地址,字单元的地址用它的低地址来表示。 5为什么要将存储器分段管理? 答:对于16位字长的8086CPU而言,只能表示1

3、6位存储器地址(编号从0000HFFFFH);但8086CPU的地址线是20根,最大可寻址1MB的存储空间,其物理地址范围从00000HFFFFFH。为了用16位地址在1MB空间寻址,将1MB存储器空间分成许多逻辑段,这样每个存储单元就可以用“段地址:偏移地址“来表示其准确的物理位置。 段地址是逻辑段在主存中的起始位置,8086规定段地址必须是xxxx0H形式,省略低4位0,段地址就可用16位二进制数表示,通常保存在段寄存器中;偏移地址是存储单元距离段起始位置的偏移值,每个段最大64KB,所以偏移地址也可用16位二进制数表示。这样,物理地址就可通过段地址乘以16加上偏移地址得到,与札凸吧棚逸橙

4、勤试茸胸厚唾关秽症湿坑遇溉乾哥鸥渭牧琳椎窘纽巩叭凋136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,6程序中的指令与数据在存储器中是怎样存放的? 答:程序中的指令序列存放在代码段中,程序中使用的堆栈存放在堆栈段中,程序中的数据默认存放在数据段中,有时也放在附加段中。 第三章 1 什么是寻址方式? 答:在指令中,有时要寻找操作数的地址,有时要寻找转移地址(如转移指令、CALL指令等),这些寻找地址的方式就称为寻址方式。8086微处理器寻找操作数地址有七种方式:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等;寻找转移地址的方式有

5、段内寻址和段间寻址,它们又分为段内直接、段内间接、段间直接、段间间接寻址等。,语坐宝顽讲邹恳枷漾雏蛊鄙唯绊失辣桌意宏菏柔轨罐铡玩鸡奖韧杏果摈澈136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,2 MOV指令有什么特殊规定? 答:MOV指令是双操作数指令,两个操作数不能同为存储器寻址方式且不能同时为段寄存器,目的操作数不允许用立即寻址方式且不能是代码段段寄存器CS,立即数不能直接送段寄存器等。 3PUSH指令和POP指令有什么特点? 答:这是两个重要的对堆栈操作的指令,它们只能做字操作,它们所带的操作数不能是立即数,POP指令不允许使用CS寄存器。 4算术移位指令和逻辑移位指

6、令有什么不同? 答:算术移位指令一般用于带符号数的乘2或除2运算,正确的运算结果应保证符号位不变;逻辑移位指令用于无符号数的乘2或除2运算,参与移位的操作数的最高有效位并不代表符号位。,戊蹋售攻宿秸范藩丁缠温鸯推渝偶库躯鄙挣浆墓距薛蛔江肖询那嘱还拖那136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,5ADD、SUB、NEG等指令执行完毕后,CF和OF的值意味着什么? 答:CF=1意味着把参与运算的数看作无符号数时,运算出现了错误,同时它确实代表最高有效位有向高位的进位(加法)或借位(减法);OF=1意味着把参与运算的数看作带符号数时,运算出现了错误。也就是说,CF位可用来表

7、示无符号数的溢出,OF位可用来表示带符号数的溢出。 6乘法指令和除法指令有什么特殊规定? 答:在乘法指令中,隐含使用累加器AL或AX参与运算,两个8位数相乘得到16位乘积,存放在AX中;两个16位数相乘得到32位乘积,存放在DX,AX中。在除法指令中,隐含使用DX,AX或AX做被除数,16位数除以8位数,8位商在AL中,8位余数在AH中;32位数除以16位数,16位商在AX中,16位余数在DX中。 7逻辑运算指令的主要作用是什么? 答:逻辑运算指令对处理操作数的某些位很有用,例如可屏蔽某些位(将这些位置0),将某些位置1,将某些位变反,测试某些位等。,恨值风陡竖牢氨总尘壳昧沂鳞盲醛竣矽辣敞控子

8、眶停离哲度穿睁幸现猾芍136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,8 串处理指令有什么特殊规定? 答:在串处理指令中,源串默认在数据段中,但允许使用段跨越前缀来修改,源操作数用SI寻址;目的串只能在附加段中,目的操作数用DI寻址。SI与DI有自动增、减量的功能,可完成正向或反向、字节操作或字操作的串处理。 9条件转移指令和无条件转移指令有什么不同? 答:条件转移指令的位移量只允许8位,即目标地址应在本条转移指令的下一条指令地址的-128 +127个字节的范围之内,因此它只能实现段内转移;无条件转移指令则没有此限制,它能够实现段内和段间两种转移,段内转移可使用8位或16

9、位位移量。,破挺戊疲贞瘤蛀饲贯袋拯舆把局混简皂搅剂爆箔美剩诊衙截班勺摩卜窿同136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,第四章 1 指令和伪指令有什么区别? 答:指令是在程序运行期间由计算机来执行的,而伪指令(伪操作)是在汇编程序对源程序进行汇编时处理的操作,完成诸如数据定义、存储器分配、指示程序开始结束等功能。 2 汇编语言源程序中的变量和标号有哪些属性? 答:源程序中的变量和标号都有三种属性:段、偏移及类型。变量在除代码段以外的其他段中定义,段地址存放在段寄存器中,偏移地址存放在基址或变址寄存器中,变量的类型可以是BYTE(字节)、WORD(字)、DWORD(双字

10、)等;标号指示指令的地址,它的段地址总在CS中,偏移地址在IP中,标号的类型可以是NEAR(近)或FAR(远)。 3指令AND AL, OPR1 AND 0FFH中的两个AND有什么区别? 答:第一个AND是操作码,表明这是一条逻辑运算指令,完成逻辑与运算;第二个AND是一个按位操作的逻辑操作符,它只能用于数字表达式。,抡庄闪呆数噪谜坐朴往洛叶剁逊浑甩缆要标肝禾闸务锄钵术弘舒惕罪尿邱136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,第五章 1 在把二进制数以十六进制数的形式在屏幕上显示出来的程序中,关于显示字符的ASCII码是如何调整的? 答:在使用DOS功能调用(INT

11、21H)显示单个字符时,必须得到要显示字符的ASCII码。字符0到9的ASCII码为30H到39H,因此只要把0到9加上30H就可以了;但字符A到F的ASCII码为41H到46H,0AH到0FH除了加上30H之外,还要再加上7。 2 为什么说循环结构是分支结构的特例? 答:循环结构在满足循环条件时实行循环,这实际上是多次走同一个分支,当不满足循环条件时,就走另一个分支,因此循环结构是一种特殊的分支结构。 3 多重循环程序如何编写? 答:可以利用LOOP指令和转移指令。,火凯唆蛛脊恕橡陆属兜惦雄爽拦侠帜舀跳铭罕大渠催竹尖杠四托辩林免剥136-存储器与寄存器有什么不同?136-存储器与寄存器有什么

12、不同?,第六章 1 子程序调用和返回指令完成哪些操作? 答:子程序调用指令首先把子程序的返回地址(即调用程序中CALL指令的下一条指令的地址)存入堆栈,然后转移到子程序的入口地址去执行,它又分为段内调用和段间调用;返回指令的操作是返回地址出栈送IP寄存器(段内或段间)和CS寄存器(段间)。 2 将过程定义为FAR属性,可以段内调用吗? 答:不能。如果所定义的过程是FAR属性,那么对它的调用和返回一定都是FAR属性;如果所定义的过程是FAR属性,那么对它的调用和返回一定都是FAR属性。因此只需在定义时考虑它的属性,而CALL和RET的属性由汇编程序来确定。 3在用堆栈传参的子程序设计中,为什么常

13、用带常数的返回指令? 答:在用堆栈传参时,主程序中要把参数的地址压入堆栈,子程序中通过BP寄存器访问堆栈单元取出参数的地址,而不是用出栈的方法。因此为使返回到主程序后堆栈能恢复原始状态不变,要用带常数的返回指令调整SP的值。,唤点从袖叁锤疙模对蜘蠢讼敬渝拟饲易屉鸥烷蚁扳和欢谷砾枉寅容决嫂给136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,4在用堆栈传参的子程序设计中,为什么要PUSH BP? 答:这是因为子程序中要用到BP寄存器。在子程序中,为了取得从堆栈传递过来的参数,必须访问堆栈,这就要用到BP寄存器,而BX、SI、DI等寄存器都不能用来访问堆栈。 5堆栈段定义时,其变

14、量名所指的是堆栈中的哪个位置? 答:栈底。(P206) 6过程是否只有调用它的时候才被汇编? 答:不是。过程和其他指令一样,在汇编时就被汇编,只是调用时才被使用。,尖扣村闽胁港烬贵赞抹荤戍惕遏燥店花空赤敌韵嫡烁容劳坐黔稍笔粤期包136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,7宏、伪指令的汇编过程如何? 答:伪指令不是在程序运行期间由计算机执行的,而是在汇编程序汇编期间同汇编程序处理的操作,它们可以完成如处理器的选择、定义程序模式、定义数据、分配存储区、指不程序结束等功能。当源程序被汇编时,汇编程序将对每个宏调用作宏展开。宏展开就是用宏定义体取代源程序中的宏指令名,而且用

15、实参取代宏定义中的形参。 8有必要将主程序定义为过程吗?(如P339) 答:一般来说,将主程序定义为一个过程并定义为FAR属性,就可以把主程序看作DOS调用的一个子过程。 9P241的“stack segment at 500h”的“at 500h”什么意义? 答:“at 500h”用来指定堆栈段的段地址(P120)。,彩礁沁戏拧鹅全顾狄律旬矾琉泡侮战茂霉悦茬绥伦诛征诽福底钓共乡诞面136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,第七章 1编程时应如何选择使用子程序结构还是宏汇编结构? 答:使用子程序结构可提高编程效率,节省存储空间。但每次调用子程序,返回、保存及恢复寄存

16、器以及参数的传送等都要增加程序的额外开销。因此,子程序结构适合于子程序代码较长,传参较多,有紧缩存储空间要求的情况下使用。使用宏汇编的程序执行效率较高,但汇编后的目标代码占用存储空间较大。因此,宏汇编一般用于子功能代码较短,传参较少的程序中使用。其实,使用子程序结构还是使用宏汇编结构,并没有固定的标准,大多数情况下,取决于程序员的编程风格。 2什么是宏? 答:宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次调用它,调用时只需要用一个宏指令语句就可以了。,柴继三盆落桐僳汾在录泅鄂柏板凭扔恒墨奶即允粕靴观妆岩顺动松拢猪钒136-存储器与寄存器有什么不同?136-存储器与

17、寄存器有什么不同?,3宏指令是如何定义的? 答:定义宏指令称为宏定义,宏定义是用一组伪操作来实现的,其格式为: 宏指令名 MACRO 虚参1,虚参2, (宏定义体:一组有独立功能的程序代码) ENDM 4什么是宏调用?什么是宏展开? 答:在源程序中对宏指令的调用称为宏调用,但对宏指令必须先定义后调用。宏展开是用宏定义体取代源程序中的宏指令名,并且用实元取代宏定义中的哑元的汇编过程。,炒腰揣词几经戒阐酒团漏薛琶括昂公蛊桔父镍撑杆眩悬疚手踌恕鹃伶散沥136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,5在宏展开时,实参和虚参的个数不等,怎么办? 答:汇编程序不要求实参和虚参的个数

18、必须相等,当实参个数大于虚参个数时,多余的实参不予考虑;当实参个数小于虚参个数时,则多余的虚参作“空”处理。 6宏调用中的实参(实元)可以是表达式吗? 答:可以是表达式,还可以是常数、字符串、寄存器、存储单元名以及用寻址方式能找到的地址等,也可以是指令的操作码或操作码的一部分。应注意的是,宏展开后,即用实参取代虚参(又称哑元)后,所得到的汇编语句应该是有效的,否则汇编程序将会指示出错。在MASM6中,还可以用:REQ指定某个参数是必须有的。 7& 操作符及%操作符应如何使用? 答:& 操作符可以把前后两个符号合并形成操作码、操作数或是一个字符串。% 操作符把跟在它之后的表达式的值转换成当前基数

19、下的数,在宏展开期间,用这个数来取代哑元。,肮愈可瞳屿缉优寡扑桃揉笔炭菏嘘沪直林雕蛆驼撕觅待坯烦荐晾故功方猾136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,8.XALL、.LALL和.SALL有什么区别? 答:这3个伪操作是列表伪操作,用来控制汇编清单中宏展开的列出方式。一般在LST清单中,使用隐含的.XALL伪操作,它使不产生目标代码的语句在清单中不列出来。.LALL列出包括注释在内的所有宏展开;.SALL则不列出任何展开信息。 9LOCAL伪操作的作用是什么? 答:当宏定义体内的功能代码使用了标号,而在程序中要多次调用该宏定义,此时宏展开后会出现标号的多重定义,这是不

20、能允许的。为了解决这个问题,系统提供了LOCAL伪操作,其格式是:LOCAL 局部标号1,局部标号2,汇编程序对LOCAL伪操作之后的每一个局部标号,在展开时用?0000取代局部标号1,用?0001取代局部标号2,以此类推,这样在展开后的程序中的标号就是唯一的了。,鸥点辙俱谊膝族肢腹吁权违瞳解纫问褐头氯濒磐揭磁教矛吟琅氖抹诛监忱136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,10IRP与IRPC的区别是什么? 答:IRP与IRPC是不定重复伪操作,它们的不同之处在于自变量的取代方式。IRP的自变量表用尖括号括起来,每次重复用自变量表中的一项来取代重复块中的哑元。重复次数由

21、自变量表中的自变量个数来确定。IRPC的自变量表必须是字符串,重复次数由字符串中的字符个数确定,每次重复用字符串中的一个字符取代重复块中的哑元。 11使用条件伪操作的目的是什么? 答:汇编程序根据条件伪操作能把一个程序段包括在源程序中,或排除在源程序之外,也可以根据不同条件选择不同的程序段进入源程序,这为汇编语言编程提供了很大的便利。 12什么是宏库?宏库的扩展名是什么? 答:包含若干常用宏定义的文件称为宏库,宏库通常用.MAC或.INC作为扩展名。,傲仙般呻浮经投章误感损彬步团链乞俊拈撒陵搂伺蹦撕囤彩伦什荐句指舰136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,13下面的

22、语句是什么含义? if1 include macro.mac endif 答:INCLUDE语句说明该应用程序中要用到宏库MACRO.MAC中的宏定义,汇编程序将把MACRO.MAC中的所有宏定义都包含在应用程序中。而条件伪操作IF1语句可使INCLUDE只在汇编的第一遍扫视期间出现,这样宏库的拷贝将不在汇编清单中出现 第八章 1什么是I/O端口? CPU使用什么指令与外设进行数据交换? 答:CPU与I/O设备通过硬件接口或控制器相连接,这些接口或控制器都有数量不等的端口,这些端口有统一的地址编码,CPU通过这些端口使用输入输出指令IN、OUT与外设进行数据交换。,料顽贪务辽壁递燕忍癸惮快娇箩

23、配械提钟生掐业挨匹边翅葱靶泳躇榔抬笺136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,2CPU为什么不能用MOV指令进行I/O数据传输? 答:在80x86微机系统中,I/O端口编址在一个独立的地址空间中,它和存储器是完全分离的。因此,对于存储器的存取操作使用MOV指令,而与端口进行信息交换的操作使用专门的I/O指令,二者不能混淆。 3使用查询方式进行输入输出的优缺点是什么? 答:使用查询方式编程可直接在端口级上输入输出信息,数据的传送速度和吞吐量比较高,另外在控制多个设备的I/O时,可在程序中安排它们的优先级,最先查询的设备,其工作的优先级也最高。修改程序中的查询次序,实际

24、上也就修改了设备的优先级,这样以最简便的方法实现了对设备优先级的控制。查询方式的缺点主要是在查询过程中,要反复的查询等待,浪费了CPU原本可执行大量指令的时间,而且由询问转向相应的处理程序的时间较长,尤其在设备比较多的情况下。 4什么是中断? 答:计算机在执行程序过程中,遇到需要处理的事件时,暂停当前正在运行的程序,转去执行有关的服务程序,处理完后自动返回原程序,这个过程称为中断(interrupt)。中断在现代计算机系统中是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、多处理机系统、计算机网络和分布式计算机系统都要用到这种技术。,软犹思陛愿主绰杭魂锐冉复熊菱漂浑约梨吨祖

25、赏情批峰双戴滤纯揉师崖宠136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,5中断分为几类? 答:中断可分为内中断和外中断。内中断是由计算机内部原因引起的中断,内中断又称为软中断,它通常由三种情况引起: (1) 由中断指令INT引起; (2)由于CPU的某些错误而引起,如溢出中断、除法错中断等; (3) 为调试程序(DEBUG)设置的中断,如单步中断、断点中断;外中断指由外部事件引起的中断,又称为硬中断。 硬件中断主要有两种来源: (1) 非屏蔽中断(NMI),如电源故障中断、实时钟中断等。 (2)可屏蔽中断,一般是由于各种外部设备请求CPU提供服务所引起的中断。 6什么是中

26、断类型? 答:80x86中断系统能处理256种中断,每种中断都安排一个编号,称之为中断类型。256种中断类型号排列为000FFH。,直邦昭点蓄腑淌损龄笆泵剿藩滴憎占撅新彰媳着窜裹缺办拳睫拓颜绅哭萧136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,7中断向量表的作用是什么? 答:为了提高响应中断的速度,通常把所有中断处理程序的入口地址(或称为中断向量)汇集在中断向量表中,当CPU响应中断时,根据中断源的中断类型号,直接从中断向量表中得到相应的入口地址,并从该地址开始执行中断处理程序。 8中断向量表一般安排在存储器的什么位置? 答:存储器最低的1K字节,地址从00000 03F

27、FH存放中断向量。中断向量表中的256项中断向量对应256种中断类型,每项占用四个字节,其中两个字节存放中断处理程序的段地址(16位),另两个字节存放偏移地址(16位)。 9某外设能否得到CPU的中断服务取决于什么控制条件? 答:从外设发出中断请求到CPU响应中断,有两个控制条件是起决定性作用的: (1) 该外设的中断请求是否被屏蔽,这个条件由8259A的中断屏蔽寄存器(端口地址为21H)控制; (2) CPU是否允许响应中断,这由标志寄存器(FLAG)中的中断允许位IF控制。但CPU不能禁止非屏蔽中断,对于非屏蔽中断CPU总会响应。,遇误删鸳诊论恒复名毛茧咒创呐往峡鹊屠告裴栽感帆疆缴救夺仟证

28、稳醒烬136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,10什么是开中断和关中断?如何控制开中断和关中断? 答:允许CPU响应外设的中断请求叫做开中断,此时IF=1;不允许CPU响应外设的中断请求叫做关中断,此时IF=0。有两条指令能控制开、关中断:STI 开中断(IF=1)CLI 关中断(IF=0) 11CPU响应中断的过程是怎样的? 答:(1)取中断类型号N (2)寄存器(FLAG)内容入栈 (3)当前代码段寄存器(CS)内容入栈 (4)当前指令计数器(IP)内容入栈 (5)禁止硬件中断和单步中断(IF=0, TF=0) (6)从中断向量表中取4?N的字节内容送IP,取

29、4?N+2中的字节内容送CS (7)转中断处理程序,杯挨煮足漓歌鞘宁用苯敲而绍颈脂夷付娄醇锻鳞茁妙难年攀盲泪拽览捻谓136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,12为什么产生中断后,要清除IF和TF位? 答:在中断发生时,CPU自动清除了IF位和TF位,这样设计的目的是使CPU转入中断处理程序后,不允许再产生新的中断,包括单步执行。如果在执行中断处理程序的过程中,还允许外部的中断,可通过STI指令再把IF置为1。 13当多个中断源同时向CPU请求中断时,CPU应如何处理? 答:各种中断源事先安排有中断优先级,当多个中断源同时申请中断时,CPU先比较他们的优先级,,然后

30、从优先级高到优先级低的次序来依次处理各个中断源的中断请求。,灶坡资幼氛寅娟马答食巧影嘘玻语舟砚赁函钮愈棍匪汲蓉高蹲涛张糯框嗣136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,14中断程序的编写方法是什么? 答:在主程序中要为中断做如下准备工作: (1)设置中断向量(使用INT 21H的25H功能) (2)设置中断设备的屏蔽位(I/O端口21H) (3)开中断(STI) 中断处理程序的编写步骤: (1)保存工作寄存器的内容 (2)如允许中断嵌套,则开中断(STI) (3)中断处理功能 (4)关中断 (CLI) (5)送中断结束命令(EOI)给中断命令寄存器(I/O端口20H)

31、 (6)恢复工作寄存器内容 (7)返回被中断的程序(RET),嵌脆届劈假价伏琢麦澜冉鹿做腆壤盛后晋捷翼备驹华畸辣脱屡渭勿四尺军136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,15什么是中断嵌套?处理中断嵌套时应注意什么? 答:中断嵌套是指正在运行的中断处理程序,又被其它中断源中断的情况。一个正在执行的中断处理程序,在开中断(IF=1)的情况下,能被优先级高于它的中断源中断,但如果要被同级或低级的中断源中断,则必须发出EOI命令,清除正在执行的中断请求,才能响应同级或低级的中断。80X86没有规定中断嵌套的深度(中断程序又被中断的层次),但在实际使用时,多重的中断嵌套要受到

32、堆栈容量的限制,所以在编写中断程序时,一定要考虑有足够的堆栈单元来保存多次中断的断点及各寄存器的内容。 16什么情况下中断处理子程序需要结束中断(EOI)? 结束中断指令起什么作用? 答:在外中断处理程序之中或在结束之前,发出中断结束命令EOI能清除当前正在处理的中断请求,以便能够在该处理程序的过程中或结束之后,再响应同级或低级的中断。,栈揪嗓邦柏好主罪疏律钱企搐废瘴湍幽叁忘寄恩捏蹬金翼炭辐快臀汾延佑136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,17系统提供的INT 1CH的中断处理程序是怎样的?为什么? 答:系统提供的INT 1CH的中断处理程序中只有一条指令:IRE

33、T。实际上这是系统为用户设置的一个中断类型号,用户可以用自己设计的中断处理代码来代替原1CH程序。如果用户有某种定时周期性的工作需要完成,就可以利用系统定时器的中断间隔(约每秒中断18.2次),嵌套调用1CH的中断处理程序,并用计数的方法控制时间周期。如,需要10秒钟的周期,则将计数值设置为182。定时器中断程序每调用一次INT 1CH,计数值减1,当计数值为0时,说明已到10秒。 第九章 1BIOS中断调用的基本用途是什么?使用BIOS调用的好处是什么? 答:BIOS是系统提供的基本输入输出例行程序,它包括系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块。BIOS有两个

34、基本用途:一是给不同系列的微处理器提供兼容的I/O服务,使程序员在编程时不必考虑不同型号机器的具体差别。二是给程序员提供文件化的,直接对硬件进行操作的子功能,程序员可不必了解硬件操作的具体细节。所以利用BIOS功能编写程序简单方便,可读性好.,殷米件滇联亨舌玩塘森纹氟阻汗镶袍秉肮早膨剩营抒顶退孕枣嗡擞切腕早136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,2DOS功能调用的用途是什么?与BIOS中断调用在使用上有什么差别? 答:DOS是PC机上最重要的操作系统,它和BIOS一样包括有近百个设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。使用D

35、OS操作比使用相应功能的BIOS操作更简易,而且对硬件的依赖性更少些。 3BIOS和DOS中断调用的方法是什么? 答:BIOS功能与DOS功能都是通过软件中断调用的。在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,除此而外,通常还需在CPU寄存器中提供专门的调用参数。一般地说,调用DOS或BIOS功能时,有以下几个基本步骤: (1)把调用参数装入指定的寄存器中; (2)如需功能号,把它装入AH; (3)如需子功能号,把它装入AL; (4)按中断号调用DOS或BIOS中断; (5)检查返回参数是否正确。,戚蛇释漾需骆抹换纱目希探钢敲叮惦淡泞残抗塞水护遮菇乙咀衷绽漏酝详136-存

36、储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,4键盘上什么键能产生ASCII码?不能产生ASCII码的键如何识别? 答:键盘上的所有按键的识别采用行列扫描法,即根据对行线和列线的扫描结果来确定闭合键的位置,并通过键盘数据线将闭合键所对应的扫描码(8位)送往主机。其中字符数字键给计算机传送一个ASCII码字符,而扩展功能键产生一个动作,如按下Home键能把光标移到屏幕的左上角,End键使光标移到屏幕上文本的未尾。按动组合控制键能改变其它键所产生的字符码。 5什么是通码和断码?它们的标志是什么? 答:按下键时,产生的扫描码称为通码,放开键时产生的扫描码称为断码。其代码的最高位为0,表

37、示是通码,最高位为1,表示是断码。 6如何判断按动了组合控制键? 答:组合控制键的状态反映在键盘状态字节中,INT 16H的AH=2的功能可以把表示组合控制键的状态回送到AL寄存器。按动某键所对应的位为1,反之为0。,舌饶坪脯泄田阶氨牲瘩顿猎俘虫苯井饿内琳昌虫太耀噶蓟馒绝龋功氛吠承136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,7DOS键盘06功能是读写控制台,控制台是指什么? 答:控制台是指主机及其配置的基本输入输出设备,一般是显示器和键盘。INT 21H的06功能,当(DL)=0FFH时,输入键盘字符;当(DL)=00FEH时,请求输出设备工作。 8DOS功能AH=1

38、和AH=7、8都是从键盘输入一个字符,它们有什么不同? 答:INT 21H 功能07和08的输入操作与功能01H相似,不同的是输入字符不回显。使用功能7,输入字符不回显,也不进行Ctrl_C或Ctrl_Break的检查处理。08功能不回显字符,但与01H一样,支持Ctrl_C或Ctrl_Break的中断处理。 9程序如何获得功能键和数字组合键的字符码? 答:要接收功能键或数字组合键,程序必须进行两次DOS调用,第一次调用回送00,第二次调用回送所按键的扫描码。程序如下: MOV AH, 7 ; 第一次DOS键盘调用INT 21H CMP AL, 0 JE ISEC ; (AL)=0,则是功能键

39、或数字组合键 ISEC: MOV AH, 7 ; 第二次DOS键盘调用 INT 21H ; (AL) = 扫描码 ,又噬睬艇援吻涌帅湘黎焉细晃久鞠汹蚀讣玛祸排暗洞调粳鲜簿侍先底蹦倘136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,10使用21H 中断的功能A输入字符串时应注意些什么? 答:使用21H 中断的功能A输入字符串时,特别要注意缓冲区的定义方法。缓冲区的第一个字节保存最大字符数,这个最大字符数由用户给出。第二个字节是实际输入字符的个数,这个数据由功能A填入。在这两个字节之后,字符串就按字节存入缓冲区,最后一个字节是结束字符串的回车符0DH,因此整个缓冲区的字节空间应

40、定义为最大字符数(包括Return在内)加2。INT 21H的功能A把实际字符数(不包括Return)填入缓区的第二个字节,并保持DS : DX 指向缓冲区的第一个字节。所以,取输入的字符串应从指针DX+2开始。 11在文本方式下,显示屏上的字符是如何表示的? 答:对应显示屏幕上的每个字符,在存储器中由连续的两个字节表示,一个字节保存ASCII码,另一个字节保存字符的属性。 12什么是字符的属性? 答:说明字符显示特性的字节称为字符属性。对单色显示,字符属性定义了字符是否闪烁,是否加强亮度,是否反相显示等。对彩色显示,属性字节定义了显示字符(前景)和背景的颜色以及闪烁和亮度等特性。,蒋歪雌叁卵

41、杆雷敞绞锥搪屏喷膜摄野速摇绿悬碾籽车贝涧冠客听瞧德幼剧136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,13屏幕上的字符位置和显存地址的关系如何? 答:屏幕上某一字符位置和显存中的偏移地址的关系可由下列公式表示: 字符偏移地址=页偏址+(行号每行字符数)+列号)2 14使用INT 21H显示字符串功能要注意些什么? 答:使用INT 21H显示字符串,一定要在显示串之后加上定界符$,因为此功能是用$作为标记来计算串的长度的。另外控制码不能出现在字符串中。显示字符串时,如果希望光标能自动换行,那么可在字符串结束之前加上回车和换行的ASCII码。 15用显示字符串功能显示下面定义

42、的字符串有什么问题? (1) MESS DB DISPLAY THE STRING., CR, LF, $ (2) MESS DB DISPLAY THE STRING.$, 0DH, 0AH 答:(1))字符串中的回车符(CR)和换行符(LF)不能识别,必须在字符串中直接写出它们的ASCII码(用十六进制或十进制表示均可): MESS DB DISPLAY THE STRING., 13, 10, $ 另一种方法是用EQU定义出CR和LF的ASCII值,这时可在字符串中直接使用CR和LF。 (2)字符串显示后,光标不能移动到下一行开始,因为回车换行符在定界符$之后,而字符串显示功能把$作为显

43、示字符串的结束标记。,师享台若娶枉尽嚎探讨赂未吁困继橱练婴练母侣琢碗蓉殿勺谊磺恢枕嗽漂136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,16用打印机打印出一个字符串应使用什么功能调用? 答:打印机的I/O中断调用没有提供打印字符串的功能,要打印一个字符串可多次调用DOS或BIOS打印单字符的功能,字符串的长度作为循环打印字符的计数控制值。 17串行通信有哪两种方式? 答:串行通信有并行和串行两种方式。在并行数据传输方式中,8位或16位的数据同时进行发送或接收。在串行通信方式中,通信接口每次由CPU得到8位或16位的数据,然后一位位地串行传送。 18在串行通信方式中是如何识别

44、连续不断的数字信号呢? 答:计算机通信规定了数据的格式,对每个要传送的字符都要按规定的格式进行组帧,例如,一个组帧后的字符有1位起始位,8位字符码和2位终止位。传输由起始位开始,接着的字符从低位到高位顺序送出,最后2位终止位表示字符结束。在没有传输信号时,1(高电平)称为标记(Mark),0(低电平)称为间隔(space).,侦矛炊油刑传呵漏豁障行草治万尖砌巷柳枷脉毡锨拾刁达膨颧饺勿遁芒东136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,19计算机通信的数据格式是固定的吗? 答:不是,程序员可以通过DOS命令和BIOS功能对COM端口以及数据参数进行初始化。使用DOS的MO

45、DE命令进行初始化的格式为: MODE COM端口号(14): 波特率, 校验位, 数据字长, 终止位位数 例:MODE COM1,24,O,8,1 为COM1设置参数为:2400波特率,奇校验,8位字长及1位终止位 使用BIOS INT 14H的0功能可设置串信通信口的初始化参数, 例如: MOV AL,10100011B ; 2400波特,字长为8位,1位终止位,无奇偶校验 MOV DX,0 COM1 MOV AH,0 ; 初始化通信口功能INT 14H ; BIOS调用。,拥缴钟想舰戚洼阻津瓮躲讳茫端斤流斑乃雁灾辨内尼双衣稼贯詹遮争纠卵136-存储器与寄存器有什么不同?136-存储器与寄存器有什么不同?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1