版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题11-1.解释下列名词或术语:机器语言:由二进制代码构成指令及编程的语法规则.汇编语言:汇编指令、伪指令及编程的语法规则统称汇编语言。汇编程序:将汇编语言源程序翻译成机器语言程序的程序。目的程序:源程序通过汇编以后生成的机器语言程序。汇编语言源程序:为解决某个问题,用汇编语言编写的程序。连接程序:将目的程序转换成可执行文件的程序。1-2.说明二进制位(bit),字节(Byte),字(word),双字(Doubleword)的含义及相互之间的关系.二进制位:表示信息的最小单位,只有“0”或“1”两个取值。常用“b”表示。字节:由8个二进制位组成,占内存一个单元地址,常用“B”表示。字:由两个字节组成,占内存两个单元地址,一般低字节占低地址,高字节占高地址。常用“W”表示。双字:由两个字,即4个字节组成,一般低字占低地址,高字占高地址。常用“DW”表示。1-3.把下列二进制数转换成十进制数:(1)1110.01(2)101111.101(3)11100010(4)1011010(1)14.25D(2)47.625D(3)226D(4)90D1-4把下列十进制数转换成二进制数和十六进制数:(1)92.5(2)127.625(3)131.375(4)206(1)1011100.1B;5C.8H(2)1111111.101B;7F.AH(3)10000011.011B;83.6H(4)11001110B;0CEH1-5把下列二进制数转换成十六进制数:(1)100001011.01011=10B.58H(2)11111011001.01=7D9.4H(3)110001101.1=18D.8H(4)101000001001.011=0A09.6H1-6把下列十六进制数转换成二进制数:(1)2F5(2)80E(3)4AB(4)7F01(1)1011110101B(2)100000001110B(3)10010101011B(4)111111100000001B1-7完成下列二进制数的加减运算:(1)10101010+01011100(2)10110011-11010101(3)11101110+01000100(4)11100101-10011011(1)00000110B(2)11011110B(3)00110010B(4)01001010B1-8完成下列十六进制数的加减运算:(1)3670+6DF6(2)OFEA9-0516(3)1A5F+8808(4)3A5D-4051(1)0A466H(2)0F993H(3)0A267H(4)0FA0CH1-9当字长为8位时,写出下列各数的原码和补码,并用十六进制表示:(1)18(2)-18(3)63(4)-63(1)(18)原码=(18)补码=12H(2)(-18)原码=92H(-18)补码=0EEH(3)(63)原码=(63)补码=3FH(4)(-63)原码=0BFH(-63)补码=0C1H1-10用补码运算完成下列算式,并指出运算结果是否产生溢出:(1)65H+71H(2)-29H-F5H(3)25H+31H(4)54H-2FH(1)运算结果:0D6H,发生正溢出,结果不正确。(2)运算结果:0E2H,未发生溢出,结果正确。(3)运算结果:56H,未发生溢出,结果正确。(4)运算结果:25H,未发生溢出,结果正确。1-11把下列各组二进制数分别进行”与”运算,”或”运算,和”异或”运算:(1)0DAH和99H(2)0DFH和5AH(3)OFFH和95H(4)25H和38H(1)98H;0DBH;23H(2)50H;0FAH;0AAH(3)95H;FFH;6AH;(4)20H;3DH;1DH习题22-18086/8088微处理器中包括哪3组寄存器?试分别说明这些寄存器的功能。答:8086/8088微处理器中包括通用寄存器、控制寄存器<又称特殊功能寄存器>和段寄存器三组寄存器。其中通用寄存器包括AX,BX,CX和DX4个数据寄存器,它们还可以分解成2个8位寄存器。通用寄存器还包括BP、SP、SI和DI4个寄存器,它们只能用作16位寄存器,它们常用作地址指针和变址寄存器,也可作通用寄存器使用。控制寄存器包括指令指针IP和程序状态字寄存器PSW,其中IP用于存放在代码段即将取出的下一条指令的偏移地址,用于取指令操作所使用的寄存器,其中PSW用于存放状态标志和控制标志。段寄存器包括CS、DS、ES和SS4个段寄存器,它们分别称作代码段、数据段、附加段和堆栈段寄存器,它们分别用于存放代码段、数据段、附加段和堆栈段的段基址,实现把内存分段。2-28086/8088CPU在功能结构上分为哪两个大的功能部件?试述这两个部件的作用是什么?答:8086/8088CPU内部分为BIU<总线接口单元>和EU<指令执行单元>两大功能部件。BIU的功能是:完成CPU的全部总线操作,即按照EU提供的偏移地址到内存取操作数,按照IP提供的偏移地址到内存代码段取指令等。EU的功能:完成指令操作码部分所规定的操作,如做加法、减法或传送等操作。程序状态字寄存器PSW中有哪两种标志位?这些标志位的含义是什么?答:PSW中有条件标志和控制标志两种标志。其中条件标志包括:1)CF:进/借为标志2)2F:零标志3)SF:符号标志4)OF:溢出标志5)AF:辅助进/借位标志6)PF:奇偶标志;其中控制标志包括:1)DF:方向控制标志2)IF:可屏蔽中断允许标志3)TF:单步中断允许标志2-4什么是逻辑地址和物理地址?已知逻辑地址,如何计算物理地址?答:编程时使用的地址称逻辑地址,它包括段地址和偏移地址两部分。实际访问内存时使用的地址称物理地址。物理地址和逻辑地址的关系如下:物理地址=段基址*10H+偏移地址(20位)(16位)(16位)2-5段地址和偏移地址如下所示,请分别计算它们的物理地址:(1)2010H:0102H(2)5000H:2100H(3)3217H:0E0FH(4)10E0H:0002H答案:(1)20202H(2)52100H(3)32F7FH(4)10E02H2-68086/8088CPU数据总线16位,地址总线20位,其寻址空间有多大?试用十六进制数表示该CPU的寻址范围。答:其寻址空间为1MB,其寻址范围为:00000H----FFFFFH2-7什么叫寻址方式?8086/8088系统中关于操作数的寻址方式有哪几种?答:按照指令操作数字段的代码寻找操作数的方法称寻址方式。8086/8088系统中关于操作数的寻址方式,最基本的有7种:1)立即数寻址;2)寄存器寻址;3)直接寻址;4)寄存器间接寻址;5)寄存器相对寻址;6)基址变址寻址;7)相对基址变址寻址。另外还有隐含寻址、串寻址、端口寻址等寻址方式。2-8指出能用于寄存器间接寻址的寄存器有哪些?它们通常与哪个段寄存器配合形成物理地址?答:能用于寄存器间接寻址的寄存器有BX、BP、SI和DI。其中BX、SI和DI通常与DS配合形成物理地址,BP通常与SS配合形成物理地址;在串操作中,SI通常与DS配合形成物理地址,DI通常与ES配合形成物理地址。2-9指出下列指令中源操作数和目的操作数的寻址方式,如果是内存型,还要写出段地址和偏移地址计算式.(设:Va,Vb,Vc是在DS段定义的字节型变量;Vx,Vy,Vz是在ES段定义的字型变量)(1)MOV[BX],AX(2)MOVAH,[Va](3)MOVAX,[BP+Vx](4)MOVAX,[BX+SI](5)MOVAH,[BX+DI+Vb](6)MOV[Vx],AX]答案如下:题号源操作数目的操作数段地址偏移地址(1)寄存器寻址寄存器间接寻址DSBX(2)寄存器间接寻址寄存器寻址DSVa(3)寄存器相对寻址寄存器寻址ESBP+Vx(4)基址变址寻址寄存器寻址DSBX+SI(5)基址变址相对寻址寄存器寻址DSBX+DI+Vb(6)寄存器寻址直接寻址ESVx2-10设DS=2000H,ES=3000H,SS=4000H,SI=0020H,BX=0100H,BP=0010H,变量Va的缺省段为DS,为字节型变量,对应偏移地址为0050H,指出下列指令中源操作数的寻址方式,对内存操作数计算出物理地址。(1)MOVCH,[BX](2)MOVAH,SS:[Va](3)MOVAX,ES:[BX](4)MOVAX,[BX+SI](5)MOVAX,[BP+SI](6)MOVAH,[BX+SI+Va](7)MOVAH,[BX+Va](8)MOVAH,ES:[BP+Va]答案如下表:题号源操作数物理地址(1)寄存器间接寻址DS*10H+BX=20100H(2)直接寻址SS*10H+Va=40050H(3)寄存器间接寻址ES*10H+BX=30100H(4)基址变址寻址DS*10H+BX+SI=20120H(5)基址变址寻址SS*10H+BP+SI=40030H(6)基址变址相对寻址DS*10H+BX+SI+Va=20170H(7)寄存器相对寻址DS*10H+BX+Va=20150H(8)寄存器相对寻址ES*10H+BP+Va=30060H习题33-1编写完整程序,把从键盘读入的一个小写字母转换成相应的大写字母,并在屏幕上输出。答案:源程序代码如下:CodesegmentAssumecs:codeSTAR:MOVAH,1 INT21H MOVDL,AL SUBDL,20H MOVAH,2 INT21HMOVAH,4CHINT21HCodeends EndSTAR3-2编写程序,从键盘读入一个符号,如果它的ASCII值是偶数则在屏幕输出0,是奇数则在屏幕输出1.[提示:输出符号的ASCII值除以2的余数]。答案:源程序代码如下:CodesegmentAssumecs:codeSTAR:MOVAH,1 INT21H MOVAH,0 MOVBH,2 DIVBH ADDAH,30H MOVDL,AH MOVAH,2 INT21H MOVAH,4CH INT21HCodeendsEndSTAR3-3编写一个程序段,把AH中的高4位与低4位交换位置。答案:程序段如下:MOVAL,AHMOVAH,0MOVBH,16DIVBHADDAH,AL3-4设AX=1234H,BX=5678H,写出以下指令:SUBAX.BXCMPAX,BX分别执行后,AX寄存器的值及程序状态字PSW受影响的位状态。答案:执行SUBAX,BX指令后,AX的值为0BBBCH,发生了改变;而执行CMPAX,BX指令后,AX的值不变。程序状态字PSW各位置位情况相同:CF=1,SF=1,OF=0,ZF=03-5根据已知标志寄存器中CF和ZF位状态:a.CF=0,ZF=0b.CF=0,ZF=1c.CF=1,ZF=0判断以下指令:CMPAX,BX执行后,上述三种情况下AX和BX中的两个无符号数的大小关系。答案:a.AX>BX;b.AX=BX;c.AX<BX3-6已知AX寄存器和BX寄存器有如下4组数:AXBXa.2000H2000Hb.FF85H007EHc.AA80HAA20Hd.6370H0420H及条件转换指令:JBNEXT,JNBNEXT,JBENEXT,JNBENEXT,JLNEXT,JNLNEXT,JLENEXT,JNLENEXT问:当执行CMPAX,BX指令后,上述哪些条件转移指令可以引起转换?答案:a.JNBNEXT,JBENEXT,JNLNEXT,JLENEXT;b.JNBNEXT,JNBENEXT,JLNEXT,JLENEXT;c.JNBNEXT,JNBENEXT,JLNEXT,JLENEXT;d.JNBNEXT,JNBENEXT,JNLNEXT,JNLENEXT.3-7编程实现如下功能:已知AL寄存器中存有一个0~FH之间的十六进制数,要求将它变换成相应的ASCII码值仍放于AL寄存器中。答案:程序段如下: ADDAL,30H CMPAL,3AH JBNEXT ADDAL,07HNEXT:HLT3-8若DX与AX中放了一个有符号的双字型数据,DX中放的是高位字数据,AX中放的是低位字数据,编写程序段求其绝对值。答案:程序段如下: TESTDX,8000H JZEXIT NOTAX NOTDX INCAX ADCDX,0EXIT:HLT3-9设内存中连续存放了由若干个字符构成的符号串,串的最后一个符号是ASCII码值为20H的空格符,串的逻辑地址已放在ES和DI中,编写程序段,统计出串长(不含结束符),结果放在DX中。答案:程序段如下:MOVDX,0Again:CMPBYTEPTRES:[DI],20H JZEXIT INCDX INCDI JMPagainEXIT:HLT3-10设内存中连续存放了100个有符号整数,编写程序段,求出它们的绝对值的和。该整数数组起始逻辑地址已存放于DS:SI中。答案:程序段如下: MOVCX,100 MOVAX,0 MOVDX,0Again:CMPWORDPTR[SI],0 JGENEXT MOVBX,0 SUBBX,[SI] MOV[SI],BXNEXT:ADDAX,[SI] ADCDX.0 ADDSI,2 LOOPagain HLT3-11编写完整程序,判断一个按键是不是回车键,若是回车键在屏幕输出“Y”,不是回车键,则输出“N”。答案:程序段如下:CodeSegment AssumeCS:CodeStar:MOVAH,1 INT21H CMPAL,0DH JELab1 MOVAH,2 MOVDL,‘N’ INT21H JMPLab2Lab1:MOVAH,2 MOVDL,‘Y’ INT21HLab2:MOVAH,4CH INT21HCodeends EndStar3-12编写完整程序,用十六进制输出一个按键(字母键)的ASCII码值,要求输出形式是:a=61H。答案:程序段如下:CodeSegment AssumeCS:Code Main:MOVAH,1 INT21H MOVBL,AL MOVAH,2 MOVDL,‘=’ INT21H MOVAL,BLMOVAH,0MOVBH,16DIVBHMOVBH,AHADDAL,30HMOVDL,ALMOVAH,2INT21HADDBH,30H CMPBH,3AH JBLab MOVAH,4CH ADDBH,07H INT21HLab:MOVDL,BH Codeends MOVAH,2 ENDMain INT21H 习题4(答案)4-1简答题:(1)什么是指令性语句?答:指令性语句就是汇编指令语句,该语句汇编以后将生成机器代码,故该语句为可执行语句。(2)什么是指示性语句?答:指示性语句就是伪指令语句,该语句的功能是控制汇编程序如何对源程序进行汇编,汇编以后不会生成机器代码,故该语句为非执行语句。(3)汇编语言源程序为什么要分段编写,各段内容是什么?答:源程序分段编写是为了在程序加载时,分段存储,程序一指令序列存储于代码段;数据(变量)存储于数据段或附加段;堆栈操作在堆栈段进行。(4)8086/8088汇编语言对名字的命名有什么规定?答:8086/8088汇编语言对名字的命名规则如下:1)可用符号包括字母、数字和特殊符号“?”、“@”、“$”、“%”、“-”;2)禁止用数字作第1个符号;3)名字的长度没有严格限制,但一般不超出10个符号;4)最少由一个符号构成,可以是字母、“-”或“@”;5)不区分字母的大小写。(5)符号与变量有什么不同?答:用DB、DW和DD定义的名字是变量,变量在程序加载时要占内存;用=和EQU定义的名字是符号,符号不占内存,在程序中引用符号,就是引用它的值。(6)标号与变量有什么不同?答:标号与变量都有三个属性,其中它们都有段属性和编移量属性,标号的段属性即CS的内容,标号的偏移量属性即IP的内容。第3个属性为类型属性,对于标号来讲,有NEAR和FAR两种属性;而对于变量来讲,有BYTE(字节)、WORD(字)和DoubleWORD(双字)三种属性。4-2设变量X1的定义如下:X1DB0,’1’,10B,20H,-15,’Aa’,31H用内存图画出变量X1中存放的数据,并计算X1变量的长度为多少字节?答:X1变量的长度为8字节,即8B。(内存图如下:见习题4-2图示) X1 00 0000 31 0001 02· 20 · F1· 41· 61· 31 0007习题4-2图示4-3设数据段data定义如下:DatasegmentV1DB‘ABC’,13,10,’$’V2DW‘ab’,‘CD’CC=$-V2PPDBCC,CC+2QQDW$Dataends试画出data段.相应的内存图。(答案). V1 41 0000 42 0001 43 0002 0D 0003 0A 0004 24 0005 V2 62 0006 61 0007 45 0008 44 0009 PP 04 000A 06 000B QQ 0C 000C 00 000D... 习题4-3图示4-4编写数据段定义,设段名为data,在段中依次定义以下变量:(1)Var1为字节型数组,初值是字符串’personalcomputer’;(2)Var2为字节型变量,初值是48;(3)Var3为字节型数组,初值是以ASCII码形式表示的整数65535;(4)Var4为字节型数组,初值是25个20H,40个未知数据;(5)Var5为字型变量,初值是300H;(6)Var6为字型变量,初值是400。答案如下:dataSegmentVar1DB‘personalcomputer’Var2DB30hVar3DB‘65535’Var4DB25DUP(20h),40DUP(?)Var5DW300hVar6DW4004-5编写程序对放在DX和AX中的双字长符号数求补.答案程序段如下:NOTAXNOTDXADDAX,1ADCDX,04-6设BL=0E3H,变量Y的值为79H,确定下列各条指令单独执行后,BL中的结果.(1)XORBL,Y(2)ANDBL,Y(3)NOTBL(4)ORBL,Y答案:(1)9AH;(2)61H;(3)1CH;(4)FBH4-7写出满足如下要求的指令:(1)将AX寄存器的低4位清0(2)将BX寄存器的低4位置1(3)将CX寄存器的各位求反(4)将AX的高8位保持不变,低8位求反答案:(1)ANDAX,OFFFOH;(2)ORBX,OFH;(3)NOTCX;(4)XORAX,OFFH;4-8编写完整程序,从键盘读入一个符号串,把各符号颠倒顺序后输出。答案源程序代码如下:DATASegmentBUFdb80,81DUP(0)DATAendsCODESegmentAssumecs:CODEAssumeDS:DATAMain:MOVDX,DATAINCSIMOVDS,DXDECDILEADX,BUFLOOPLOPMOVAH,10MOV[BUF+1],10INT21HLEADX,[BUF+1]MOVBL,[BUF+1]MOVAH,9MOVBH,0INT21HMOV[BUF+BX+2],‘$’MOVAH,4CHLEASI,[BUF+2]INT21HLEADI,[BUF+BX+1]CODEENDSSHRBX,1ENDMainMOVCX,BXLOP:MOVAL,[SI]XCHGAL,[DI]MOV[SI],AL4-9已知变量VAR中存放了由300个有符号整数组成的数组,编写程序段找出其中最大的一个,放到DX中。答案的程序段如下:MOVCX,299LEASI,VARMOVAX,[SI]ADDSI,2LOP:CMPAX,[SI]JGE
labMOVAX,[SI]lab:ADDSI,2LooplopMOVDX,AX4-10编写程序完成下列算式:+1X>0Y=0X=0-1X<0答案程序段如下:CMPx,0JGlab1JLlab2MOVY,0Jmpexitlab1:MOVY,1JMPexitlab2:MOVY,OFFhexit:HLT习题6(答案)6-1已知DL中的数据为10111001B,且CL中的数据为03H。问:执行下列互不相关的指令后,DL的内容各为多少?(1)SHRDL,1(2)SHRDL,CL(2)SHLDL,CL(4)SHLDL,1(5)RORDL,CL(6)RALDL,1(7)ROLDL,CL(8)SARDL,1(答案用16制数表示)(1)5CH;(2)17H;(3)C8H;(4)72H;(5)37H;(6)72H;(7)CDH;(8)DCH6-2用移位、传送以及相加指令,将AX的内容乘以10(不计溢出)答案的程序段如下:MOVBX,AXMOVCL,3SHLAX,CLSHLBX,1ADDAX,BX6-3用移位指令和加法指令实现将AL中的两位十六进制数,变成相应的ASCII码,放在AX中.答案的程序段如下:MOVBL,ALMOVCL,4SHRAL,CLCMPAL,9JBElab1ADDAL,07Hlab1:ADDAL,30HMOVAH,ALMOVAL,BLANDAL,OFHCMPAL,9JBElab2ADDAL,07Hlab2:ADDAL,30H6-4已知(DX,AX)中存放了一个无符号双字,编写程序段,利用移位指令和加减法指令把这个双字乘以9,不计溢出。答案的程序段如下:MOVSI,AXMOVDI,DXMOVCX,3again:SHLAX,1RCLDX,1LoopagainADDAX,SIADCDX,DI6-5编写一个程序段,把BX中的各个二进制位颠倒次序后还放回BX中。答案的程序段如下:MOVAX,BXMOVCX,16again:SHLAX,1RCRBX,1LoopagainHLT6-6编写程序段,统计AX中的字型数据包含有多少个1和多少个0,DH中放1的个数,DL中放0的个数。答案的程序段如下:XORDX,DXMOVCX,16Again:ROLAX,1JClab1INCDLJMPlab2lab1:INCDHlab2:LoopagainHLT6-7不允许使用串指令,分别编写程序段,实现DF为0时以下各串操作指令的功能:(1)REPMOVSW(2)REPSTOSB(3)REPZCMPSW(4)REPNESCASB答案如下:实现REPMOVSW的程序段如下:again:MOVAX,[SI]MOVES:[DI],AXADDSI,2ADDDI,2LoopagainHLT(2)实现REPSTOSB的程序段如下:again:MOVES:[DI],ALINCDILoopagainHLT(3)实现REPZCMPSW的程序段如下:again:MOVAX,[SI]CMPAX,ES:[DI]JNZexitADDSI,2ADDDI,2Loopagainexit:HLT(4)实现REPNESCASB的程序段如下:again:CMPAL,ES:[DI]JEexitINCDILoopagainexit:HLT6-8利用串操作指令REPMOVSB编写程序段,将段地址1000H,偏移地址为100H起始的100个字节数据,传送到偏移地址为200H起始的存储区中。答案的程序段如下:MOVAX,1000HMOVDS,AXMOVES,AXMOVSI,100HMOVDI,200HMOVCX,100CLDREPMOVSB6-9用REPSTOSW指令编写程序段,将段地址为1000H,偏移地址为200H起始的100H个字的存储区清0。答案的程序段如下:MOVAX,1000HMOVES,AXMOVDI,200HMOVCX,100HMOVAX,0CLDREPSTOSW6-10用REPNESCASB指令编写一个字符检索子程序。要求:在内存数据区有一数据块,首地址为BLOCK,长度为100字节,检索其中是否有与AL中相同的字符,若有则记录第一个遇到的关键字地址并存入DI,若无,则DI清0。答案的源程序如下:Che_chaPROCNearPUSHFMOVAX,SEGBLOCKMOVES,AXLEADI,BLOCKMOVCX,100CLDREPNESCASBJNElabSUBDI,OFFSETBLOCKJMPNextlab:MOVDI,0Next:POPFRETCHE_chaendp习题7(答案)7-1为什么系统与外部设备之间通常要加有接口电路?接口电路是起什么作用的?答:外部设备的种类繁多,功能各不相同,控制的方法也各式各样。很多外设由于速度和信号与系统总线不匹配,无法直接连接在总线上与主机进行数据交换,需要在总线与外设之间设置一个“适配器”,又称为“接口”,用于把来自CPU的控制命令转换成对外设的控制信号,把外设的工作情况转换成CPU可以读取并处理的状态信号。接口电路的作用也就是基本功能为:①作为微型机与外设传递数据的缓冲站;②正确寻址与微机交换数据的外设;③提供微型机与外设间交换数据所需的控制信号和状态信号。一言以蔽之,就是完成三大总线的转换和连接任务。7-2CPU与外设间的数据传送方式有哪几种?它们各有何特点?答:CPU与外设间的数据传送方式有以下四种:元条件传送方式:又称直接传送方式。这种方式,不需要查询外设的状态,可以直接使用IN或OUT指令实现数据的输入与输出。这种方式实现简单,但在CPU与这些外设交换数据时,必须确保这些外设一直处于就绪状态,否则就会出错。查询方式:又称条件传送方式。这种方式适用于与CPU不同步的外设。查询方式的工作过程是:如CPU要从外设接收数据或向外设发送数据,首先必须查询外设的状态,只有当外设就绪或空闲情况下,CPU才接收或发送数据。这种方式,传送数据可靠,但CPU工作效率低,实时性差。中断方式:此种方式的特点是:主机CPU按照它的逻辑正常执行操作。外设需要进行I/O操作时,会产生一个中断信号,请求主机CPU处理。主机CPU经过中断排队后响应中断,停止自己的工作,调用一个中断处理程序处理中断事件,完成I/O操作,然后再从中断中返回。此种方式实现了CPU与外设并行工作,既提高了CPU的工作效率,又解决了实时性问题。直接存储器存取方式:又称DMA方式。此种方式适用于高速外设与主机间的批量数据传送。其工作是在DMA控制器控制下,实现高速外设<如硬盘>与内存间的直接批量数据传送。此种方式特点:CPU不参与,可实现高速和数据块的传送。7-3解释下面术语:中断,中断源,软中断,硬中断,中断矢量,中断矢量表答案如下:中断:是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。中断源:引起中断的事件和原因称为中断源。软中断:是由系统内部产生的中断,包括:①除法错中断;②溢出中断;③INTN中断调用;④断点中断(INT或INT3);⑤单步中断。硬中断:又称外中断。包括可屏蔽中断INTR和非屏蔽中断NMI,这类中断均由外部原因引起。中断矢量:即中断服务程序的入口地址,它由段地址SA和偏移地址EA两部分构成。中断矢量表:由256个中断源的中断矢量(每个中断矢量在内存中占4个字节,低地址2字节为EA,高地址2字节为SA)所构成的表,在8086/8088系统中占据内存最低端1K字节(00000H~003FFH区域)简述中断处理过程.并说明系统如何能保证程序被中断后,在完成中断处理后还能正确返回被中断的程序处继续执行。答:1)中断处理过程如下:即当中断发生时,硬件完成以下操作:取中断类型号n;将标志寄存器(即PSN)内容压栈;当前CS的内容和IP的内容压栈;IF和TF清0,禁止外部中断和单步中断;从中断向量表<或中断矢量表>中取4*n地址(16位)的内容送IP,取4*n+2地址(16位)的内容送CS;执行中断处理程序。中断返回。2)系统之所以在执行的程序被中断后能返回原程序继续执行,其原因是在被中断时,下一条指令的地址,即断点(当前CS和当前IP的内容)都被压栈,保存在堆栈中,中断程序执行完后,最后安排的一条指令总是IRET指令,即中断返回指令。当CPU执行IRET指令时,首先从堆栈中弹出两个字分别送IP和CS,然后弹出一个字送PSW,这样就实现了返回原断点继续执行源程序。7-5分别说明近过程,远过程和中断调用返回时堆栈变化请况。答:1)近过程返回<执行RET指令>,从堆栈中弹出一个字送IP,实现近过程返回,即段内返回。远过程返回<执行RET指令>,从堆栈中弹出两个字分别送IP和CS,实现远过程返回,即段间返回。中断返回(执行IRET指令),从堆栈中弹出3个字分别送IP,CS和PSW,实现段间返回。7-6说明中断类型码为14H的中断服务程序首地址存放在哪些单元?答:存放在00050H,00051H,00052H和00053H单元。7-7现实生活中有如下现象:某人的办公桌上放了红色和白色两部电话机,一台录音机,他正在听一段录音.试把下列各项与计算机的中断相对比:(1)电话铃响;(2)判断是哪一部电话响铃;(3)两部电话同时响铃时先接红色电话机的电话;(4)按下录音机暂停键;(5)接电话;(6)按起录音机暂停键;(7)电话铃响但不接电话;(8)拔掉白色电话机的电话线;(9)接听白色电话时红色电话机响铃,放下白色电话去接红色电话。答:(1)产生中断请求;中断识别;中断优先级判别;中断正在执行的程序,保护断点;转入中断;返回原中断的程序,继续执行原程序;中断屏蔽;中断屏蔽;高优先级中断打断低优先级中断(中断嵌套)。7-8说明CPU在与外设的4种输入输出方式中,为什么使用直接传送方式的外设并不多?答:因为直接传送方式对外设要求条件苛刻,即这种外设必须随时处于就绪状态,当然这样的外设并不多。7-9试说明计算机执行RET指令和IRET指令的操作有何不同?答:此向题和习题7-5类似。当计算机执行RET指令时,从堆栈弹出一个字(段内返回)送IP或两个字(段间返回)分别送IP和CS,都不涉及PSW;而当计算机执行IRET指令时,从堆栈中弹出3个字,分别送IP,CS和PSW。另外RET指令是子程序中的最后一条指令,而IRET指令是中断服务程序的最后一条指令。7-10根据本章教学内容,试分析下面一段程序实现的功能.MOVAX,0MOVES,AXMOVDI,36H*4MOVAX,OFFSETINTBUFSTOSWMOVAX,CSSTOSW答:该段程序的功能是:设置36H号中断源的中断矢量,即将36H号中断源的中断矢量装入中断矢量表。习题88-1在单色显示器中,显示每个字符都需要两个字节的信息,由两个连续的存储单元表示,其中第一个存储单元存放什么?第二个存储单元存放什么?答:在单色显示器中,即文本模式情况下,显示每个字符都需要两个字节的信息,由两个连续的存储单元表示,其中第一个存储单元存放该显示字符的ASCII码值,第二个存储单元存放该显示字符的属性值。8-2彩色/图形显示卡可以工作在哪两种模式下?答:彩色/图形显示卡可以工作在文本模式和图形模式的两种工作模式下。8-3根据字符的行列值,可以清楚地知道字符在屏幕所在地址,如字符在15行,20列,则字符所在地址为多少?答:该字符所在地址为1220。8-4单色显示器只能工作在什么方式下?彩色显示器可以工作在哪两种方式下?如果在图形方式下,要在10行20列显示一个红底蓝字的字符,则寄存器DX和BL的值各为多少?答:单色显示器只能工作在字符方式下,彩色显示器可以工作在字符方式和图形方式下。如果在图形方式下,要在10行20列显示一个红底蓝字的字符,则寄存器DX和BL的值应为0A14H和41H。8-5要在计算机屏幕上根据用户自己的需要绘制彩色图形,可以通过哪两种方法来实现?答:一是采用直接视频显示,对指定像素在显存中的地址进行操作;二是调用BIOS例程编写彩色绘图程序。8-6X为一字单元,编程实现:将X的内容以二进制的形式显示在屏幕上。其中:显示一个字符用INT21H中断,入口参数为:DL=待显示字符的ASCII码,AH=2。答案:源程序代码如下:DataSegmentXdw?DataendsCodesegmentAssumeCS:CodeAssumeDS:dataSTART:MOVAX,data MOVDS,AX MOVAX,[X] MOVCX,16LP:SHLAX,1 JCLab1 MOVDL,30H JMPLab2Lab1:MOVDL,31HLab2:MOVAH,2 INT21H LOOPLP MOVAH,4CH INT21HCodeends ENDSTART8-7编程以在屏幕上显示:HELLOWORLDMYNAMEISWJY答案:源程序代码如下:DatasegmentOut1db“HELLOWORLD$”Out2db“MYNAMEISWJY$”DATAendsCodesegmentAssumecs:codeds:dataStart:MOVAX,data MOVds,AX LEADX,out1 MOVAH,9 INT21H MOVDL,0DH MOVAH,2 INT21H MOVDL,0AH INT21H MOVAH,9 LEADX,out2 INT21H MOVAH,4CH INT21HCodeendsENDStart 习题5(答案)5-1什么叫堆栈?如何建立堆栈?堆栈的功能是什么?答:堆栈:就是内存中一段存放数据的特殊区域,它是按先进后出的规则存取数据,按字操作。只要定义一个堆栈段,并给SS和SP赋值,就形成了堆栈。堆栈的功能是用于保存数据信息,一般用于保存调用子程序时的断点和现场。5-2用图示说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 起重机交接班制度(2篇)
- 2025年新初一下学期班主任工作计划
- 2025年校园年度工作计划
- 中小学安全教育月工作计划
- 建筑工程施工安全合同协议书
- 家庭居室装饰装修工程施工合同书
- 超市营业员个人工作总结2
- 中学历史教室使用管理制度(3篇)
- 机床安全技术规程模版(3篇)
- 河流改造安全生产培训
- 无锡市区2024-2025学年四年级上学期数学期末试题一(有答案)
- 血液净化中心院内感染控制课件
- 年产1.5万吨长链二元酸工程建设项目可研报告
- 纺织厂消防管道安装协议
- 【MOOC】思辨式英文写作-南开大学 中国大学慕课MOOC答案
- 期末测试卷(试题)-2024-2025学年五年级上册数学北师大版
- 2024年下半年中国石油大连石化分公司招聘30人易考易错模拟试题(共500题)试卷后附参考答案
- 国有企业品牌建设策略方案
- 2024年河南省公务员考试《行测》真题及答案解析
- 家政培训讲师课件
- 广东省深圳市龙华区2023-2024学年八年级下学期期中数学试题
评论
0/150
提交评论