微机原理习题解答张五.doc_第1页
微机原理习题解答张五.doc_第2页
微机原理习题解答张五.doc_第3页
微机原理习题解答张五.doc_第4页
微机原理习题解答张五.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

习题一冯诺依曼计算机由哪几个部分组成?各部分的功能是什么?答:冯诺依曼在1946年提出了“存储程序”的计算机设计方案,计算机由运算器、控制器、存储器、输入设备和输出设备几个部分组成。输入设备用来向计算机输入程序和原始数据;输出设备用来输出计算机的处理结果及程序;存储器用来存放程序和数据;运算器是对数据进行运算的部件,其主要功能是对二进制数据进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、移位),故又称为算术逻辑单元;控制器是整个计算机的控制中心,其功能是控制计算机各个部件自动协调工作。计算机的发展经历了哪几个时代?计算机有哪些方面的应用?答:第一代 (1946年1958年):电子管计算机;第二代 (1959年1964年):晶体管计算机;第三代 (1965年1970年):集成电路(IC)计算机;第四代 (1971年以后):大规模/超大规模集成电路(LSIC/VLSIC)计算机。计算机应用主要有:1.科学计算;2.数据处理;3.实时控制;4.计算机辅助系统;5.人工智能;6.远程教育;7.电子商务等。微型计算机系统主要由哪些部分组成?各部分的主要功能是什么?答:微型计算机系统主要由: 微处理器、主存储器、输入/输出接口、输入/输出设备、系统总线等部分组成。各部分的主要功能是:1.微处理器:它是微型计算机的核心部件,由运算器、控制器、寄存器等组成其主要功能是通过对指令的译码,产生微操作以控制计算机各个部件自动协调工作。2.主存储器:是微型计算机的重要组成部分之一,用于存储指令和数据。3.输入/输出接口:简称I/O接口,是微机与I/O设备进行信息传递的桥梁,即微机通过I/O接口与输入/输出设备进行信息交换。4.输入/输出设备:简称为I/O设备,人们通过I/O设备与微机进行信息交流。5.系统总线(system bus):是用来连接微处理器与其他部件的一束信号线,通过系统总线架起了微处理器与其他部件之间进行信息传递的通道。什么是微型计算机的系统总线?简要说明微处理器三总线的作用。答:系统总线是用来连接微处理器与其他部件的一束信号线,根据所传递的信息不同,可以将系统总线分为:地址总线(AB),用于传送存储器或I/O接口的地址;数据总线(DB),用于微处理器与其他部件的信息传递;控制总线(CB),用于传送各类控制信号,使外设和其它的部件在微处理器的控制下完成控制操作。解释下面术语的含义。(1) 微处理器、微型计算机、微型计算机系统答:微处理器:它是微型计算机的核心部件,由运算器、控制器、寄存器等组成;微型计算机:体积小、重量轻,采用超大规模集成电路VLSIC,器件数量少,便于携带(笔记本),规模化生产、产量大、价格低廉、普及面大,结构配置灵活、可靠性高;微型计算机系统:由微型计算机构成的计算机系统。(2)字节、字、字长答:字节:是计算机中比较通用的基本单位,一个字节由8位二进制数位组成。字:是计算机内部处理数据的基本单位。字长:是是指机器一次所能处理的数据位数。(3)主存、内存、高速缓冲存储器答:主存:是微型计算机的重要组成部分之一,按读写性能可以分为随机存储器(简RAM)和只读存储器(简称ROM)。内存:通常说内存容量,指的是随机存储器,并不包括只读存储器。 高速缓冲存储器:在慢速的DRAM和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用,使CPU可以以较快速度存取SRAM中的数据。(4)RAM、ROM答:RAM:随机存储器;ROM;只读存储器。(5)硬件、软件答:硬件:组成计算机的物理实体;软件:操作计算机运行的程序。习题二数制转换(1)12=( 1100 )B=( 0C )H(2)(0F89)H=(111110001001)B=( 3977 )D(3)(67.75)D=( 1000011.11 )B=( 43.B )H(4) 96.25 =( 1100000.01 )B=( 60.4 )H(5) 10111011B =( 187 )D=( 0BB )H(6)(0001 1000 0010.0101) B = ( 386.3125 )D =( 182.5 )H写出下列二进制数的原码、反码和补码。(1)+1111000B X原01111000 X反00000111 X补01111000(2)-1000000B X原11000000 X反10111111 X补11000000(3)-0000001B X原10000001 X反11111110 X补11111111(4)-0101100B X原10101100 X反11010011 X补11010100求下列数的补码 (用一个字节表示),如果用一个字表示结果如何?(1) -9 X补11110111(字节) X补1111111111110111(字) (2) 23 X补00010111(字节) X补0000000000010111(字)(3)-65 X补10111111(字节) X补1111111110111111(字)(4)-128 X补10000000(字节) X补1111111110000000(字)已知X补 ,求X的真值。(1)X补01111111B X127(2)X补10000001B X127(3)X补10000000B X128(4)X补01111000B X12010000100B00001110B10010010B试将二进制数10000100B和00001110B相加,试说明不管把这两个数看作是无符号数还是有符号数,结果都正确(看作有符号数时采用补码表示)。 答:当作为无符号数相加时和为146,小于255结果正确,当作为有符号数,正数和负数相加,结果不会溢出。将有符号数10000100B和11100110B相加,判断结果是否溢出,为什么?10000100B11100110B101101010B答:用进位位法判别溢出:CY1,CD0,OFCYCD1,产生溢出。因为两负数相加,其和大于128,超出了表示的范围。数值型数据,在加减运算中为什么采用补码表示?答:对数值型数据,有正数也有负数,采用补码表示时,可以将符号和数值位一起进行编码,并可将减运算转化成加运算。完成下列8421 BCD码与其它数制/码制的转换。(1)(1001 0011)BCD= ( 93 )D =( 01011101 ) B(2)(1000 0010.0101)BCD = ( 82.5 )D =( 01010010.1 ) B(3)(0011 0111 0110.0111)BCD = ( 376.7 )D =( 101111000.1011001 ) B(4)(11010001)B=( 0010 0000 1001 )BCD (5)(0001 1000 0010.0101) B = ( 0011 1000 0110.0011 0001 0010 0101 )BCD (6)(58.5)D= = ( 111010.1 ) B = ( 0101 1000.0101 )BCD计算下列BCD码的和,并按规则进行十进制调整。100110001000011110001111101100110000110000101BCD (1)9887 (2)4868 (3)5984 (4)456989答:(1)9887185个位相加和大于9,加6调整,十位相加和产生进位,加60H调整 结果为:18501001000011010001011000001100110000100010110BCD答:(2)4868116个位相加产生进位加6调整十位相加和大于9加60H调整结果为:11601011001100001001101110101100110000101000011BCD答:(3)5984143个位相加和大于9,加6调整十位相加和大于9,加60H调整结果为:1430100010101101001100010011101110111110110011001100001010001000101BCD答(4): 4569891445个位、十位、百位相加和均大于9个位、十位、百位均加加6调整结果为:144510A Z、a z、0 9的ASCII码分别是什么?空格、回车、换行、$、?、+、-的ASCII码是什么?答:ASCII码用16进制表示A Z的ASCII码为:41H5AH;a z的ASCII码为:61H7AH;0 9的ASCII码为:30H39H;空格的ASCII码为:20H;回车的ASCII码为:0DH;换行的ASCII码为:0AH;“$”的ASCII码为:24H; “?”的ASCII码为:3FH;“”的ASCII码为:2BH;“”的ASCII码为:2DH。11什么是组合的BCD码?什么是非组合的BCD码?答:组合的BCD码是用一个字节表示2位BCD码; 非组合的BCD码一个字节仅在低四位表示1位BCD码。12简述汉字的编码规则。答:GB2312国标字符集呈二维表,分成94行94列,行号称为区号,列号称为位号。每一个汉字或符号在码表中都有各自一个惟一的位置编码,该编码就是字符所在的区号(行号)及位号(列号)的二进制代码(7位区号在左、7位位号在右,共14位),也称为汉字的区位码。因此,字符集中的任何一个图形、符号及汉字都用唯一的区位码表示。为了不影响已经约定好的数据通信规程,将区位码的区号和位号都加 32(即 100000),变换成对应的国标码。习题三18086CPU由哪两部分组成?他们的主要功能各是什么?8086CPU与8088CPU的主要区别是什么?答:由指令部件EU和总线接口部件BIU组成。EU功能:EU只负责执行指令。其中的算术逻辑单元(ALU)完成16位或8位的二进制运算,运算结果可通过内部总线送到通用寄存器组或BIU的内部寄存器中等待写入存储器。16位暂存器用来暂存参加运算的操作数。经ALU运算后的结果特征送入标志寄存器FR中保存;EU中的控制器负责从BIU的指令队列中取指令,并对指令进行译码,根据指令要求向EU内部各部件发出控制命令以完成各条指令的功能。BIU功能:总线接口单元BIU负责与存储器或I/O端口打交道,正常情况下,BIU通过地址加法器形成指令所在存储器中的物理地址后,启动存储器,从给定地址的存储器中取出指令代码送指令队列中等待执行,一旦指令队列中空出2个字节,BIU将自动进人读指令操作以填满指令队列。只要收到EU送来的操作数地址,BIU将立即形成操作数的物理地址,完成读/写操作数或运算结果的功能。答:8086CPU与8088CPU的主要区别: 8088 BIU中指令队列长度仅有4个字节; 8088 BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器组之间的数据总线宽度也是8位,而EU内部总线仍是16位,所以把8088 CPU称之为准16位微处理器。28086内部的并行操作体现在哪里?答:EU执行指令时,不必访问存储器去取指令,而是直接从指令队列中取得指令代码,并分析执行它。BIU通过地址加法器形成指令所在存储器中的物理地址后,启动存储器,从给定地址的存储器中取出指令代码送入指令队列中等待执行。这两个过程是并行进行的。38086CPU中有哪些寄存器?各有什么用途?答: 通用寄存器组:4个16位通用寄存器,AX、BX、CX、DX,称作通用数据寄存器。可用来存放16位的数据或地址,另有隐含的专门用法;2个指针寄存器:SP和BP。它们均用来存放段内偏移地址;2个变址寄存器:SI和DI。这两个寄存器常用在字符串操作中,并分别用来存放源操作数的段内偏移量和目标操作数的段内偏移量。 段寄存器组:CS:代码段寄存器,存放代码段的基地址,要执行的指令代码均存放在代码段中;DS:数据段寄存器,存放数据段的基地址,指令中所需操作数常存放于数据段中;SS:堆栈段寄存器,存放堆栈段的基地址,堆栈操作所需的数据存放于堆栈段中;ES:附加段寄存器,存放附加段的基地址,附加段也是用来存放存储器操作数的。 标志寄存器FR:表示运算的特征或控制CPU的操作。 指令指针寄存器IP:用来存放将要执行的下一条指令代码在代码段中的偏移地址,在程序运行过程中,BIU可修改IP中的内容,使它始终指向将要执行的下一条指令4标志寄存器FR中有哪些标志位?它们的含义和作用是什么?答:标志寄存器FR 进位标志位CF:运算结果最高位若产生进位或借位,该标志置1,否则置0。 奇偶标志位PF:运算结果中1的个数为偶数,该标志置1,否则置0。 辅助进位标志位AF:加法/减运算中,若第3位有进/借位,AF1,否则AF1。 零标志位ZF:运算指令执行之后,若结果为0,则ZF1,否则ZF=0。 符号标志位SF:它和运算结果的最高位相同。有符号运算时最高位表示符号,SF1为负,SF0为正。 溢出标志OF:若本次运算结果有溢出,则OF=1,否则OF=1。 中断标志位IF:该标志用于控制可屏蔽的硬件中断。IF = 0,可接受中断;IF = 0中断被屏蔽,不能接受中断。该标志可用指令置1或置0(复位)。 方向标志位DF:该标志位用于指定字符串处理指令的步进方向。当DF = 1时,字符串处理指令以递减方式由高地址向低地址方向进行;当DF = 0时,字符串处理指令以递增方式,由低地址向高地址方向进行。该标志可用指令置位或清零。 单步标志位TF:TF = 1,表示控制CPU进人单步工作方式,此时,CPU每执行完一条指令就自动产生一次内部中断。单步中断用于程序调试过程中。5为达到下述目的,各应判定哪个标志位并说明其状态。(1)两数相减后比较大小;答:无符号数AB,判CF。AB时 CF0;AB时 CF1。有符号数AB,判SF和OF。AB时SFOF0;AB时:SFOF1。(2)比较两数是否相等;答:判ZF。当AB时,ZF1。(3)两数运算后是正数还是负数?答:对有符号数,判SF。当SF1时,结果为负数;当SF0时,结果为正数。(4)两数相加后是否产生溢出?答:对有符号数,判OF。当OF1时,结果产生溢出;当OF0,结果无溢出。6什么是逻辑地址?它由哪两部分组成?答:在8086系统中,16位的地址称为逻辑地址。包括了段内“偏移地址”和“段基址”。78086系统的存储器的逻辑地址和物理地址之间有什么关系?答:物理地址为20位,是由“段基址”和“偏移地址”组成,其关系为:物理地址段基址16偏移地址8“最小模式”和“最大模式”系统的主要区别是什么?各有什么主要特点?答:最小模式是指单机系统,即系统中只有8086/8088一个微处理器。在这种系统中,8086/8088CPU直接产生所有的总统控制信号。最大模式系统中包含有两个或多个处理器,可构成多机系统,其中一个为主处理器8086/8088 CPU。其它处理器称为协处理器,它们是协助主处理器进行工作的。在最大模式系统中,系统所需控制信号由总线控制器8288提供。两种模式的最主要区别体现在8086 CPU的部分管脚(2431引脚)具有不同的功能。98086系统中存储器为什么要分段?各逻辑段之间的关系如何?答:80868088系统中,可寻址的存储器空间达1M字节,要对整个存储器空间寻址,需要20位长的地址码,而CPU内部可以提供地址的寄存器及算术逻辑运算单元都是16位,其寻址范围为64K字节(16位地址)。因此在80868088系统中,把整个存储空间分成许多逻辑段,这些逻辑段容量不能超过64K字节。对任何一个存储单元,只要能得到它所在段的首地址和段内的相对地址(16位),就可对它进行访问。逻辑段的首地址可在整个存储空间内进行设置,各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠)。10在8086CPU中堆栈操作是字操作还是字节操作?已知SS=1050H,SP=0006H,AX=1234。若执行对AX的压栈操作后,则AX中的数据存放在何处?SP为什么值?答:堆栈操作是字操作。对AX压栈后,AX中的数据在10504H,10505H单元中,其中(10504H)34H,(10505H)12H,SP0004H。11已知当前数据段位于存储器的A1000H到B0FFFH范围内,DS段寄存器的内容是多少?答:DSA100H,为数据段的“段基址”。12若CS=234EH时,已知某一存储单元的物理地址为25432H。问若CS的内容被指定成1A31H时,该存储单元的物理地址应为什么?答:因为存储单元的物理地址是唯一的,当CS内容改变后,并不影响该存储单元的物理地址,故仍为:25432H。13在8086系统中为什么用地址锁存器?答:因8086CPU的引脚采用了分时复用的地址/数据和地址/状态总线,为保证形成稳定的系统地址总线,故需采用地址锁存器以产生系统地址总线。148086 CPU读/写总线周期各包含多少个时钟周期?什么情况下需要插入TW等待周期?应插入多少个TW,取决于什么因素?什么情况下会出现空闲状态TI ?答:读写总线周期最少各包含了四个时钟周期,如果配合工作的存储器或I/O端口由于本身速度或其它原因来不及在T3时钟周期送出所需信息,则插入TW。否则不需插入等待周期TW。在T3周期结束后可立即进入T4周期;习题四18086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。2若DS6000H,SS5000H,ES4000H,SI0100H,BX0300H,BP0400H,D1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,64H 答:寻址方式为直接寻址;PA60064H(2)MOV AX,NUM 答:寻址方式为直接寻址; PA60005H(3)MOV AX,SI 答:寻址方式为寄存器间接寻址;PA60100H(4)MOV AX,BX 答:寻址方式为寄存器间接寻址;PA60300H(5)MOV AX,BP 答:寻址方式为寄存器间接寻址;PA50400H(6)MOV AL,DI 答:寻址方式为寄存器间接寻址;PA61200H(7)MOV AL,BX1110H 答:寻址方式为寄存器相对寻址;PA61410H(8)MOV AX,NUMBX 答:寻址方式为寄存器相对寻址;PA60305H(9)MOV AX,BXSI 答:寻址方式为基址变址寻址;PA60400H(10)MOV AX,NUMBXDI 答:寻址方式为相对基址变址寻址;PA=61505H 3设BX637DH,SI2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。(1)直接寻址 答:有效地址为 EAC237H(2)用BX的寄存器间接寻址 答:有效地址为 EA637DH(3)用BX的相对寄存器间接寻址 答:有效地址为 EA125B4H(4)基址加变址寻址 答:有效地址为 EA8E18H(5)相对基址变址寻址 答:有效地址为 EA1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。4指出下列指令是否正确,若不正确情说明原因。(1) MOV DS, 2010H ;立即数不能传送到DS(2) PUSH AL ;栈操作,操作数类型必须为WORD类型 (3) MOV DX,SP ;SP寄存器不能做间址寄存器 (4) IN AL,0A00H ;I/O指令的直接寻址,地址只能为8位(5) XCHG CL,CH ;正确(6) SHR AX,3 ;移位超过一位时,应采用CL寄存器间址 (7) AAA CX ;非组合的BCD码加法调整AAA指令应为隐含操作数 (8) ADD BP+DI ;加法指令ADD,缺少源操作数(9) OUT DX,CL ;I/O指令操作数只能用AX、AL提供,端口地址可以是8位的直接地址或用DX间址(10)CBW BH ;符号扩展指令为隐含操作数(11)ADD 03ECH ;加法指令应为双操作数指令,立即数不能做目的操作数(12)MOV BX, SI+DI ;源操作数形式错误,SI和DI不能同时做为间址寄存器(13)MOV DI, AX ;AX不能做为间址寄存器 (14)OUT 258H, BX ;I/O指令格式错误,见(9)题的解释(15)SHL AX, 3 ;移位指令,位移位数大于1时,应用CL来指明 (16)MOV 64H,AL ;立即数不能做为目的操作数(17)ADD AL,6600H ;源、目的操作数的类型不一致(18)MOVBX,SI ;传送指令中,两个操作数不能同时为存储器操作数(19)XCHG AX,8800H;交换指令的操作数不能使用立即数(20)MOV AX,BXDX ;传送指令的源操作数,不能使用立即数(21)LEA BX,1000H;有效地址传送指令的源操作数不能为立即数,必须是存储器操作数(22)DIV 0010H ;正确(23)LEA DX,DI ;同(21)题,源操作数不能为寄存器操作数(24)MUL AX,200H ;乘法指令的目的操作数是隐含的,不能出现在指令中(25)MOV AX, BX+BP;传送指令中源操作数格式错,BX和BP不能同时为间址寄存器(26)CMP BX, SI ;比较指令的两个操作数不能同时为存储器操作数(27)OUT DX, BX ;I/O指令中,源操作数只能使用AL或AX寄存器(28)AND OFH,AL ;“与”指令中,目的操作数不能使用立即数(29)SAL BX,CX ;移位指令,移位位移不能用CX寄存器指明(30)JMP FAR BX+SI ;转移指令中转移的目标地址表达方式错误;如果是段内间接转移,应为:JMP WORD PTRBX+SI;如果是段间间接转移,应为:JMP DWORD PTRBX+SI(31)JNZ AAA;不相等转移指令中,符号地址(标识符)不能使用系统中的保留字(32)JMP NEXT ;正确(33)SBC AX, DX ;指令助记符错,源操作数表示方式错(34)MOV CS,DS;段寄存器之间不能传送数据,CS寄存器也不能做为目的操作数(35)ADD DS, AX ;加法指令中段寄存器不能做为操作数(36)MOV AL,CX ;源、目的操作数的类型不一致,见(17)题(37)INC BX ;没有指定存储器操作数类型(38)MOV CL,A8H;源操作数为16进制的立即数,16进制数以字母开头时应在前面加“0”(39)MOV ES,DS ;错同(34)题(40)IN AL,BX ;I/O指令端口地址表示错误,只能用8位立即数或DX间址5设一个字节数据X存放AL寄存器中,试说明下列程序的功能:XOR AH,AH ;AH清零SAL AX,1 ;AX左移一位,相当于2XMOV BX,AX ;2X送BX暂存MOV CL,2 SAL AX,CL ;AX左移二位,2X4=8XADD AX,BX ;2X+8X=10X该段程序实现了字节数据X乘10,结果在AX中。6试编程实现:(1)AL寄存器的低4位清0 (2)BL寄存器的低4位置1 (3)CL寄存器的低4位取反 (4)测试DL寄存器的最低2位是否同时为0,若是,将0送入BL寄存器;否则将1送入BL寄存器。; AL寄存器的低4位清0; BL寄存器的低4位置1; CL寄存器的低4位取反; 测试DL寄存器答:程序段如下 AND AL,0F0H OR BL,0FH XOR CL,0FH TEST DL,03H JZ NEXTMOV BL,1JMP NEXT1NEXT:MOV BL,0NEXT1:HLT7若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元中,得到的和存放在2000H开始的内存单元。试编程完成。 答:程序段如下 MOV AX,3000H ADD 2000H,AX MOV AX,3002H ADC 2002H,AX8设从2000H为首址的内存中,存放着10个带符号的字节数据,试编程完成:找出其中最大的数,并存入2000H单元。答:程序段如下 MOV BX,2000H MOV CX,9MOV AL,BX N2:INC BX CMP AL,BX JGE N1 MOV AL,BX N1:LOOP N2 MOV 2000H,AL HLT9用寄存器间接寻址方式时,BX、BP、SI、DI分别针对什么情况来使用?用这4个寄存器分别组合间接寻址时,物理地址是怎样计算的?举例说明。答:BX、SI、DI用于在数据段寻址,BP用于在堆栈段寻址。在数据段物理地址为:PADS10HBX/SI/DI 或者为:PADS10HBXSI 或(BXDI)在堆栈段物理地址为:PASS10HBP 或者为:PASS10HBPSI 或(BPDI) 举例如下:MOV AX,BXSI ;在数据段寻址,PADS10HBXSIMOV AX,BPDI ;在堆栈段寻址,PASS10HBPDI;答:执行完该条指令后 AX1400H;答:执行完该条指令后 AX0300H;答:执行完该条指令后 AX4C2AH;答:执行完该条指令后 AX3412H10已知:DS2000H,BX0300H,SI0002H,(20300H)12H,(20301)34H,(20302H)56H,(20303H)78H,(21400H)2AH,(21401H)4CH,(21402H)B7H,(21403H)65H试说明下列各条指令执行完后AX寄存器的内容。(1)MOV AX,1400H (2)MOV AX,BX (3)MOV AX,1400H (4)MOV AX,BX 11根据以下要求,试写出相应的汇编语言指令。(1)把BX寄存器和DX寄存器的内容相加,结果存入BX寄存器中。 答:指令为 ADD BX,DX(2)用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。 答:指令为 ADD AL,BXSI(3)用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX相加,并把结果存回存储器中。 答:指令为 ADD BX0B2H,CX(4)用位移量为0524H的直接寻址方式把存储器中的一个字与立即数3C5AH相加,并把结果送回该存储单元。 答:指令为 ADD 0524H,3C5AH12已知堆栈段寄存器SS的内容是0FF0AH,堆栈指针寄存器SP的内容是0008H,先执行两条把8057H和0F7CH分别进栈的PUSH指令,再执行一条POP BX指令。试画出堆栈区和SP的内容过程变化示意图(标出存储单元的物理地址)。答:将8057H和0F7CH分别进栈后,SP0004H,再执行一条POP BX指令后,SP0006H,BX0F7CH。堆栈区和SP的内容过程变化示意图如下:SP0006HSS0FF0AHSP SP0004HSP0008HSP SP 7 C H0 F H5 7 H8 0 HHHH7 C H0 F H5 7 H8 0 HHHH0FF0A0H0FF0A1H0FF0A2H0FF0A3H0FF0A4H0FF0A5H0FF0A6H0FF0A7H0FF0A8HH0FF0A9HH0FF0AAHH13字节扩展指令和字扩展指令用在什么场合?举例说明。答:用在除法运算中,对带符号数的被除数进行扩展;例如:当被除数在AX中,除数在BX中时CDWIDIV BX14写出执行以下计算的指令系列。其中X、Y、Z、R、W均为存放16位带符号数单元的地址。(1)Z W (ZX) 答:指令系列如下MOV AX,ZSUB AX,XADD AX,WMOV Z,AX(2)Z W (X6)(R9) 答:指令系列如下ADD X,6SUB R,9MOV AX,WSUB AX,XSUB AX,RMOV Z,AX(3)Z (WX)/(Y6),R 余数 答:指令系列如下MOV AX,WIMUL XMOV BX,YADD BX,6IDIV BXMOV R,DX(4)Z (WX)/ 5Y) 2 答:指令系列如下MOV AX,WSUB AX,XCDWIDIV 5IMUL YIMUL 2ADD DX,CFMOV Z,AX15写出完成以下操作的程序段。假设各变量的值均为用压缩BCD码表示的二位十进制数(1)U V(S6) 答:程序如下MOV AL,S SUB AL,6 DAS ADD AL,V DAA MOV U,AL(2)U (XW)(ZV) 答:程序如下MOV AL,ZSUB AL,VDASMOV BL,ALMOV AL,XADD AL,WDAASUB AL,BLDASMOV U,AL16移位指令和循环移位指令在执行操作时,有什么差别?在编制乘除法程序中,为什么常用移位指令来代替乘除法指令?试编制一个程序段,实现CX中的数除以4,结果仍放在CX中。答:逻辑移位指令用于无符号数的移位,左移时,最低位补0,右移时,最高位补0。算术移位指令用于对带符号数的移位,左移时,最低位补,右移时,最高位的符号在右移的同时,且保持。小循环移位指令ROL、ROR是只对目标操作数进行循环,即不含CF的左、右移循环移位。大循环移位指令RCL、RCR是把标志位CF也包含在循环中的左、右移循环移位。对于二进制数,左移一位相当于乘二,右移一位相当于除二,所以可以用移位指令来代替乘除法指令。 SAR CX,1 ;CX算术右移一位,除二 SAR CX,1 ;CX算术右移一位,除二17在0628H单元处有一条二字节指令JMP SHORT OBJ,如果其中位移量为: 27H; 6BH; 0C6H,试问转向地址处的值为多少?答:段内短转移的把当前的IP值(即JMP指令的下一条指令的地址)与指令指定的8位偏移量之和送到IP,使程序运行发生转移。指令中的OBJ是一个带符号的八位偏移量。当OBJ27H时,转移的目标地址值为:0651H当OBJ6BH时,转移的目标地址值为:0692H当OBJ0C6H时,转移的目标地址值为:05F0H18带参数的返回指令用在什么场合?设栈顶地址为4000H,当执行RET 0008H后,SP指针的值是多少?答:当调用程序为子程序提供一定的参数或参数的地址,这些参数是通过堆栈传递给子程序时;在子程序运行结束返回时,这些参数或参数地址已经没有在堆栈中保留的必要。因此,使用带参数的返回指令RET n,以便废弃一些CALL指令执行前入栈的参数。设栈顶地址为4000H,当执行RET 0008H后,执行SP SPn的操作,SP4008H。19假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数。请用比较指令和条件转移指令实现以下判断。(1)若DX的内容高于CX的内容,转去执行EXCEED。(2)若BX的内容大于AX的内容,转去执行EXCEED。(3)若CX的内容等于零,转去执行ZERO。(4)若BX的内容小于等于AX的内容,转去执行EXCEED。(5)若DX的内容低于等于CX的内容,转去执行EXCEED。答: CMP DX,CX JA EXCEED CMP BX,AX JG EXCEED CMP CX,0JZ ZERO CMP BX,AX JLE EXCEED CMP DX,CX JBE EXCEED20分析下列程序段:ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP SHORT L5如果AX和BX的内容(带符号数)给定如下:AX BX(1)B568H 54B7H(2)147BH 80DCH(3)D023H 9FD0H(4)42C8H 608DH(5)B568H 94B7H问该程序执行完后,程序转向哪里?答: AXBX没有产生溢出,程序转向L1 AXBX没有产生溢出,程序转向L1 AXBX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转向L5 AXBX产生溢出,无进位,程序转向L2 AXBX产生溢出,产生进位,执行减运算,产生借位,产生溢出,程序转向L5218086/8088用什么途径来更新CS和IP的值?答:出栈;转移;过程调用;中断。22设IP3D8FH,CS4050H,SP0F17CH。 当执行CALL 2000:0094H后,试指出IP、CS、SP、(SP1)、(SP2)、(SP3)和(SP4)的值。答:CS2000H,IP0094H;SP0F78H,(SP1) 3DH,(SP2)8FH,(SP3)40H,(SP3)50H23编写一段程序,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行。答:设字符串OLDS位于数据段,字符串NEWS位于扩展段,程序段如下: LEA SI,OLDS ;取源串首址送SILEA DI,NEWS ;取目的串首址送DICLD ;增址比较MOV CX,5 ;串长度为5REPE CMPSB ;相等重复串比较JNE NEW_LESS ;不相等转移HLT ;暂停 5CE5AH 34H5CE5BH 12H 5DC45H 6BH5DC46H 5AH当检测到READY引脚为低电平,则在T3周期结后不进入T4周期,而应插入一个TW周期。以后在每一个TW周期的上升沿都要检测READY引脚电平,只有检则到READY为高电平时,才在这个TW周期后进入T4周期。当BIU不访问存储器和外设时,总线时序出现空闲状态TI15.某程序数据段中存有两个数据字1234H和5A6BH,若已知DS=5AA0H,它们的偏移地址分别为245AH和3245H,试画出它们在储存器中的存放情况。答:它们在储存器中的存放情况见图:1680286 CPU的结构中比8086 CPU增加的部分有哪些?其主要用途是什么?答:8086CPU内部有BIU和EU两个独立部件并行工作,而80286 CPU内部有4个部件BU(总线单元)、IU(指令单元)、EU(执行单元)和AU(地址单元)并行工作,提高了吞吐量,加快了处理速度。其中IU是增加的部分,该单元取出BU的预取代码队列中的指令进行译码并放入已被译码的指令队列中,这就加快了指令的执行过程。习题四18086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。2若DS6000H,SS5000H,ES4000H,SI0100H,BX0300H,BP0400H,D1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,64H 答:寻址方式为直接寻址;PA60064H(2)MOV AX,NUM 答:寻址方式为直接寻址; PA60005H(3)MOV AX,SI 答:寻址方式为寄存器间接寻址;PA60100H(4)MOV AX,BX 答:寻址方式为寄存器间接寻址;PA60300H(5)MOV AX,BP 答:寻址方式为寄存器间接寻址;PA50400H(6)MOV AL,DI 答:寻址方式为寄存器间接寻址;PA61200H(7)MOV AL,BX1110H 答:寻址方式为寄存器相对寻址;PA61410H(8)MOV AX,NUMBX 答:寻址方式为寄存器相对寻址;PA60305H(9

温馨提示

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

评论

0/150

提交评论