微型计算机原理与应用习题集及答案讲解学习.doc

上传人:1595****071 文档编号:86481426 上传时间:2023-04-14 格式:DOC 页数:81 大小:615.50KB
返回 下载 相关 举报
微型计算机原理与应用习题集及答案讲解学习.doc_第1页
第1页 / 共81页
微型计算机原理与应用习题集及答案讲解学习.doc_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《微型计算机原理与应用习题集及答案讲解学习.doc》由会员分享,可在线阅读,更多相关《微型计算机原理与应用习题集及答案讲解学习.doc(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。微型计算机原理与应用习题集及答案-微型计算机原理与应用习题集目录第1章概述1第2章计算机中的数制与编码2第3章微处理器及其结构2第4章8086/8088CPU指令系统2第5章汇编语言程序设计2第6章存储器系统2第7章中断技术2第8章输入/输出接口技术2第9章串行通信技术及其接口芯片2模拟试题(一)2参考答案2模拟试题(二)2参考答案2模拟试题(三)2参考答案2河南理工大学2006-2007学年第1学期2参考答案2近年来某高校硕士研究生入学试题2参考答案2近年某高校研究生入学考试试题2参考答案2近年某高校

2、攻读硕士学位研究生试题2参考答案2-第1章概述一、填空题1电子计算机主要由运算器、控制器、存储器、输入设备和输出设备等五部分组成。2运算器和控制器集成在一块芯片上,被称作CPU。3总线按其功能可分数据总线、地址总线和控制总线三种不同类型的总线。4计算机系统与外部设备之间相互连接的总线称为系统总线(或通信总线);用于连接微型机系统内各插件板的总线称为系统内总线(板级总线);CPU内部连接各寄存器及运算部件之间的总线称为内部总线。5迄今为止电子计算机所共同遵循的工作原理是程序存储和程序控制的工作原理。这种原理又称为冯诺依曼型原理。二、简答题1简述微处理器、微计算机及微计算机系统三个术语的内涵。答:

3、微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。微处理器一般也称为CPU;微计算机是由微处理器、存储器、I/O接口电路及系统总线组成的裸机系统。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。2什么叫总线?为什么各种微型计算机系统中普遍采用总线结构?答:总线是模块与模块之间传送信息的一组公用信号线。总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。因此微

4、型计算机系统中普遍采用总线结构。3微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么?答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。第2章计算机中的数制与编码一、填空题1写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?(1)(01101110)二进制原码(1101110)二进制真值(110)十进制真值(01101110)二进制反码(1101110)二进制真值(110)十进制真值(01101

5、110)二进制补码(1101110)二进制真值(110)十进制真值(2)(10110101)二进制原码(0110101)二进制真值(53)十进制真值(10110101)二进制反码(1001010)二进制真值(74)十进制真值(10110101)二进制补码(1001011)二进制真值(75)十进制真值2写出下列二进制数的原码、反码和补码(设字长为8位)。(1)(1010110)二进制真值(01010110)原码(01010110)反码(01010110)补码(2)(1010110)二进制真值(11010110)原码(10101001)反码(10101010)补码3.X补=78H,则-X补=(88

6、)H。4下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?(1)(11111111)二进制原码(127)十进制真值(11111111)二进制反码(0)十进制真值(11111111)二进制补码(1)十进制真值(2)(10000000)二进制原码(0)十进制真值(10000000)二进制反码(127)十进制真值(10000000)二进制补码(128)十进制真值5已知X1=+0010100,Y1=+0100001,X2=-0010100,Y2=-0100001,试计算下列各式(设字长为8位)。(1)X1Y1补=X1补Y1补=0001010000100001=00110101(2)X

7、1Y2补=X1补Y2补=0001010000100001=00110101(3)X2Y2补=X2补Y2补=1110110000100001=00001101(4)X2Y2补=X2补Y2补=1110110011011111=110010116将下列十六进制数分别转换成二进制、八进制、十进制和BCD数。(1)(5D.BA)16=(0101,1101.1011,1010)2(135.564)8(93.7265625)10=(1001,0011.0111,0010,0110,0101,0110,0010,0101)BCD(2)(1001.0101,1)2=(9.34375)10(11.26)8(9.5

8、8)16=(1001.0011,0100,0011,0111,0101)BCD7写出下列字符的ASCII码。(1)9(39H)ASCII码(2)C(43H)ASCII码(3)$(24H)ASCII码(4)空格(20H)ASCII码(5)b(62H)ASCII码(6)回车(0DH)ASCII码(7)换行(0AH)ASCII码(8)报警符(07H)ASCII码二、选择题1下列无符号数中最小的数是(A)。A(01A5)HB(1,1011,0101)BC(2590)DD(3764)O2下列有符号数中最大的数是(D)。A1002HB1001001100101100BC2570OD9614D3在机器数(A

9、)中,零的表示形式是唯一的。A补码B原码C补码和反码D原码和反码48位二进制数补码的数值表示范围为(A)。A.128127B127127C.一129128D1281285若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,采用偶校验的字符码是(D)。A11001011B11010110C11000001D110010016B9H可以看成(ABD)。A无符号数185B带符号数71的补码C十进制数99的组合BCD码D带符号数57的原码第3章微处理器及其结构一、填空题18086/8088CPU执行指令中所需操作数地址由EU计算出16位偏移量部分送BIU,由BIU最后形成一个20位的内存单元物理

10、地址。28086/8088CPU在总线周期的T1时刻,用A19/S6A16/S3输出20位地址信息的最高4位,而在其他时钟周期,则输出状态信息。38086/8088CPU复位后,从0FFFF0H单元开始读取指令字节,一般这个单元在ROM区中,在其中设置一条跳转指令,使CPU对系统进行初始化。48086系统的存储体系结构中,1MB存储体分2个库,每个库的容量都是512K字节,其中和数据总线D15D8相连的库全部由奇地址单元组成,称为高位字节库,并用作为此库的选通信号。58086/8088系统中,可以有64K个段起始地址,任意相邻的两个段起始地址相距16个存储单元。6用段基值及偏移量来指明内存单元

11、地址的方式称为逻辑地址。7通常8086/8088CPU中当EU执行一条占用很多时钟周期的指令时,或者在多处理器系统中在交换总线控制时会出现空闲状态。88086CPU使用16根地址线访问I/O端口,最多可访问64K个字节端口,使用20根地址线访问存储单元,最多可访问1M个字节单元。9CPU取一条指令并执行该指令的时间称为指令周期,它通常包含若干个总线周期,而后者又包含有若干个时钟周期。二、单项选择题1某微机最大可寻址的内存空间为16MB,其CPU的地址总线至少应有(E)条。A26B28C20D22E2428086/8088CPU的RESET引脚至少应维持(A)个时钟周期的正脉冲宽度才能有效复位。

12、A4B.5C2D33当RESET信号进入高电平状态时,将使8086/8088CPU的(D)寄存器初始化为0FFFFH。ASSBDSCESDCS48086/8088CPU与慢速存储器或I/O接口之间进行数据传输,为了使传送速度匹配,有时需要在(C)状态之间插入若干等待周期TW。AT1和T2BT2和T3CT3和T4D随机58086/8088CPU中标志寄存器的主要作用是(D)。A检查当前指令的错误B纠正当前指令执行的结果与错误C决定是否停机D产生影响或控制某些后续指令所需的标志68086最小模式下的存储器读周期中地址锁存发生在总线周期的(A)时刻。AT1BT2CT3DT47指令指针IP的作用是(A

13、)。A保存将要执行的下一条指令的地址B保存CPU要访问的内存单元地址C保存运算器运算结果内容D保存正在执行的一条指令88086CPU有两种工作模式,最小模式的特点是(A)。ACPU提供全部控制信号B由编程进行模式设定C不需要8282收发器D需要总线控制器8288三、简答题18086/8088CPU分为哪两个部分?如何协调工作?答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BI

14、U提供服务时,BIU可进行填充指令队列的操作。28086/8088CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088CPU的地址总线共20位,最大可寻址1MB空间。38086/8088CPU使用的存储器为什么要分段?怎么分段?答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储

15、器物理地址?实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB。这样,一个20位的物理地址就可以用“16位段基址:16位偏移量”的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。48086/8088CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088CPU中共有:8个16位的通用寄存器AX、BX、CX、DX、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI亦可作地址寄存器。5Intel8086与8088有何区别?

16、答:8086与8088的区别主要表现在以下几个方面:第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。第三、其他不同的引脚定义:(1)AD15AD0,在8086中为地址/数据复用,而在8088中AD15AD8改为A15A8只作地址线用;(2)34、28号引脚定义不同。68086/8088CPU工作

17、在最小模式时:当CPU访问存储器时,要利用哪些信号?当CPU访问外设接口时,要利用哪些信号?答:8086/8088CPU工作在最小模式时,若访问存储器,需用到以下信号:、ALE、DEN、READY、AD0AD15、A19/S6A16/S3。若访问外设,需用到以下信号:、ALE、DEN、READY、AD0AD15。7试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:(1)1278H3469H答:CF=0AF=1ZF=0SF=0OF=0PF=1(2)54E3H27A0H答:CF=0AF=0ZF=0SF=0OF=0PF=0(3)3881H3597H答:CF=0AF=0ZF=0SF=0O

18、F=0PF=1(4)01E3H01E3H答:CF=0AF=0ZF=1SF=0OF=0PF=1其中,进位标志CF用于判别无符号数运算是否超出数的表示范围,而溢出标志OF用于判别带符号数运算是否超出数的表示范围。奇偶标志PF只能判断结果低8位中“1”的个数为奇数还是偶数。8什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20

19、位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他们之间的关系是:物理地址段基址*16偏移量;另外,一个物理地址可对应多个逻辑地址。9设现行数据段位于存储器0B0000H0BFFFFH单元,DS段寄存器内容为多少?答:DS段寄存器内容为0B000H。10在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值。物理地址是8086芯片引线送出的20位地址码,物理地址=段基址*16+偏移地址,

20、用来指出一个特定的存储单元。11给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C0E0H,求出该内存单元的物理地址。答:物理地址:0C2EC0H。128086/8088为什么采用地址/数据引线复用技术?答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。13怎样确定8086的最大或最小工作模式?答:引线的逻辑状态决定8086的工作模式,引线接高电平,8086被设定为最小模式,引线接低电平,808

21、6被设定为最大模式。148086基本总线周期是如何组成的?答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。15在基于8086的微计算机系统中,存储器是如何组织的?存储器是如何与处理器总线连接的?信号起什么作用?答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7D0,“体选”信号接地址线A0;奇体的数据线连接D15D8,“体选”信号接信号;A0信号有效时允许访问偶体中的低字节存储单元,信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字

22、节访问及字访问。16有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H27H=62DAEH17有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和00135H,试画出它们的存储器示意图。地址内容00130H0DAH00131H31H00132H00133H00134H00135H7F00136H5E18试说明8086CPU的控制引脚ALE的作用。答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位

23、地址线通过锁存器保存,以形成系统地址总线。第4章8086/8088CPU指令系统一、判断题1MOVAX,BP的源操作数物理地址为16(DS)+(BP)。()2OUTDX,AL指令的输出是16位操作数。()3不能用立即数给段寄存器赋值。()4所有传送指令都不影响PSW寄存器的标志位。()5堆栈指令的操作数均为字。()6段内转移指令执行结果要改变IP,CS的值。()二、单项选择题1寄存器间接寻址方式中,操作数在(C)中。A.通用寄存器B.I/O端口C.存储单元D.段寄存器2(A)寻址方式的跨段前缀不可省略。A.DS:BPB.DS:SIC.DS:DID.SS:BP3假设(SS)=2000H,(SP)

24、=0012H,(AX)=1234H,执行PUSHAX后,(SP)=(C)。A.0014HB.0011HC.0010HD.000FH4用BP作基址变址寻址时,操作数所在的段是当前(C)。A.数据段B.代码段C.堆栈段D.附加段5已知(IP)=1000H,CF=0,则执行指令JNCShortlabel后,下列各数中哪一个是可能的IP值?(B)(A)0FFFFH(B)0FFEH(C)10FEH(D)1100H6执行下列指令后,(AX)=(A)。MOVAX,1234HMOVCL,4ROLAX,CLDECAXMOVCX,4MULCXHLTA.8D00HB.9260HC.8CA0HD.0123H7设(AL

25、)=-68,(BL)=86,执行SUBAL,BL指令后,正确的结果是(C)。A.CF=1B.SF=1C.OF=1D.ZF=18已知(SI)0004H,(DS)8000H,(80004H)=02H,(80005H)=C3H。指令LEAAX,SI执行后(AX)(C)。A.0002HB.0005HC.0004HD.C302H9条件转移指令JNE的条件是(C)。A.CF0B.CF1C.ZF0D.ZF110在8086中,(BX)0282H,且题中指令已在指令队列中,则执行INCBYTEPTR(BX)指令需要的总线周期为(C)。A.0B.1C.2D.3三、多项选择题1下列指令中源操作数使用寄存器寻址方式的

26、有(BF)。A.MOVBX,BUFSIB.ADDSI+50,BXC.SUBAX,2D.CMPAX,DISPDIE.MULVARBXF.PUSHCX2将累加器AX的内容清零的正确指令是(BCD)。A.CMPAX,AXB.SUBAX,AXC.ANDAX,0D.XORAX,AX3正确将字变量WORDVARR偏移地址送寄存器AX的指令是(CD)。A.MOVAX,WORDVARRB.LESAX,WORDVARRC.LEAAX,WORDVARRD.MOVAX,OFFSETWORDVARR4调用CALL指令可有(ABDE)。A.段内直接B.段内间接C.短距离(SHORT)D.段间直接E.段间间接58086指

27、令的操作数可能有(ABCD)。A.0B.1C.2D.3四、填空题1与指令MOVBX,OFFSETBUF功能相同的指令是LEABX,BUF。2假设(BX)=0449H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=7230H则执行XCHGBX,BP+SI指令后,(BX)=7230H。3执行下列指令序列后,完成的功能是将(DX,AX)的值除以16。MOVCX,4NEXT:SHRDX,1RCRAX,1LOOPNEXT4已知(AL)01011101B,执行指令NEGAL后,再执行CBW后,(AX)0FFA3H。5在数据传送类指令中,只有SAHF和POPF两条指令会

28、影响标志位的值,其中指令POPF是唯一可以改变TF标志的指令。6设有100个字节数据(补码),存放在数据段中EA2000H的存储单元中。以下程序应该从该数据区中找出最小的一个数据,并存入EA2100H单元中,请将下面程序补充完整。MIN:MOVBX,2000HMOVAL,BXMOVCX,99LOOP1:INCBXCMPAL,BXJLELOOP2MOVAL,BXLOOP2:DECCXJNZLOOP1MOV2100H,AL7MOVAX,ES:BXSI中,源操作数的物理地址计算式是:(ES)16(BX)(SI)。五、综合题1请指出以下各指令的源、目的操作数所使用的寻址方式。(1)MOVSI,2100

29、H(2)SBBDISPBX,7(3)ANDDI,AX(4)ORAX,609EH(5)MOVBXDI30H,CX(6)PUSHES:BP(7)CALLDISPDI答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址(7)只有一个操作数,为(带位移量的)变址寻址2请指出下列各条指令的错误,并改正。(1) MOV100,2

30、3H(2) ADDAX,BXBP6(3) PUSHDL(4) INAX,3FH(5) OUT3FFH,AL(6) LESSS,SI(7) POPAX(8) IMUL4CH(9) SHLBX,(10) INT300(11) XCHGDX,0FFFH(12) MOVAH,BX(13) MOVBX,ES:AX(14) MOVAX,OFFSETSI(15) MOVCS,AX(16) MOVDS,ES(17) MOVDS,1000H答:(1)不允许直接向段寄存器送立即数,可改为:MOVAX,1000HMOVDS,AX(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则

31、第一操作数前应加上BYTEPTR或WORDPTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOVBYTEPTR100,23H(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX,BXDI6(4)堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSHDX(5)在输入/输出指令中,8位端口地址应直接写在操作数处。可改为:INAX,3FH(6)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为:MOVDX,3FFHOUTDX,AL(7)LES指令的目操作数应该是通用寄存器,不能是段寄存器。可改为:LESAX,SI(8)AX不能用于

32、间接寻址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。可改为:POPBX(9)立即数不能做乘法指令的操作数,可改为:MOVBL,4CHIMULBL(10)当逻辑移位的次数大于1时,应该用CL指示次数。可改为:MOVCL,5SHLBX,CL(11)操作数300255,已超出有效的中断类型码范围。(12)XCHG指令不允许立即数做它的操作数。可改为:MOVCX,0FFFHXCHGDX,CX(13)源、目的字长不一致(14)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式(15)OFFSET只用于简单变量,应去掉(16)CS不能作为目的寄存器(17)段寄

33、存器之间不能直接传送数据3设若标志寄存器原值为0A11H,(SP)=0060H,(AL)=4。下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?PUSHFLAHFXCHGAH,ALPUSHAXSAHFPOPF答:指令执行后标志寄存器的值为0411H,AX=0411H,SP=005EH。4假如在程序的括号中分别填入指令:(1)LOOPL20(2)LOOPNEL20(3)LOOPEL20试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?BEGIN:MOVAX,01MOVBX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX

34、,1()答案:(1)(AX)=5(BX)=16(CX)=0(DX)=0(2)(AX)=3(BX)=7(CX)=2(DX)=0(3)(AX)=2(BX)=4(CX)=3(DX)=15变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。答案:MOVAX,0MOVAL,N1SUBAL,N2AASMOVDL,ALMOVAL,N1+1SBBAL,N2+1AASMOVDH,AL6在已学的指令中,可实现累加器清0的单条指令有哪些?比较它们的功能。答:(1)MOVAX,0;仅将累加器清0,不会影响任何标志位(2)SUBAX,AX;累加器清0的同时影响所有状态标志,具体地有:ZF、P

35、F置1,CF、AF、SF、OF均清0(3)ANDAX,0;将累加器清0,ZF、PF置1,CF、OF、SF清0(4)XORAX,AX;将累加器清0,ZF、PF置1,CF、OF、SF清07已知(DS)=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少?MOVBX,OFF

36、SETCOUNTMOVSI,BXMOVAX,COUNTSIBX答:执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。8设若内存单元DATA在数据段中偏移量为24C0H处,24C0H24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少?MOVAX,DATALEASI,DATAMOVCL,SILDSBX,DATA答:执行结果为(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877H。9若(AX)=26D3H,(CX)=7908H,CF=1,执行下列指令

37、后,寄存器AX、CX的值分别是多少?CF=?OF=?SALCH,1RCRAX,CLROLAL,1答:执行结果为(AX)=0A64CH,(CX)=0F208H,CF=OF=0。10已知有程序段如下:MOVAL,35HMOVDL,ALANDDL,0FHANDAL,0F0HMOVCL,4SHRAL,CLMOVBL,10MULBLADDAL,DL执行之后,AL的值等于多少?该程序段完成了什么功能?答:程序段执行后(AL)=23H。该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。11下面的程序执行后,DX、AX的值分别是多少?;以X为首址的字单元中的数据依次为1234H、56

38、78H;以Y为首址的字单元中的数据依次为8765H、4321HLEASI,XLEADI,YMOVDX,SI2MOVAX,XADDAX,XADCDX,SI2CMPDX,DI2JLL2CMPAX,YJLL1JMPEXITL1:MOVAX,1JMPEXITL2:MOVAX,2EXIT:答:执行结果为(AX)=2,(DX)=0ACF0H。12设VAR字单元的值为x,F1字单元的值为y,试编程按以下要求给y赋值:2x30y=030x12x30,则转PLUS2CMPAX,1JLMIN2;x1,则转MIN2MOVF1,0;30x1,y=0JMPGOPLUS2:MOVF1,2;y=2JMPGOMIN2:MOV

39、F1,-2;y=-2或00FEHGO:;后续处理简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用。若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令。第5章汇编语言程序设计一、填空题1段定义伪指令语句用SEGMENT语句表示开始,以ENDS语句表示结束。2ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H)语句执行后共占1200字节存储单元。3汇编语句中,一个过程有NEAR和FAR两种属性。NEAR属性表示主程序和子程序在同一个代码段中,FAR属性表示主程序和

40、子程序不在同一个代码段中。4DOS系统功能号应放在AH寄存器中。5子程序又称过程,它可以由PROC语句定义,由ENDP语句结束,属性可以是NEAR或FAR。6假设VAR为数据段中已定义的变量,则指令MOVBX,OFFSETVAR中源操作数的寻址方式是立即数寻址。二、选择题1EXE文件产生在(D)之后。A.汇编B.编辑C.用软件转换D.连接2变量定义的伪指令助记符有(ABCEF)。A.DBB.DWC.DDD.DFE.DQF.DT3主程序与子程序之间传递参数可通过(ABC)进行。A.堆栈B.存储器单元C.通用寄存器D.指令队列E.其他4计算机系统软件中的汇编程序是一种(C)。A.汇编语言程序B.编

41、辑程序C.翻译程序D.将高级语言转换成汇编程序的程序5若主程序段中数据段名为DATA,对数据段的初始化操作应为(B)。A.MOVAX,DATAB.MOVAX,DATAMOVES,AXMOVDS,AXC.PUSHDSD.MOVDS,DATA68086宏汇编源程序中,若BUFF是字变量名,则执行指令MOVBX,BUFF后,BX中的值为BUFF单元的(A)。A.字数据值B.变量类型值C.段基址D.段内偏移量三、综合题1下列标号为什么是非法的?(1)GET.DATA(2)1_NUM(3)TEST-DATA(4)RET(5)NEWITEM答案:(1)因为.只允许是标号的第一个字符(2)第一个字符不能为数

42、字(3)不允许出现-(4)不能是保留字,如助记符(5)不能有空格2已知数据和符号定义A1DB?A2DB8K1EQU100判断下列指令的正误,并说明错误指令的原因。(1)MOVK1,AX(2)MOVA2,AH(3)CMPA1,A2(4)MOVBX,K1MOVBX,DX(5)K1EQU200答:(1)错误。K1是符号,在此处相当于立即数100,故不能做目的操作数。(2)正确。(3)错误。A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。(4)正确。(5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。3若数据段中有定义NUM1EQU23HNU

43、M2DW0则指令MOVNUM2,NUM1的源、目操作数的寻址方式以及指令执行后NUM21单元的内容分别是什么?答:指令MOVNUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM21单元的内容是0。4已知某数据段从物理地址03000H处开始,定义如下:DSEGSEGMENTORG2000HA1DD2DUP(7,1,?)A2DB10DUP(0,4,3DUP(2),5)CNTEQU20HA3DW100DUP(?)DSEGENDS请分别用分析运算符SEG、OFFSET、LENGTH、SIZE、TYPE求出A1、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。答:(SEGA1)=0300H,(OFFSETA1)=2000H,(TYPEA1)=4,(LENGTHA1)=2,(SIZEA1)=234=24;(SEGA2)=0300H,(OFFSETA2)=2018H,(TYPEA2)=1,(LENGTHA2)=10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁