微机原理课后答案 第03章 8086的指令系统
- 格式:ppt
- 大小:467.50 KB
- 文档页数:66
微机原理及应⽤(陈继红、徐晨)课后习题答案微机原理及应⽤(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址⽅式习题答案(部分)3.1总结计算机中⼗进制、⼆进制、⼋进制及⼗六进制数的书写形式。
123D、0AFH、77Q、1001110B分别表⽰什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表⽰⼗进制、⼗六进制、⼋进制、⼆进制。
3.2字长为8位、16位⼆进制数的原码、补码表⽰的最⼤数和最⼩数分别是什么?答案:8位原码表⽰的最⼤数:(27-1)、8位补码表⽰的最⼤数:(27-1)、8位原码表⽰的最⼩数:-(27-1)、8位补码表⽰的最⼩数-27。
16最⼩数:-215。
3.3答案:7DH。
(2)255(3)7248H。
(4)509013E2H。
3.4答案:240D0F0H。
128D80H。
(3)11111111⼗进制数:255D;⼗六进制数:0FFH。
(4)01010101⼗进制数:85D;⼗六进制数:55H。
3.5把下列⽆符号⼗六进制数分别转换为⼗进制数和⼆进制数。
(1)FF(2)ABCD(3)123(4)FFFF答案:(1)FF⼗进制数:255D;⼆进制数;11111111B。
1010101111001101B。
(3)123⼗进制数:291D;⼆进制数;000100100011B。
(4)FFFF⼗进制数:65535D;⼆进制数;1111111111111111B。
3.6分别⽤8位⼆进制数和16位⼆进制数写出下列⼗进制数的原码和补码。
(1)16(2)-16(3)+0(4)-0(5)127(6)-128(7)121(8)-9 答案:(1)16800010000(2)-16800010000(3)+0800000000(4)-0800000000(5)127801111111(6)-128810000000(7)1218:01111001;16位⼆进制数原码:0000000001111001补码:0000000001111001。
微机原理第3章8086指令系统8086是Intel公司推出的一种16位微处理器,是x86架构的第一代处理器。
8086指令系统是8086微处理器所支持的指令集合,本章将介绍8086指令系统的基本特性和指令编码格式。
8086指令系统采用变长指令编码格式,指令长度可以是1个字节到多个字节,提供了多种寻址方式和丰富的操作类型。
8086指令系统共支持256条标准指令,可以执行各种算术逻辑运算、数据传输和控制流操作。
8086指令由操作码和操作数组成。
操作码指示了执行的具体操作,操作数则是操作码所针对的数据。
8086指令系统提供了多种寻址方式,包括立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址和基址变址寻址等。
立即寻址是将常数或数据直接作为操作数,如MOVAX,1000H,表示将立即数1000H传送到AX寄存器。
直接寻址是通过指定一个内存单元的地址来作为操作数,如MOVAL,[BX],表示将BX寄存器指向的内存单元的内容传送到AL寄存器。
寄存器寻址是直接将一个寄存器作为操作数,如MOVAX,BX,表示将BX寄存器的内容传送到AX寄存器。
除了寻址方式,8086指令系统还提供了多种操作类型,如算术逻辑运算、数据传输和控制流操作等。
算术逻辑运算可以进行加、减、乘、除等数学运算,如ADD、SUB、MUL、DIV等指令。
数据传输可以进行数据的读取和存储操作,如MOV、PUSH、POP等指令。
控制流操作可以用于程序的跳转和条件判断,如JMP、JZ、JC等指令。
8086指令系统还支持多种数据类型的操作,包括字节、字和双字等。
字节操作是对8位数据进行操作,字操作是对16位数据进行操作,双字操作是对32位数据进行操作。
指令的操作数大小可以根据需要选择合适的寄存器或内存单元。
总之,8086指令系统是8086微处理器所支持的指令集合,提供了多种寻址方式和操作类型,支持多种数据类型的操作。
通过掌握8086指令系统,可以编写出高效、精确的8086汇编程序,实现各种功能和算法。
微机原理课后习题参考答案第1部分微型计算机基础知识1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器”。
微型计算机:简称“微型机”、“微机”,也称“微电脑”。
由大规模集成电路组成的、体积较小的电子计算机。
由微处理机(核心)、存储片、输入和输出片、系统总线等组成。
特点是体积小、灵活性大、价格便宜、使用方便。
微型计算机系统:简称“微机系统”。
由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。
配有操作系统、高级语言和多种工具性软件等。
1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。
1.3 微型计算机采用总线结构有什么优点?【解】①简化了系统结构,便于系统设计制造;②大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;③便于接口设计,所有与总线连接的设备均采用类似的接口;④便于系统的扩充、更新与灵活配置,易于实现系统的模块化;⑤便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;⑥便于故障诊断和维修,同时也降低了成本。
总线的逻辑电路有些是三态的,即输出电平有三种状态:逻辑“0”,逻辑“1”和“高阻”态。
1.4计算机总线有哪些,分别是什么?【解】总线按其信号线上传输的信息性质可分为三组:①数据总线,一般情况下是双向总线;②地址总线,单向总线,是微处理器或其他主设备发出的地址信号线;③ 控制总线,微处理器与存储器或接口等之间1.5 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线(DB)为双向结构,数据在CPU与存储器或I/O 接口之间的传送是双向的,(数据既可以读也可以写),其宽度通常与微处理器的字长相同。
《微机原理与接口技术》第3章作业答案1. 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。
操作码:要完成的操作。
操作数:参与操作的对象。
寻址:寻找操作数或操作数地址的过程。
寻址方式:指令中给出的找到操作数或操作数地址采用的方式。
8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。
其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O 端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。
2. 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量V AL 的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,V AL (5) MOV AX,[BX] (6) MOV AX,ES:[BX](7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10](10) MOV AX,V AL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,V AL[BX][SI]【解答】(1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,[1000H]直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H(4) MOV AX,V AL直接寻址,EA = [V AL] = 0050H,PA =(DS)×10H+EA = 2000H×10H+0050H = 20050H(5) MOV AX,[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H(6) MOV AX,ES:[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA = 2100H×10H+0100H = 21100H(7) MOV AX,[BP]寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA = 1500H×10H+0010H = 15010H(8) MOV AX,[SI]寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H(9) MOV AX,[BX+10]寄存器相对寻址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)×10H+EA = 2000H×10H+010AH = 2010AH(10)MOV AX,V AL[BX]寄存器相对寻址,EA =(BX)+[V AL]= 0100H+0050H= 0150H,PA =(DS)×10H+EA = 2000H×10H+0150H = 20150H(11)MOV AX,[BX][SI]基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H +01A0H = 201A0H(12)MOV AX,V AL[BX][SI]基址变址相对寻址,EA = (BX)+(SI)+[V AL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H +EA = 2000H×10H+01F0H = 201F0H3. 给定寄存器及存储单元的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。
8086第三章作业3-11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址(1)1000H 10000H-1FFFFH(2)1234H 12340H-2233FH(3)E000H E0000H-EFFFFH(4)AB00H AB000H-BAFFFH3-12对于下列CS:IP组合,计算出要执行的下条指令存储器地址。
(1)CS=1000H和IP=2000H 答:下条指令存储器地址:12000H(2)CS=2400H和IP=1A00H 答:下条指令存储器地址:25A00H(3)CS=1A00H和IP=B000H 答:下条指令存储器地址:25000H(4)CS=3456H和IP=ABCDH 答:下条指令存储器地址:3F12DH3-37 指出下列指令源操作数的寻址方式(1)MOV AX,1200H;立即数寻址(2)MOV BX,[1200H];直接寻址(3)MOV BX,[SI];变址寻址(4)MOV BX,[BX+SI+1200];相对基变址寻址(5)MOV [BX+SI],AL;寄存器寻址(6)ADD AX,[BX+DI+20H];相对基变址寻址(7)MUL BL ;寄存器寻址(8)JMP BX ;间接寻址(9)IN AL,DX ;寄存器间接寻址(10)INC WORD PTR[BP+50H] ;相对基址寻址小结:虽然对存储器的访问指令、输入/输出指令(IN指令和OUT指令)、跳转指令(JMP指令)都有直接寻址和间接寻址,但是形式是有很大差别的:1.直接寻址:(1)对于存储器的访问用方括号括起来的二进制数,如:MOV BX,[1200H](2)对于输入/输出指令(IN指令和OUT指令)用二进制数如:IN AX,8FH 又如: OUT 78H,AL(3)对于跳转指令(JMP指令)是以目标标号为直接地址的如: JMP ADDR12.间接寻址:(1)对于存储器的访问有分为基址寻址、变址寻址、基址加变址寻址以及带位移量的所谓相对基址寻址、相对变址寻址、相对基址加变址寻址如:MOV AX,[BP](2)对于输入/输出指令用DX做间接寻址寄存器如:IN AX,DX 又如: OUT DX,AL(3)跳转指令直接写明寄存器即可 (段内)如: JMP BX段间需组合:如: JMP DWORD PTR [BX+ADDR1]3-38指出8086/8088下列指令中存储器操作数地址的计数表达式。
第二章 8086 体系结构与80x86CPU1.8086CPU 由哪两部份构成?它们的主要功能是什么?答:8086CPU 由两部份组成:指令执行部件<EU,Execution Unit>和总线接口部件<BIU,Bus Interface Unit>。
指令执行部件〔EU 主要由算术逻辑运算单元<ALU>、标志寄存器F R、通用寄存器组和E U 控制器等4个部件组成,其主要功能是执行指令。
总线接口部件<BIU>主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或者I/O 端口读取操作数参加E U 运算或者存放运算结果等。
2.8086CPU 预取指令队列有什么好处? 8086CPU 内部的并行操作体现在哪里?答: 8086CPU 的预取指令队列由6个字节组成,按照8086CPU 的设计要求, 指令执行部件〔EU 在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在C PU 内部,EU 从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086 系统中物理地址的形成过程。
8086 系统中的物理地址最多有多少个?逻辑地址呢?答: 8086 系统中的物理地址是由20 根地址总线形成的。
8086 系统采用分段并附以地址偏移量办法形成20 位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部份构成,都是16 位二进制数。
通过一个20 位的地址加法器将这两个地址相加形成物理地址。
具体做法是16 位的段基址左移4位<相当于在段基址最低位后添4个"0">,然后与偏移地址相加获得物理地址。
微计算机原理(第2版)第三章课后习题答案解析讲课讲稿微计算机原理(第2版)第三章课后习题答案解析第三章 80x86 指令系统3-1 指令由操作码字段和操作数字段组成。
8086的指令长度在1~6字节范围。
3-2 分别指出下列指令中源操作数和目的操作数的寻址方式。
若是存储器寻址,使用表达式表示出EA=? PA=?(1) MOV SI, 2100H (2) MOV CX, DISP[BX] (3) MOV [SI], AX (4) ADC ZX, [BX][SI] (5) AND AX, DX (6) MOV AX,[BX+10H](7) MOV AX, ES:[BX] (8)MOV AX, [BX+SI+20H] (9) MOV [BP], CX (10) PUSH DS解:3-3 已知8086中一些寄存器的内容和一些存储器单元的内容如图3-1所示,试指出下列各条指令执行后,AX中的内容。
(1)MOV AX, 2010H (2) MOV AX, BX (3) MOV AX, [1200H](4)MOV AX, [BX] (5) MOV AX, 1100H[BX] (6) MOV AX, [BX][SI](7)MOV AX, 1100H[BX+SI] (8) MOVLEA AX, [SI]解:(1)(AX)=2010H (2)(AX)=0100H (3)(AX)=4C2AH (4)(AX)=3412H(5)(AX)=4C2AH (6)(AX)=7856H (7)(AX)=65B7H (8)(AX)=0002H图3-1 3-4 已知(AX)=2040H,(DX)=380H,端口(PORT)=(80H)=1FH,(PORT+1)=45H,执行下列指令后,指出结果等于多少?解:(1)OUT DX, AL (0380H)=40H(2)OUT DX, AX (380H)=40H (381h)=20H(3)IN AL, PORT (AL)=1FH(4)IN AX, 80H (AX)=451FH(5)OUT PORT1, AL (PORT1)=40H(6)OUT PORT1, AX (PORT1)=2040H3-5 已知:(SS)=0A2F0H,(SP)=00C0H,(AX)=8B31H,(CX)=0F213,试画出下列指令执行到位置1和位置2时堆栈区和SP指针内容的变化示意图。
一、选择题1、CPU执行算术运算指令不会影响的标志为是_D__。
A.溢出标志 B.符号标志C.零标志 D.方向标志2、TEST指令和__A__指令执行同样的操作,但不送回操作结果,仅影响标志位。
A.AND B.ORC.NOT D.XOR3、下列指令中,影响标志位的指令是__D____。
A.从寄存器取数指令 B.条件转移指令C.压栈指令 D.循环移位指令4、执行指令INC AX后,不受影响的标志为__B___。
A.ZF B.CF C.SF D.OF5、当无符号数运算产生溢出时,__D__标志位为1.A.SF B.ZF C.CF D.OF6、若用户堆栈位于存储区10000H-1FFFFH,则该堆栈的段地址是___D____。
A.10000H B.1FFFFH C.1000H D.0FFFFH7、使用直接寻址方式时,操作数总是在 C 中。
A.通用寄存器B. 堆栈C. 主存单元D. 段寄存器8、指令MOV AX,[BP+SI]指令源操作数的段地址是 C 。
A. CSB. DSC. SSD. ES9、假定(AX)=96H,(BX)=65H,依此执行ADD AX,BX指令和DAA指令后,(AL)=___C_。
A.0FBH B.01H C.61H D.0BH10、设AX=C544H,在执行指令ADD AH,AL后, C 。
A. CF=0,OF=0B. CF=0,OF=1C.CF=1,OF=0D. CF=1,OF=111、由379AH得到FFFFH,可采用的逻辑运算是 D 。
A.与 B.或C.求反 D.或、异或二、填空题1.若物理地址为2D0H,偏移量为0B0H,则段地址为___22H_____。
2.8086指令系统中有_逻辑_移位和_算术_移位两类,其中__SHL__和SAL两条指令属于不同的移位指令,但其功能完全相同。
3.串操作指令规定目的操作数使用___DI___寄存器,目的串必须在__附加_段中。
4.在8086中进行寄存器间接寻址时,可采用的寄存器有____BX____、_BP_____、__SI______和__DI______。
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086系统中物理地址的形成过程。
8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。
8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。
通过一个20位的地址加法器将这两个地址相加形成物理地址。
具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。
微机原理习题第一章绪论习题与答案1.把下列二进制数转换成十进制数、十六进制数及BCD码形式。
(1) 10110010B =(2) 01011101.101B =解:(1) 10110010B = 178D = B2H = (0001 0111 1000)BCD(2) 01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD2.把下列十进制数转换成二进制数。
(1) 100D =(2) 1000D =(3) 67.21D =解:(1)100D = 01100100B(2)1000D = 1111101000B(3) 67.21D = 1000011.0011B3.把下列十六进制数转换成十进制数、二进制数。
(1) 2B5H =(2) 4CD.A5H =解:(1) 2B5H = 693D = 0010 1011 0101B(2) 4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B4.计算下列各式。
(1) A7H+B8H =(2) E4H-A6H =解:(1) A7H+B8H = 15FH(2) E4H-A6H = 3EH5.写出下列十进制数的原码、反码和补码。
(1) +89(2) -37解:(1) [+89 ] 原码、反码和补码为: 01011001B(2) [-37] 原码 = 10100101 B[-37] 反码 = 11011010 B[-37] 补码 = 11011011 B6.求下列用二进制补码表示的十进制数(1)(01001101)补 =(2)(10110101)补 =解:(1)(01001101)补 = 77D(2)(10110101)补 = -75D7.请用8位二进制数写出下列字符带奇校验的ASCII码。
(1)C: 1000011(2)O: 1001111(3)M: 1001101(4)P: 1010000解:(1)C:0 1000011(2)O: 0 1001111(3)M:1 1001101(4)P: 1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。
第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。
微型计算机原理第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:(1)数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Index)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
&电子工业出版社&第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。
指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。
总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。
2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。
从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。
8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。
5.简述8086系统中物理地址的形成过程。
8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。
8086系统采用分段并附以地址偏移量办法形成20位的物理地址。
采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。
通过一个20位的地址加法器将这两个地址相加形成物理地址。
具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。
由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。
微机原理课后习题答案2.1 8086 CPU 在内部结构上由哪几部分组成?其功能是什么?【答】8086 的内部结构-成两部分:总线接口部件BIU,负责控制存储器读写。
执行部件EU,EU 从指令队列中取出指令并执行。
8086 是16 位微处理器,有16 根数据线、20 根地址线,内部寄存器、运算部件以及内部操作都是按16 位设计的。
2.2 8086 的总线接口部件有那几部分组成?【答】8086 的总线接口部件主要由下面几部分组成:4 个段寄存器CS/DS/ES/SS, 一个16 位的指令指针寄存器IP, 一个20 位地址加法器, 6 字节的指令队列,内部暂存器以及输入输出电路组成.2.3 8086 的执行部件有什么功能?由那几部分组成?【答】8086 的执行部件主要由下面几部分组成:(1)四个16 位通用寄存器AX、BX、CX、DX, 通用四个16 位专用寄存器,包括二个指针寄存器SP、BP, 二个变址寄存器SI、DI, 算术逻辑单元ALU,标志寄存器。
2.4 8086CPU 状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086 的状态标志和控制标志分别有哪些?【答】标志分两类:状态标志(6 位):反映刚刚完成的操作结果情况。
控制标志(3 位):在某些指令操作中起控制作用。
2.5 8086/8088 和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点? 8086CPU 执行转移指令时,指令队列寄存器内容如何变化?【答】传统的计算机一般按照取指令、指令译码/执行指令的步骤工作。
在8086/8088 中,指令的提取与执行分别由总线接口部件BIU 与执行部件EU 完成,8086/8088 可以在取指令同时又可以执行指令,这种并行工作方式有力的提高了CPU 的工作效率。
2.6 将两数相加,即0100 1100 加0110 0101,CF、PF、AF、ZF、SF、OF 各为何值?【答】0100 1100+0110 0101=10110001CF=0,PF=1,AF=1,ZF=0,SF=1,OF=12.7 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有20 位地址线的CPU,其最大物理地址为多少?【答】存储器的逻辑地址由段地址与段内偏移地址组成。