微机原理课后题答案第二章

合集下载

微机原理课后习题解答

微机原理课后习题解答

微机原理习题第一章绪论习题与答案1. 把下列二进制数转换成十进制数、十六进制数及BCD码形式;2 =解:2 = == 1001 0010 0101BCD2. 把下列十进制数转换成二进制数;1 100D =2 1000D =3 =解:1 100D = 01100100B3 =3. 把下列十六进制数转换成十进制数、二进制数;1 2B5H =2 =解:1 2B5H = 693D = 0010 1011 0101B2 = = 0100 1100 0101 B4. 计算下列各式;1 A7H+B8H =2 E4H-A6H =解:1 A7H+B8H = 15FH2 E4H-A6H = 3EH5. 写出下列十进制数的原码、反码和补码;1 +892 -37解:1 +89 原码、反码和补码为: 01011001B6.求下列用二进制补码表示的十进制数101001101补 =解:101001101补 = 77D7.请用8位二进制数写出下列字符带奇校验的ASCII码; 1C: 1000011 2O: 10011113M: 1001101 4P: 1010000解:1C:0 1000011 2O: 0 10011113M:1 1001101 4P: 1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码; 1+:0101011 2=: 01111013:0100011 4>: 0111110解:1+:0 0101011 2=: 1 01111013:1 0100011 4>: 1 01111109.叙述 CPU 中PC的作用;解:PC是CPU中的程序计数器,其作用是提供要执行指令的地址;第二章微处理器体系与结构习题与答案1. 8086/8088 CPU 由哪两大部分组成请分别叙述它们的功能;解:8086/8088 CPU均由两个独立的逻辑单元组成,一个称为总线接口单元BIUBus Interface Unit,另一个称为执行单元EUExecution Unit;总线接口单元BIU取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据;执行单元EU任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理;2. 8086/8088与传统的计算机相比在执行指令方面有什么不同这样的设计思想有什么优点解:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时 ,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列;这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令;即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的;这样大大提高了CPU利用率,降低了系统都对存储器速度的要求;3. 状态标志和控制标志有何不同8086/8088的状态标志和控制标志分别有哪些解:8086/8088 CPU设立了一个两字节的标志寄存器,共九个标志;其中标志位O、S、Z、A、P、C是反映前一次涉及ALU操作结果的状态标志,D、I、T是控制CPU 操作特征的控制标志;4. 8086/8088 CPU寻址存储器时,什么是物理地址逻辑地址它们之间有何关系解:8086/8088系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码;在CPU与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元;逻辑地址由段地址和偏移地址两部分组成;逻辑地址的表示格式为:段地址:偏移地址;知道了逻辑地址,可以求出它对应的物理地址:物理地址=段地址×10H+偏移地址;5. 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少指向这一物理地址的CS值和IP值是唯一的吗解:根据:物理地址=段地址×10H+偏移地址,指令的物理地址为21F00H;指向这一物理地址的CS值和IP值不唯一;6. 8086 CPU中信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分怎样区分解:若存取一个字节的数据,总是用一个总线周期来完成该操作;若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成;对规则字,只用一个总线周期来完成16位数据的传送,而对于非规则字则用相邻两个总线周期来完成该字的存储操作,先取其奇地址字节即数据的低位字节,然后存取偶地址字节;在组成存储系统时,总是偶地址单元的数据通过AD0~AD7传送,而奇地址单元的数据通过AD8~AD15传送,即通过总线高字节传送; 信号和A0信号控制存储器读写见下表:7.什么叫总线为什么各种微型计算机系统中普遍采用总线结构答:总线是模块与模块之间传送信息的一组公用信号线;总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行;因此微型计算机系统中普遍采用总线结构;8.微型计算机系统总线从功能上分为哪三类它们各自的功能是什么答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类;地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作;9.8086/8088 CPU 分为哪两个部分如何协调工作答:EU是执行部件,主要的功能是执行指令和形成有效地址;BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数;EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令;EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作;10.8086/8088 CPU的地址总线有多少位其寻址范围是多少答:8086/8088 CPU的地址总线共20 位,最大可寻址1MB空间;11.8086/8088 CPU使用的存储器为什么要分段怎么分段答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器如SP、IP以及BX、BP、SI、DI等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内;而实际上8086/8088有20条地址线,它的最大寻址空间为1MB;这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB;这样,一个20位的物理地址就可以用“16位段基址:16位偏移量”的形式称为逻辑地址来表示了,其中段地址存放在8086/8088的段寄存器中;12.8086/8088 CPU 中有几个通用寄存器有几个变址寄存器有几个指针寄存器通常哪几个寄存器亦可作为地址寄存器使用答:8086/8088 CPU 中共有:8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SI、DI 亦可作地址寄存器;13.Intel 8086与8088有何区别答:8086与8088的区别主要表现在以下几个方面:第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列;而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码;第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位;注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同;第三、其他不同的引脚定义:1AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8 改为A15~A8只作地址线用;234、28号引脚定义不同;14.8086/8088CPU工作在最小模式时:当CPU访问存储器时,要利用哪些信号当CPU访问外设接口时,要利用哪些信号答:8086/8088 CPU工作在最小模式时,若访问存储器,需用到以下信号:IOM/、ALE、RDT/、DEN、READY、BHE、W R、RD、AD0~AD15、A19/S6~A16/S3;若访问外设,需用到以下信号:IODT/、DEN、READY、W R、RD、AD0~AD15;M/、ALE、R15.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:11278H+3469H答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1254E3H-27A0H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=033881H+3597H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1401E3H-01E3H答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1其中,进位标志CF 用于判别无符号数运算是否超出数的表示范围,而溢出标志OF 用于判别带符号数运算是否超出数的表示范围;奇偶标志PF 只能判断结果低8 位中“1”的个数为奇数还是偶数;16.什么是逻辑地址什么是物理地址它们之间有什么联系各用在何处答:逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上;由于8086/8088CPU 中的寄存器只有16 位长,所以程序不能直接存放20 位的物理地址,而必须借助逻辑地址,即用两个16 位的寄存器来表示物理地址;他们之间的关系是:物理地址=段基址16+偏移量;另外,一个物理地址可对应多个逻辑地址;17.设现行数据段位于存储器0B0000H~0BFFFFH 单元,DS 段寄存器内容为多少答: DS 段寄存器内容为0B000H;18.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:0088H;偏移地址是指段内某个存储单元相对该段首地址的差值;物理地址是8086芯片引线送出的20位地址码,物理地址=段基址16+偏移地址,用来指出一个特定的存储单元;19.给定一个存放数据的内存单元的偏移地址是20C0H,DS=0C0E0H,求出该内存单元的物理地址;答:物理地址:0C2EC0H;20.8086/8088为什么采用地址/数据引线复用技术答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构;40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线;21.怎样确定8086的最大或最小工作模式答:引线MXMN引线接高电平,8086 MN的逻辑状态决定8086的工作模式,MX被设定为最小模式,MXMN引线接低电平,8086被设定为最大模式;22.8086基本总线周期是如何组成的答:基本总线周期由4个时钟CLK周期组成,按时间顺序定义为T1、T2、T3、T4;23.在基于8086的微计算机系统中,存储器是如何组织的存储器是如何与处理器总线连接的BHE信号起什么作用答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE信号;A0信号有效时允许访问偶体中的低字节存储单元,BHE信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问;24.有一个由20个字组成的数据区,其起始地址为610AH:1CE7H;试写出该数据区首末单元的实际地址PA;首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H+27H=62DAEH25.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H 和00135H,试画出它们的存储器示意图;地址00130H00132H00133H00134H00135H00136H26.试说明8086CPU答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线;第三章 80x86指令系统习题与答案1、指出下列指令中操作数的寻址方式8086系统;1 MOV AX,1002 MOV AX,1003 MOV DL,BP+SI4 MOV BX,CX5 MOV DX,SI6 MOV 1234HBX,DS7 MOV DI+5678H,AL 8 MOV 12BPDI,BH9 POP CX 10MOV AX,BX+SI+10解:2、指出下列指令中操作数的寻址方式80386系统;1 MOV EBX+12H,AX2 MOV EBP+EDI2,EBX3 MOV EBX4,BX4 MOV EDX,EAX+ESI8-12H解:3、指出以下指令中,哪些指令是非法的,并说明为什么8086系统;1 PUSH 1234H2 MOV CS,AX3 IN AX, 3004 MOV AX,DX+125 MOV BX,BX6 MOV DS,1000H7 XCHG AL,AL 8 MOV AL,100H9 MOV DX,AL 10LEA BL,BX+511LEA DX,BX 12MOV 1000H,12H13ADD AX,DS 14SUB 0100H,BYTE PTR 000115SHL BL,2 16SHR CL,CL17MUL AL,BL 18INT 400解:1非法,8086系统不允许PUSH指令的操作数为立即数;2非法,MOV指令中CS不能作为目的操作数;3非法,端口号大于0FFH;4非法,DX不能出现在中括号内;5合法;6非法,不能把立即数赋给段寄存器;7合法;8非法,源操作数大于0FFH,不能赋给8位寄存器AL;9非法,源操作数是8位寄存器,目的操作数却是16位寄存器,不匹配;10非法,LEA指令得到的是16位偏移量,但目的操作数是8位寄存器;11非法,LEA指令的源操作数只能是存储器操作数;12非法,指令存在歧义,无法确定传送的是字节还是字;13非法,段寄存器不能参与算术运算;14非法,源和目的寄存器不能同为存储器操作数;15非法,在8086系统中,移位次数大于1时需要将移位次数存放到CL中;16合法;17非法,在8086系统中MUL指令没有双操作数的用法;18非法,中断类型号大于0FFH;4、指出以下指令中,哪些指令是非法的,并说明为什么80386系统;1 MOV AX,12EBXSI162 RCR EAX,103 PUSH 5678H4 POP 1000H5 MOV EAX+EAX,EAX6 MOV AL,ESP+ESP27 MOV BL,AX+12 8 IMUL AL,BL,12解:1非法,比例因子只能是1、2、4、8,不能是16;2合法;3合法;4非法,POP指令的目的操作数不能是立即数;5合法;6非法,ESP只能作为基址寄存器,不能作为变址寄存器;7非法,在386系统中AX不能作为基址寄存器,也不能作为变址寄存器;8合法;5、假设AX=1234H,BX=5678H,SP=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容;PUSH AX ;AX=,BX=,SP=,栈顶字节SP=, 栈顶第二字节SP+1=PUSH BX ;AX=,BX=,SP=,栈顶字节SP=, 栈顶第二字节SP+1=POP AX ;AX=,BX=,SP=,栈顶字节SP=, 栈顶第二字节SP+1=解:AX=1234H,BX=5678H,SP=0FFEH,栈顶字节SP=34H,栈顶第二字节SP+1=12H AX=1234H,BX=5678H,SP=0FFCH,栈顶字节SP=78H,栈顶第二字节SP+1=56HAX=5678H,BX=5678H,SP=0FFEH,栈顶字节SP=34H,栈顶第二字节SP+1=12H6、假设A、B、C、D、X、Y为字节变量,AA、BB、YY为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题;1计算YY←A+BC,其中A、B、C都是无符号数;2计算AA+BB/C-D,商赋给X,余数赋给Y,其中AA、BB、C、D都是带符号数;3计算YY←A-BC,其中A、B、C都是未组合BCD码;解:1MOV AL,BMUL CADD AL,AADC AH,0MOV YY,AX2MOV AX,AAADD AX,BBMOV BL,CSUB BL,DIDIV BLMOV X,ALMOV Y,AH3MOV AL,ASUB AL,BAASMUL CAAMMOV YY, AX7、利用移位指令编写程序段,实现以下运算;1计算AX←AX10,其中AX为无符号数;232位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算DX,AX←DX,AX2;332位带符号数存放在寄存器DX和AX中,其中DX存放高16位,AX存放低16位计算DX,AX←DX,AX/2;解:1SHL AX,1MOV BX,AXSHL AX,1SHL AX,1ADD AX,BX2SAL AX,1RCL DX,13SAR DX,1RCR AX,18、指出以下指令执行后,标志寄存器OF、SF、ZF、AF、PF、CF的状态;1AL=0FFH,BL=20H,执行指令:ADD AL,BL2AL=01H, BL=02H,执行指令:CMP AL,BL3AL=0FFH,执行指令:INC AL4AL=0,执行指令:DEC AL5AL=0F0H,BL=04H,执行指令:IMUL BL6AX=1F0H,BL=08H,执行指令:DIV BL7AL=12H, BL=34H,执行指令:TEST AL,BL8AL=98H,执行指令:SAL AL,1解:注:0表示结果为0,1表示结果为1,×表示结果不变,—表示结果不确定;9、在8086系统下,编写实现如下功能的程序段:1从地址为80H的端口中读入一个字节;2如果该字节最高位为“1”,则将字节0FFH送到地址为81H的端口中,并退出程序;3如果该字节最高位为“0”,则转向第1步,继续循环扫描;解:参考程序段:AGAIN: IN AL, 80HTEST AL, 80HJZ AGAINMOV AL, 0FFHOUT 81H, AL10、我们知道,MOV指令并不能直接修改CS、IP的值,但事实上,我们还可以通过其他方法来达到修改CS、IP的目的;试编写一个程序段,使该程序段运行后,CS=0100H,IP=0000H;解:方法一、利用段间返回指令RETF:MOV AX,0100HPUSH AX ;段基址入栈MOV AX,0PUSH AX ;偏移量入栈RETF方法二、利用JMP指令实现段间跳转,假设ADDR为双字变量:MOV WORD PTR ADDR,0 ;WORD PTR ADDR←偏移量MOV WORD PTR ADDR+2, 0100H ;WORD PTR ADDR+2←段基址JMP DWORD PTR ADDR11.写出能完成下述操作的指令;1将立即数1234H 送至DS 寄存器;2将存储单元3000H 和内容送至4000H 单元;3将累加器AX 与寄存器CX 中的内容对调;答案:1MOV AX, 1234HMOV DS, AX2 MOV AX, 3000HMOV 4000H, AX3 XCHG AX, CX12.编程:将数据段中以BX 为偏移地址的连续4 单元的内容颠倒过来;答案:MOV AL, BXXCHG AL, BX+3MOV BX, ALMOV AL,BX+1XCHG AL, BX+2MOV BX+1, AL13.将AX 寄存器清零有4 种方法,试写出这4 条指令;答案:MOV AX, 00HSUB AX, AXAND AX, 00HXOR AX, AX14.使用一条逻辑运算指令实现下列要求:1使AL 高4 位不变,低4 位为0; 2使AL 最高位置1,后7 位不变; 3使AL 中的bit3、bit4 变反,其余位不变; 4测试判断CL 中的bit2、bit5、bit7 是否都为1;答案:1 AND AL, 0F0H2OR AL, 80H3XOR AL 18H4TEST AL, 0A4H15.试分析下面的程序段完成什么功能;MOV CL, 4SHL AX, CLSHL BL, CLMOV AL, BLSHR DH, CLOR AL, DH答案:将AX 中间8 位,BX 的低 4 位,DX 的高 4 位组成一个新字存放在AX 中;16.若要将源串100 个字节数据传送到目标串单元中去,设源串首址的偏移地址为2500H, 目标串首址的偏移地址为1400H,请编写程序实现以下功能; 1完成源串到目标串的搬移; 2比较两串是否完全相同,若两串相同,则BX 寄存器内容为0;若两串不同,则BX 指向源串中第一个不相同字节的地址,且该字节的内容保留在AL 的寄存器中;答案: 1 CLDMOV CX, 100MOV SI, 2500HMOV DI, 1400HREP MOVSB2 CLDMOV CX, 100MOV SI, 2500MOV DI, 1400REPE CMPSBJZ EDEC SIMOV BX, SIMOV AL, SIJMP STOPE: MOV BX, 0STOP: HLT17.设若标志寄存器原值为0A11H,SP=0060H,AL=4;下列几条指令执行后,标志寄存器、AX、SP的值分别是多少PUSHFLAHFXCHG AH,ALPUSH AXSAHFPOPF答:指令执行后标志寄存器的值为0411H,AX=0411H ,SP=005EH;18.假如在程序的括号中分别填入指令:1 LOOP L202 LOOPNE L203 LOOPE L20试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么BEGIN: MOV AX,01MOV BX,02MOV DX,03MOV CX,04L20: INC AXADD BX,AXSHR DX,1答案: 1AX= 5 BX= 16 CX= 0 DX= 02AX= 3 BX= 7 CX= 2 DX= 03AX= 2 BX= 4 CX= 3 DX= 119.变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列;答案:MOV AX, 0MOV AL, N1SUB AL, N2AASMOV DL, ALMOV AL, N1+1SBB AL, N2+1AASMOV DH, AL20.在已学的指令中,可实现累加器清0的单条指令有哪些比较它们的功能;答:1MOV AX,0 ;仅将累加器清0,不会影响任何标志位2SUB AX,AX ;累加器清0的同时影响所有状态标志,具体地有:ZF、PF置1,CF、AF、SF、OF均清03AND AX,0 ;将累加器清0,ZF、PF置1,CF、OF、SF清04XOR AX,AX ;将累加器清0,ZF、PF置1,CF、OF、SF清021.已知DS=2000H,有关的内存单元值为:21000H=00H,21001H=12H,21200H=00H,21201H=10H,23200H=20H,23201H=30H,23 400H=40H,23401H=30H,23600H=60H,23601H=30H,符号COUNT的偏移地址为1200H;执行下列指令后,寄存器AX、BX、SI的值分别是多少MOV BX,OFFSET COUNTMOV SI,BXMOV AX,COUNTSIBX答:执行结果为BX=1200H,SI=1000H,AX=3040H;22.设若内存单元DATA在数据段中偏移量为24C0H处,24C0H~24C3H单元中依次存放着55H、66H、77H、88H;下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少MOV AX,DATALEA SI,DATAMOV CL,SILDS BX,DATA答:执行结果为AX=6655H,BX=6655H,CL=55H,SI=24C0H,DS=8877H;23.若AX=26D3H,CX=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是多少CF=OF=SAL CH,1RCR AX,CLROL AL,1答:执行结果为AX=0A64CH,CX=0F208H,CF=OF=0;24.已知有程序段如下:MOV AL,35HMOV DL,ALAND DL,0FHAND AL,0F0HMOV CL,4SHR AL,CLMOV BL,10MUL BLADD AL,DL执行之后,AL的值等于多少该程序段完成了什么功能答:程序段执行后AL=23H;该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能;25.下面的程序执行后,DX、AX的值分别是多少;以X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321HLEA SI,XLEA DI,YMOV DX,SI+2MOV AX,XADD AX,XADC DX,SI+2CMP DX,DI+2JL L2CMP AX,YJL L1JMP EXITL1: MOV AX,1JMP EXITL2: MOV AX,2EXIT:……答:执行结果为AX=2,DX=0ACF0H;26.设VAR字单元的值为x,F1字单元的值为y,试编程按以下要求给y赋值:2 x>30y = 0 30≥x≥1-2 x<1答:一种可能的程序段实现如下:MOV AX,VAR ;AX xCMP AX,30JG PLUS2 ;x>30,则转PLUS2CMP AX,1JL MIN2 ;x<1,则转MIN2MOV F1,0 ;30≥x≥1,y=0JMP GOPLUS2:MOV F1,2 ;y=2JMP GOMIN2: MOV F1,-2 ;y = -2或00FEHGO:……;后续处理简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用;若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令;第四章 80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所分配的字节数8086系统; 1DATA1 DB 10,,‘A’2DATA2 DW 10 DUP2,3 DUP,13DATA3 DB ‘HELLO,WORLD’,‘$’4DATA4 DW DATA4解:13字节;2100字节;313字节;42字节;2、指出以下数据定义伪指令所分配的字节数80386系统; 1DATA1 DF 12,34,562DATA2 DF DATA23DATA3 DQ 0,10 DUP4DATA4 DT 0,1,2解:118字节;36字节; 388字节;430字节;3、指出以下指令中哪些是无效的,并说明原因;1ADDR DB $2DATA DB F0H,12H31_DATA DW 1234H4VAR DW VAR1 ;VAR1为一个字节变量5MOV AX,10-VAR1 ;VAR1为一个字变量6MOV BX,VAR22+1 ;VAR2为一个字变量解:1非法,地址计数器$是32位数;2非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;3非法,变量名非法,不能以数字开头;4合法;5非法,地址表达式不能是“常数-地址”;6非法,地址表达式不能出现乘法;4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP1,2,3DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址假设段基址为1234H;请指出以下指令执行后,相应的寄存器中的内容;1MOV AX,WORD PTR DATA1 ;AX=2MOV BX,DATA2 ;BX=3MOV CX,DATA2+2 ;CX=4MOV DX,OFFSET DATA2 ;DX=5MOV SI,SEG DATA1 ;SI=6MOV DI,LENGTH DATA1 ;DI=7MOV SP,TYPE DATA1 ;SP=8MOV BP,SIZE DATA2 ;BP=解:1AX=0201H;2BX=0100H;3CX=0120H;4DX=011EH;5SI=1234H;6DI=000AH;7SP=0001H;8BP=0002H;5、在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”; 解:参考程序:DATA SEGMENTMSG1 DB 'Input binary numberESC to exit:','$'MSG2 DB 0AH,0DH,'Input error',0AH,0DH,'$'DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入信息MOV CX, 8 ;输入8位二进制数MOV BL, 0L: MOV AH, 1INT 21HSHL BL, 1CMP AL, 1BH ;ESC键退出JZ DONECMP AL, '0' ;输入“0”JZ NEXTCMP AL, '1' ;输入“1”JNZ ERROR ;输入其他则出错INC BLNEXT: LOOP LOUTPUT 0AHOUTPUT 0DHPUSH BXMOV CL, 4SHR BL, CLCALL TRAN ;显示高4位对应的16进制数POP BXAND BL, 0FHCALL TRAN ;显示低4位对应的16进制数OUTPUT 'H'OUTPUT 0AHOUTPUT 0DHJMP AGAINERROR: LEA DX, MSG2MOV AH, 9INT 21HJMP AGAINDONE: RETMAIN ENDPTRAN PROC FARCMP BL, 0AHJB BELOWADD BL, 7BELOW: ADD BL, 30HOUTPUT BLRETTRAN ENDPCODE ENDSEND MAIN6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”; 解:参考程序:DATA SEGMENTMSG1 DB 'Input the first numberESC to exit:','$'MSG2 DB 'Input the second numberESC to exit:','$'MSG3 DB 0AH,0DH,'Input errorInput again:','$'DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN: MOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入第一个数CALL INPUT ;输入过程PUSH BXOUTPUT 0AHOUTPUT 0DHLEA DX, MSG2MOV AH, 9INT 21H ;提示输入第二个数CALL INPUT ;输入过程OUTPUT 0AHOUTPUT 0DHPOP AX ;实现两个4位组合BCD码相加ADD AL, BL ;低8位相加DAA ;校正MOV CL, AL ;保存至CLADC AH, BH ;高8位相加MOV AL, AH ;移至ALDAA ;校正MOV AH, ALMOV AL, CLMOV BX, AX ;最后结果放在BX中JNC NEXTOUTPUT '1' ;如果相加结果大于9999,则显示进位“1”NEXT: PUSH BXMOV CL, 4SHR BH, CLADD BH, 30HOUTPUT BH ;显示千位数POP BXPUSH BXAND BH, 0FHADD BH, 30HOUTPUT BH ;显示百位数POP BXPUSH BXMOV CL, 4SHR BL, CLADD BL, 30HOUTPUT BL ;显示十位数POP BXAND BL, 0FHADD BL, 30HOUTPUT BL ;显示个位数OUTPUT 0AHOUTPUT 0DHJMP AGAININPUT PROC FAR ;输入一个4位十进制数的过程BEGIN: MOV CX, 4MOV BX, 0L: SHL BX, 1SHL BX, 1SHL BX, 1SHL BX, 1 ;BX的值乘以16MOV AH, 1INT 21H ;输入CMP AL, 1BH ;ESC键退出JZ DONECMP AL, '0'JB ERROR ;非数字,出错CMP AL, '9'JA ERROR ;非数字,出错SUB AL, 30HXOR AH, AHADD BX, AX ;将输入加到BX中LOOP LRETERROR: LEA DX, MSG3MOV AH, 9INT 21HJMP BEGINDONE: MOV AH, 4CHINT 21HINPUT ENDPCODE ENDSEND MAIN7、在8086系统下,编写完整程序,实现两个32位带符号数相乘;假设被乘数存放在以字变量MUL1开始的连续4个字节中,乘数存放在以字变量MUL2开始的连续4个字节中中,相乘结果存放在以字变量RES开始的连续8个字节中;解:参考程序:DATA SEGMENTMUL1 DW 0FFFFH,0FFFFH ;被乘数MUL2 DW 5678H,1234H ;乘数RES DW 4 DUP0 ;结果DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV CX, MUL1MOV BP, MUL1+2MOV SI, MUL2MOV DI, MUL2+2TEST BP, 8000H ;被乘数是否为负数JZ NEXT1NOT BP ;为负数,则取反加1 NOT CXADD CX, 1ADC BP, 0NEXT1: TEST DI, 8000H ;乘数是否为负数JZ NEXT2NOT SI ;为负数,则取反加1 NOT DIADD SI, 1ADC DI, 0NEXT2: MOV AX, SI ;相乘过程MUL CXMOV RES, AXMOV AX, SIMUL BPADD RES+2, AXADC RES+4, DXMOV AX, DIMUL CXADD RES+2, AXADC RES+4, DXMOV AX, DIMUL BPADD RES+4, AXADC RES+6, DXMOV AX, MUL1+2XOR AX, MUL2+2 ;判断被乘数和乘数是否同号JNS DONE ;同号,则结果为正数,无须修改结果NOT RES ;不同号,则结果为负数,须取反加1 NOT RES+2NOT RES+4NOT RES+6ADD RES, 1ADC RES+2, 0ADC RES+6, 0DONE: RETMAIN ENDPCODE ENDSEND MAIN8、在8086系统下,编写完整程序,找出字节数组ARRAY中的最大值和最小值;假设ARRAY的长度为100个字节,每个字节为一个无符号数,程序执行后最大值将存放到字节变量MAX中,最小值则存放到字节变量MIN中;解:参考程序:DATA SEGMENTARRAY DB 100 DUP ;字节数组MAX DB ;最大值MIN DB ;最小值DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXLEA SI, ARRAYCLDMOV BH, 0 ;存放临时最大值的寄存器MOV BL, 0FFH ;存放临时最小值的寄存器MOV CX, 100AGAIN: LODSBCMP AL, BHJNA NEXT1MOV BH, AL ;如果当前数值比临时最大值大,则代替NEXT1: CMP AL, BLJNB NEXT2MOV BL, AL ;如果当前数值比临时最小值小,则代替NEXT2: LOOP AGAINMOV MAX, BHMOV MIN, BLRETMAIN ENDPCODE ENDSEND MAIN9、在8086系统下,编写完整程序,将字节数组ARRAY中的所有数据往高地址的方向移动一位,即原来存放在ARRAY中的字节移动到ARRAY+1中,原来存放在ARRAY+1中的字节移动到ARRAY+2中,……,依此类推;假设ARRAY的长度为100个字节; 解:可利用MOVSB指令实现移位,但应该注意,必须从串尾开始移动,因为假如直接从串头开始,将串头移到第二个数,那么第二个数将被覆盖;为使程序能从串尾开始移动,可令方向标志位DF=1;参考程序:DATA SEGMENTARRAY DB 100 DUP,DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, ARRAY+99 ;SI指向源串尾LEA DI, ARRAY+100 ;DI指向新串尾STD ;DF=1,串尾先移动MOV CX, 100REP MOVSB ;循环移动RETMAIN ENDPCODE ENDSEND MAIN10、在8086系统下,编写在长字符串L_STR中查找短字符串S_STR的完整程序,如果找到匹配的字符串,则将字节变量RES置0FFH,否则置0;例如,在字符串“ABABCD”中可找到字符串“ABC”,则RES=0FFH;解:参考程序:DATA SEGMENTL_STR DB 'ABDABABCD' ;长串L_LTH DW $-L_STR ;长串长度S_STR DB 'ABC' ;短串S_LTH DW $-S_STR ;短串长度RES DB ;存放结果DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, L_STRLEA DI, S_STRCLDMOV CX, L_LTHSUB CX, S_LTHINC CX ;作串比较的次数AGAIN: CALL COMP ;进行串比较INC SILOOP AGAINMOV RES, 0RETMAIN ENDPCOMP PROC FARPUSH CXPUSH SIPUSH DIMOV CX, S_LTHREPZ CMPSBJZ YES ;如果两个串相同,则说明找到POP DIPOP SIPOP CXRETYES: MOV RES, 0FFHMOV AH, 4CHINT 21HCOMP ENDPCODE ENDSEND MAIN11.执行下列指令后,AX寄存器中的内容是什么TABLE DW 10,20,30,40,50ENTRY DW 3..MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BX答:AX=4012.指出下列程序中的错误:STAKSG SEGMENTDB 100 DUPSTA_SG ENDSDTSEG SEGMENTDATA1 DBDTSEG ENDCDSEG SEGMENTMAIN PROC FARSTART: MOV DS,DATSEGMOV AL,34HADD AL,4FHMOV DATA,ALSTART ENDPCDSEG ENDSEND答案:改正后:。

微机原理及应用参考答案

微机原理及应用参考答案

名师整理优秀资源参考答案第一章计算机中的数制和码制第二章计算机概述一、填空题1.82.23. 10244. 25.5、11001.1、00100101.0101B5. 1000010B、42H、66H6. 41.625、29.AH7. 10001101B8. 11001001、110010109. -128 ~ +12710. 系统软件、应用软件11. 电子管、超大规模集成电路二、单选题1. A4. C2. C5.A 3.D 6. C三、分析简答题1. 8086 CPU 的总线根据其中信息传送的类型可分为几种?哪几种?答:8086 CPU 的总线根据其中信息传送的类型可分为三种种,分别是:数据总线、地址总线和控制总线2. 写出-25 的原码、反码、补码,并将补码转换成十六进制数 (设机器字长为8 位)。

答:X=-25=-11001BX 原码:10011001BX 反码:11100110BX 补码:11100111B = E7H名师整理 优秀资源 3. 举例说明什么是机器数,什么是真值?答: 将符号数值化了的数称为机器数。

如: -18=-10010B(真值);机器数为: 10010010B第三章 半导体存贮器一、填空题1. ROM 、RAM2. 6 个3. 8、4二、单选题1. A 5. C2 . B3 . D4 . B6 . C7 . B三、分析简答题1. 在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?答: ①全译码方式: 存储器芯片中的每一个存储单元对应一个唯一的地址。

译码需要的器件多;②部分译码方式:存储器芯片中的一个存储单元有多个地址。

译码简单;③线选:存储器芯片中的一个存储单元有多个地址。

地址有可能不连续。

不需要译码。

四、硬件接口设计题1. 答:(1)A10~08088CPUWEA10~0#CSY4WEA10~01#CS1Y5名师整理优秀资源(2) 存储器类型为RAM 总容量为4K×8地址范围: 0# 2000H-27FFH1# 2800H-2FFFH2. 答:(9 分)(1) 存储器类型:RAM该系统的存储器容量为:6K×8位(或:6K 字节)(2) 1#芯片的地址范围:1000H ~ 17FFH2#芯片的地址范围:0800H ~ 0FFFH3#芯片的地址范围:0000H ~ 07FFH3. 1)1K×42)2K×8或2KB3)地址分配范围第一组: A19~ A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最小地址最大地址第二组:0 ~0 ~0 ~0 ~111111111111111111110 00000H~1 003FFH0 00400H~1 007FFH第四章微型计算机及微处理器的结构和组成一、填空题1. BIU、EU、指令的译码和指令执行2. 4、16、16、6、20名师整理优秀资源3. 8、164.1、2二、单选题1 . B2 . B三、分析简答题1. 8086/8088 微处理器内部有那些寄存器,它们的主要作用是什么?答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。

微机原理与接口技术(第2版张颖超)第2章答案

微机原理与接口技术(第2版张颖超)第2章答案

练习题12.2-18086CPU在结构上由两个独立的处理单元和构成。

【解答】总线接口单元(BIU)执行单元(EU)2.2-2将62A0H和4321H相加,则AF=,SF=,ZF=,CF=,OF=,PF=。

【解答】AF=0;SF=1;ZF=0;CF=0;OF=0⊕1=1,PF=02.2-3设某台微处理器有20根地址总线,16根数据总线,若存储器寻址空间和I/O地址的寻址空间是分开的,则存储器空间大小为,经数据线一次可传送的带符号数的范围是。

【解答】1MB,-215~+215-12.2-4已知CS=1800H,IP=1500H,则指令所处的物理地址为,给定一个数据的有效地址是2359H,且DS=49B0H,该数据在内存中的实际物理地址为H。

【解答】19500H,19500H2.2-58086/8088段寄存器的功能是()。

A.用于计算有效地址B.执行各种数据传送操作C.用于存放段起始地址及计算物理地址【解答】C2.2-6微机的地址总线功能是()。

A.只用于选择存储器单元B.只用于选择进行信息传输的设备C.用于传送要访问的存储器单元或I/O端口的地址D.只用于选择I/O端口【解答】C2.2-7在堆栈段中,存放栈顶地址的寄存器是()。

A.IPB.SPC.BXD.BP【解答】B练习题22.3-18086中地址/数据线分时复用,为保证总线周期内地址稳定,应配置___________,为提高总线驱动能力,应配置__________。

【解答】地址锁存器(如74LS373)、数据收发器(如74LS245)2.3-28086最小组态下的总线控制信号由产生,最大组态下由产生。

【解答】CPU,总线控制器82882.3-38086有两种工作方式,当8086处于最小方式时,MN/MX接()。

A.+12VB.-12VC.+5VD.地【解答】C2.3-48086/8088CPU上INTR信号为()有效。

A.上升沿 B.下降沿 C.高电平 D.低电平【解答】C2.3-5下列说法中属于8086CPU最小工作模式特点的是()。

微机原理第2章课后答案

微机原理第2章课后答案

第2章8086微处理器及其系统教材习题解答1. 8086 CPU 由哪两部分构成,它们的主要功能是什么?在执行指令期间,EU 能直接访问存储器吗,为什么?【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。

执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。

寄存器用于存储操作数和中间结果;算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。

总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。

每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。

EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU 申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。

2. 8086CPU与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?【解】8086 CPU与传统的计算机相比增加了指令队列缓冲器,从而实现了执行部件(EU)与总线接口(BIU)部件的并行工作,因而提高了8086系统的效率。

3. 8086 CPU 中有哪些寄存器,各有什么用途?【解】8086共有8个16位的内部寄存器,分为两组:①通用数据寄存器。

四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。

用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。

AX(AH、AL)累加器。

有些指令约定以AX(或AL)为源或目的寄存器。

实际上大多数情况下,8086的所有通用寄存器均可充当累加器。

BX(BH、BL)基址寄存器。

微机原理王忠民版 课后答案

微机原理王忠民版 课后答案

部分习题答案第二章计算机中的数值与编码1、将十进制数转换为二进制与十六进制(1) 129、75=1000 0001、11B=81、CH(2) 218、8125=1101 1010、1101B=DA、DH(3) 15、625=1111、101B=F、AH(4) 47、15625=10 1111、0010 1B=2F、28 H2、将下列二进制数转换为十进制与十六进制(1) 111010 B=58 =3A H(2) 1011 1100、111B= 188、875= BC、E H(3) 0、1101 1B=0、84375 =0、D8H(4) 11110、01 B=30、25 =1E、4H3、完成下列二进制数的加减法运算(1) 1001、11+100、01=1110、00(2) 1101010110、1001-01100001、0011=01110101、0110(3) 00111101+10111011= (4) 01011101、0110-101101、1011=101111、10114、完成下列十六进制数的加减法运算(1) 745CH+56DFH=D14B H (2) ABF、8H-EF6、AH=9C28、E H(3) 12AB、F7+3CD、05=1678 、FC H(4) 6F01H-EFD8H=7F29 H5、计算下列表达式的值(1) 128、8125+10110101、1011B+1F、2H=101010101、1010B(2) 287、68-10101010、11H+8E、EH=103、CEH(3) 18、9+1010、1101B+12、6H-1011、1001=36、5256、选取字长n为8位与16位两种情况,求下列十进制数的补码。

(1) X=-33的补码: 1101 1111, 1111111111011111(2) Y=+33的补码: 0010 0001, 0000 0000 0010 0001(3) Z=-128的补码:1000 0000, 1111 1111 1000 0000(4) N=+127的补码:0111 1111, 0000 0000 0111 1111(5) A=-65的补码: 1011 1111, 1111 1111 1011 1111(6) B=+65的补码: 0100 0001, 0000 0000 0100 0001(7) C=-96的补码: 1010 0000, 1111 1111 1010 0000(8) D=+96的补码: 0110 0000, 0000 0000 0110 00007、写出下列用补码表示的二进制数的真值(1) [X]补=1000 0000 0000 0000 H X=-1000 0000 0000 0000 H=-32768(2) [Y]补=0000 0001 0000 0001 H Y=+0000 0001 0000 0001 H=+257(3) [Z]补=1111 1110 1010 0101 H Z=-0000 0001 0101 1011 H=-347(4) [A]补=0000 0010 0101 0111 H A=+0000 0010 0101 0111 H=+5998、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果就是否溢出。

微机原理第二章习题参考答案

微机原理第二章习题参考答案

微机原理第二章习题参考答案微机原理第二章作业参考答案:1.(2字节)a.指由8个二进制位组成的通用基本单元(6时钟周期)b.是cpu指令执行时间的刻度(10软件配置管理空间)c.cpu所要出访的存储单元数,与cpu地址总线条数有关(11实际地址)d.唯一能代表存储空间每个字节单元的地址,用5位16进制数表示(7总线周期)e.cpu执行访问存储器或i/o操作所花时间(12逻辑地址)f.由段基址和段偏转地址共同组成,均用4十一位16十进制则表示(4基本指令继续执行时间)g.指寄存器乘法指令继续执行所花掉时间(3指令)h.顺利完成操作方式的命令(1字长)i.指cpu在交换、加工、存放信息时信息位的基本长度(5指令执行时间)j.各条指令执行所花时间,不同指令值不一(8cache)k.为减轻cpu与主存储器间互换数据的速度瓶颈而建立的高速缓冲存储器(9虚拟存储器)l.cpu执行程序时看见的一个速度吻合内存却具有外存容量的假想存储器2.(1)mhz频率单位,可以用来表示cpu的主频1mhz=1000000hz(2)ghz频率单位,可以用来表示cpu的主频1ghz=1000000000hz(3)μs时间单位,可以用来表示基本指令执行时间1μs=10s(4)mips每秒百万条指令,用来表示基本指令执行速度(5)kb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1kb=2bytes(6)mb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1mb=2bytes(7)gb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1gb=2bytes(8)tb用以则表示存储器容量、软件配置管理空间或者存储空间的一种单位1tb=2bytes3.eu的共同组成部件:(3)alu(7)状态标志寄存器(9)掌控单元(12)通用寄存器组与biu的共同组成部件:(1)地址部件au(2)段界检查器(4)20十一位地址产生器(5)20十一位物理地址加法器(6)指令队列(8)总线掌控逻辑(10)段寄存器组(11)指令指针4.标志sf(b符号标志)cf(d位次标志)af(h辅助位次标志)df(i方向标志)tf(a陷阱标志)of(c外溢标志)pf(f奇偶标志)if(g中断容许标志)zf(e零标志)类型sssccsscs为0时则表示的状态两个带符号数运算结果就是正数两个并无符号数经alu运算后并无位次或者借位产生两个数运算时,两个高4十一位运算并无位次或者借位产生数据串成操作方式的增量地址为自动递减正常调试两个带符号数运算后没产生外溢运算结果数据高8位中二进制存有奇数个1中断屏蔽数据运算时结果不为零403020?6107.首地址pa=62d87h末地址pa=62d87h+28h(则表示40字节)-1h=62daeh8.实际地址:99a40h9.实际地址:3ba00h10填写下列个状态下的有效信号状态总线操作类型t1t2t3t4最小模式下总线存储器读操作最小模式下总线存储器写操作11.特点方式最小模式最大模式12.00130h:00131h:00135h:00136h:13.0dah31h7fh5ehmn/mx引脚高电平低电平处理器个数12个以上总线控制信号的产生8086828834h00230h:2dh00231h:0abh00232h:00233h:67h14.55h00330h:20h00331h:00332h:45h00333h:20h00334h:53h00335h:20h00336h:54h00337h:20h00338h:43h15.(1)ds:11a7es:11a7ss:21becs:31b8ds,es段顶:11a70hss段顶上:21be0hss段底:22ca8hcs段顶上:31b80hds,es段底:21a6fhcs段底:41b7fh(2)of=0df=0if=1sf=0zf=0zf=0pf=0cf=016.5ch20a28h:00h20a29h:7ah20a2ah:20a2bh:20a2ch:20a2dh:20a2eh:20a2fh:20a30h:20a31h:53h42h0ffh12h00h5bh0ah入栈完毕时,(ss)=20a0h(ip)=0028h17.8086系统中:(1)8284a时钟产生器的作用是:为8086cpu提供时钟,产生cpu所需的系统时钟信号(2)8282/8283地址锁存器的作用是:锁存8086地址总线中的信息(3)8286/8287总线收发器的作用是:传送8086数据总线中的信息(4)8288总线控制器的促进作用就是:在最小工作模式下产生8086系统所需的掌控信号18.8086寻址i/o端口时,使用16条地址线,可寻址32k个字端口,或64k个字节端口。

微机原理第二章习题答案

微机原理第二章习题答案

2.3 习 题 解 答1. 选择题:答案:(1)E (2)A (3)D (4)C2. 填空题:答案:a) EU ,16,BIU ,BIU ,20b) 20,4,状态c) 0FFFF0H ,ROM ,跳转d) 2,512K ,奇地址, BHEe) 64K ,16f) 逻辑地址g) 空闲h) 总线请求(输入)/总线请求允许(输出),G T /RQ 0 ,1G T /RQ3. 8086/8088 CPU 的地址总线有多少位?其寻址范围是多少?答:8086/8088 CPU 的地址总线共20位,最大可寻址1MB 空间。

4. 什么是总线?一般微计算机中有哪些总线?答:总线是微机系统之间、系统各模块之间或模块内部以及芯片内部各部分之间用来传送信息的公共信息通路,是计算机传送信息的一组导线,它将各部件连接成一个整体。

总线有多种分类方法,按总线在微机中所处位置的不同(或按总线上信息传送范围的不同)来看,微机中包括片内总线、片间总线、系统内总线和系统外总线四级总线。

5. 8086/8088 CPU 分为哪两个部分?各部分主要由什么组成?答:8086/8088 CPU 分为总线接口部件(BIU )和执行部件(EU)两个部分。

其中: BIU 包括:4个16位的段地址寄存器(CS 、DS 、SS 、ES);1个16位的指令指针寄存器IP ;1个20位的地址加法器;指令队列寄存器;内部寄存器;输入输出总线控制逻辑;EU 包括: 4个16位的通用数据寄存器(AX 、BX 、CX 、DX);4个16位的专用寄存器(BP 、SP 、SI 、DI);1个16位的标志寄存器FR ;6. 什么叫指令队列?8086/8088 CPU 中指令队列有什么作用?其长度分别是多少字节? 答:指令队列是用来暂存指令的一组寄存器,按“先进先出”原则读写。

在8086/8088 CPU 中,只要指令队列未填满,BIU 就从外部存储器取指令并放入指令队列中;另一方面,只要指令队列中不空,EU 就可将指令队列中已有的指令取出执行,这样BIU 和EU 按并行方式重叠操作,大大提高了CPU 的利用率,也降低了CPU 对存储器、I/O 端口存取速度的要求。

微机原理课后答案。第二章

微机原理课后答案。第二章

13.略。
8.略,见教材P37。
9.在某系统中,已知当前(SS)=2360H,(SP)=0800H,那么该堆栈段在存储器中的物理地址范围是什么?若往堆栈中存入20个字节数据,那么SP的内容为什么值?
答:(SS)×10H+(SP)=23600H+0800H=23E00H,堆栈段在存储器中的物理地址范围是23600H~23E00H。若往堆栈中存入20个字节数据,那么SP的内容为0800H-14H=07ECH。(20的十六进制为14H)。
10.已知当前数据段位于存储器的B4000H到C3FFFH范围内,则段寄存器DS的内容为多少?
答:段寄存器DS的内容为B4000H。
11.8086系统中为什么一定要有地址锁存器?需要锁存哪些信息?
答:由于8086CPU受芯片封装的限制,只有40个管脚,所以地址线和数据线只能采用复用的方式共同使用某些管脚。对存储器进行访问时,在读取数据或写入数据时,存储器芯片要求在这个过程中地址信息必须稳定提供给存储器,而由于8086CPU地址线和数据线是复用的,就不可能在同一时刻具有地址和数据的两种功能。这就需要在CPU提供地址信息时,将地址锁存起来,以保证下一个时刻当这些复用的管脚起着数据线的功能时,存储器有正确的地址信息。要锁存的信息包括这些复用管脚的地址和BHE等信号。
在8086系统的地址形成中,当段地址确定后,该段的寻址范围就已经确定,其容量不大于64KB。同时,通过修改段寄存器内容,可达到逻辑段在整个1MB存储空间中浮动。各个逻辑段之间可以紧密相连,可以中间有间隔,也可以相互重叠(部分重叠,甚至完全重叠)。采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。

微机原理第二章习题答案

微机原理第二章习题答案

《微处理器系统原理与嵌入式系统设计》第二章习题解答2.2 选择题(1) 下列无符号数中最小的数是( A )。

A.H(1,1011,0101)(01A5)B.B(3764)C.D(2590)D.O(2) 下列无符号数中最大的数是( B )。

A.B(10010101)B.O(227)C.H(96)D.D(143)(3) 在机器数( A )中,零的表示形式是唯一的。

A.补码B.原码C.补码和反码D.原码和反码(4) 定点8位字长的字,采用2的补码形式时,一个字所能表示的整数范围为( A )。

A.-128~+127 B.-127~+127C.-129~+128 D.-128~+128(5) 若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,那么采用偶校验的字符码是( D )。

A.B.C. D.(6) 单纯从理论出发,计算机的所有功能都可以交给硬件实现。

而事实上,硬件只实现比较简单的功能,复杂的功能则交给软件完成。

这样做的理由是( BCD )。

A.提高解题速度B.降低成本C.增强计算机的适应性,扩大应用面D.易于制造(7) 编译程序和解释程序相比,编译程序的优点是( D ),解释程序的优点是( C )。

A.编译过程(解释并执行过程)花费时间短B.占用内存少C.比较容易发现和排除源程序错误D.编译结果(目标程序)执行速度快(8) 计算机的存储器采用分级存储体系的主要目的是( D )。

A.便于读写数据B.减小机箱的体积C.便于系统升级D.解决存储容量、价格和存取速度之间的矛盾(9) 在多级存储体系中,cache-主存结构的作用是解决( D )问题。

A.主存容量不足B.主存与辅存速度不匹配C.辅存与CPU速度不匹配D.主存与CPU速度不匹配(10) 下列说法中正确的是( CD )。

A.虚拟存储器技术提高了计算机的速度B.cache与主存统一编址,cache的地址空间是主存地址空间的一部分C.主存是由易失性的随机读写存储器构成的D.cache的功能全部由硬件实现(11) 在CPU与外设之间设计接口电路的目的主要有( ABCD )。

微机原理课后题答案第二章

微机原理课后题答案第二章

微机原理课后题答案第二章第二章1. 8086CPU 内部由哪两部分组成?它们的主要功能是什么?答:8086CPU 内部由执行单元EU 和总线接口单元BIU 组成。

主要功能为:执行单元EU 负责执行指令。

它由算术逻辑单元(ALU)、通用寄存器组、16 位标志寄存器(FLAGS)、EU 控制电路等组成。

EU 在工作时直接从指令流队列中取指令代码,对其译码后产生完成指令所需要的控制信息。

数据在ALU 中进行运算,运算结果的特征保留在标志寄存器FLAGS 中。

总线接口单元BIU 负责CPU 与存储器和I/O 接口之间的信息传送。

它由段寄存器、指令指针寄存器、指令队列、地址加法器以及总线控制逻辑组成。

2. 8086CPU 中有哪些寄存器?各有什么用途?答:8086CPU 内部包含4 组16 位寄存器,分别是通用寄存器组、指针和变址寄存器、段寄存器、指令指针和标志位寄存器。

(1)通用寄存器组包含4 个16 位通用寄存器AX、BX、CX、DX,用以存放普通数据或地址,也有其特殊用途。

如AX(AL)用于输入输出指令、乘除法指令,BX 在间接寻址中作基址寄存器,CX 在串操作和循环指令中作计数器,DX 用于乘除法指令等。

(2)指针和变址寄存器BP、SP、SI 和DI,在间接寻址中用于存放基址和偏移地址。

(3)段寄存器CS、DS、SS、ES 存放代码段、数据段、堆栈段和附加段的段地址。

(4)指令指针寄存器IP 用来存放将要执行的下一条指令在现行代码段中的偏移地址。

(5)标志寄存器Flags 用来存放运算结果的特征。

3. 8086CPU 和8088CPU 的主要区别是什么?答:8088CPU 的内部结构及外部引脚功能与8086CPU 大部分相同,二者的主要不同之处如下:(1)8088 指令队列长度是4 个字节,8086 是6 个字节。

(2)8088 的BIU 内数据总线宽度是8 位,而EU 内数据总线宽度是16 位,这样对16 位数的存储器读/写操作需要两个读/写周期才能完成。

微机原理第2章习题与答案

微机原理第2章习题与答案

习题一、选择题1.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是_______。

A. SPB.CSC.IPD.BP答案:C2. 指令队列的作用是_________。

A.暂存操作数地址B.暂存操作数C.暂存指令地址D.暂存预取指令答案:D3. 8086/8088下列部件中与地址形成无关的是______。

A. ALUB. 通用寄存器C. 指针寄存器D. 段寄存器答案:A4.对于8086,下列说法错误的是_______。

A.段寄存器位于BIU中B.20位的物理地址是在EU部件中形成的C.复位后CS的初值为FFFFHD.指令队列的长度为6个字节答案:B5.8086/8088中ES、DI分别属于_______。

A. EU、BIUB. EU、EUC. BIU、BIUD. BIU、EU答案:D6.BIU与EU工作方式的正确说法是_______。

A. 并行但不同步工作B.同步工作C. 各自独立工作D. 指令队列满时异步工作,空时同步工作答案:A7.在执行转移、调用和返回指令时,指令队列中原有的内容_______。

A.自动清除B.用软件清除C.不改变D.自动清除或用软件清除答案:A8.下列说法中,正确的一条是______A. 8086/8088标志寄存器共有16位,每一位都有含义。

B. 8088/8086的数据总线都是16位。

C. 8086/8088的逻辑段不允许段的重叠和交叉D. 8086/8088的逻辑段空间最大为64KB,实际应用中可能小于64KB。

答案:D9.8086/8088工作于最大模式,是因为_____。

A.可以扩展存储容量B.可以扩大I/O空间C.可以构成多处理器系统D.可以提高CPU主频答案:C10.8088/8086最大模式比最小模式在结构上至少应增加_____。

A.中断优先级控制器B.总线控制器C.数据驱动器D.地址锁存器答案:B11.组成最大模式下的最小系统,除CPU、时钟电路,ROM,RAM及I/O接口外,至少需增加的芯片类型为______。

李伯成《微型计算机原理及应用》课后习题答案

李伯成《微型计算机原理及应用》课后习题答案

李伯成《微机原理》习题第一章本章作业参考书目:①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》机械工业出版社2002年2月第一版②陆一倩编《微型计算机原理及其应用(十六位微型机)》哈尔滨工业大学出版社1994年8月第四版③王永山等编《微型计算机原理与应用》西安电子科技大学出版社2000年9月1.1将下列二进制数转换成十进制数:X=10010110B=1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21=128D+0D+0D+16D+0D+0D+4D+2D=150DX=101101100B=1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20=256D+0D+64D+32D+0D+16D+4D+0D=364DX=1101101B=1*26+1*25+0*24+1*23+1*22+0*21 +1*20=64D+32D+0D+8D+4D+0D+1D=109D1.2 将下列二进制小数转换成十进制数:(1)X=0.00111B=0*2-1+0*2-2+1*2-3+1*2-4+1*2-5=0D+0D+0.125D+0.0625D+0.03125D=0.21875D(2) X=0.11011B=1*2-1+1*2-2+0*2-3+1*2-4+1*2-5=0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D(3) X=0.101101B=1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6=0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D1.3 将下列十进制整数转换成二进制数:(1)X=254D=11111110B(2)X=1039D=10000001111B(3)X=141D=10001101B1.4 将下列十进制小数转换成二进制数:(1)X=0.75D=0.11B(2) X=0.102 D=0.0001101B(3) X=0.6667D=0.101010101B1.5 将下列十进制数转换成二进制数(1) 100.25D= 0110 0100.01H(2) 680.75D= 0010 1010 1000.11B1.6 将下列二进制数转换成十进制数(1) X=1001101.1011B =77.6875D(2) X=111010.00101B= 58.15625D1.7 将下列二进制数转换成八进制数(1)X=101011101B=101’011’101B=535Q(2) X=1101111010010B=1’101’111’010’010B=15722Q(3) X=110B=6Q1.8 将下列八进制数转换成二进制数:(1)X=760Q=111'110'000B(2)X=32415Q=11'010'100'001'101B1.9 将下列二进制数转换成十六进制数:X=101 0101 1110 1101B= 5 5 E D HX= 1100110101'1001B= 11 0011 0101 1001B= 3 3 5 9HX= 1000110001B= 10 0011 0001 B= 2 3 1 H1.10 将下列十六进制数转换成二进制数:X= ABCH= 1010 1011 1100 BX=3A6F.FFH = 0011 1010 0110 1111.1111 1111BX= F1C3.4B =1111 0001 1100 0011 . 0100 1011B1.11 将下列二进制数转换成BCD码:(1) X= 1011011.101B= 1'011'011.101B= 91.625d=1001 0001.0110BCD(2) X=1010110.001B= 1’010’110.001 =126.1 BCD1.12 将下列十进制数转换成BCD码:(1)X=1024D=0001 0000 0010 0100 BCD(2)X=632 = 0110 0011 0010 BCD(3)X= 103 = 0001 0000 0011 BCD1.13 写出下列字符的ASCI I码:A 41H 65D 0100 0001B9 39H 47D* 2AH 42D= 3DH 45D!21H 33D1.14 若加上偶校验码,下列字符的ASCII码是什么?字符原码加上偶校验码之后B 42H,0100 0010B 42H,0100 0010B4 34H,0011 0100B B4H,1011 0100B7 37H,0011 0111B B7H,1011 0111B= 3DH,0011 1101B BDH,1011 1101B!21H,0010 0001B 21H,0010 0001B?3FH 0011 1111B 3FH,0011 1111B1.15 加上奇校验,上面的结果如何?字符原码加上奇校验码之后B 42H,0100 0010B C2H,1100 0010B4 34H,0011 0100B 34H,0011 0100B7 37H,0011 0111B 37H,0011 0111B= 3DH,0011 1101B 3DH,0011 1101B!21H,0010 0001B A1H,1010 0001B?3FH 0011 1111B BFH,1011 1111B1.16 计算下式:(1)[‘B’/2+ABH-11011001B]*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D(2) 3CH –[(84D)/(16Q)+’8’/8D]= 60D-[84D/14D+(56/8)]=60D-[13]D==47D1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码:(正数的反码与原码相同,负数的反码除符号位之外其余各位按位取反。

微机原理第二章习题答案

微机原理第二章习题答案

1. 8086CPU内部由哪两部分组成?它们的主要功能?8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。

EU完成指令译码和指令执行的工作,BIU是CPU与外部(存储器和I/O口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有的外部总线操作。

具有地址形成、取指令、指令排队、读/写操作数、总线控制等功能。

2.8080CPU中有哪些寄存器?各有什么用途?答:8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。

4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。

也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。

指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。

段寄存器给出相应逻辑段的首地址,称为“段基址”。

段基址与段内偏移地址结合形成20位物理地址。

指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。

16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。

3.8086CPU与8088CPU的主要区别是什么?答:(1)8086的指令队列是6字节,8088是4字节;(2)8088与外部交换数据的总线宽度是8位,所以,对16位数的存储器读/写需要2个总线周期,8086是16位;AD~(3)8088外部数据总线只有8条,所以分时复用的地址/数据总线为7AD;(4)8088中,用IO/M信号代替M/IO;(5)8088中,不需要BHE信号。

4. 简要解释下列名词的意义。

CPU:中央处理单元CPU (Control Processing Unit)也称微处理器,是微型计算机的核心部件,由运算器ALU、控制器、寄存器组以及总线接口等部件组成。

主要完成各种运算,负责对整机的控制。

微机原理及应用 第2章 习题及答案

微机原理及应用 第2章 习题及答案

CH02 8086/8088指令系统习题与思考题1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址是多少?(1)MOV AX,0ABH (2)MOV AX,[100H](3)MOV AX,V AL (4)MOV BX,[SI](5)MOV AL,V AL[BX] (6)MOV CL,[BX][SI](7)MOV V AL[SI],BX (8)MOV [BP][SI],100解答:(1)MOV AX,0ABH寻址方式:立即寻址;源操作数在数据线上;物理地址:无(2)MOV AX,[100H]寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+100H=2000H*16+100H=20100H(3)MOV AX,V AL寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+V AL=2000H*16+0050H=20050H(4)MOV BX,[SI]寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=2000H*16+00A0H=200A0H(5)MOV AL,V AL[BX]寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+V AL+BX=2000H*16+0050H+0100=20150H(6)MOV CL,[BX][SI]寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=2000H*16+0100H+00A0H=201A0H(7)MOV V AL[SI],BX寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无(8)MOV [BP][SI],100寻址方式:立即寻址;源操作数在;物理地址:无2.设有关寄存器及存储单元的内容如下:DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH,[21201H]=4CH,[21202H]=0B7H,[21203H]=65H。

西南交大 微机原理及应用 第二章 答案

西南交大 微机原理及应用  第二章  答案

微机原理第二章习题答案2-1.解释下列概念:(1)分时复用总线——不同的时刻通过相同的总线引脚传送不同的信息(2)逻辑地址——程序员在程序中使用的地址。

(3)物理地址——又称实际地址PA,是CPU和存储器进行数据交换时所采用的地址。

(4)字地址——如果存放16位的字数据,则需要占用连续的两个单元,其中数据的高8位存放在地址较大的单元,低8位存储在地址较小的单元,并以该单元的值作为该子数据的字地址。

(5)字节地址——8086系统地址总线有20条,内存空间都按字节组织,每个内存单元存储一个字节的数据,并具有一个唯一的20位地址编号,称为字节地址。

(6)规则字——对于16位字数据,若其字地址为偶数,即从地址为偶数的单元开始存放,则称该字数据为规则字。

(7)非规则字——若其字地址为奇数,即从地址为奇数的单元开始存放,则称该字数据为非规则字。

(8)指令周期——执行一条指令所需要的时间称为指令周期。

总线周期——CPU每占用一次系统总线,进行信息的输入输出所需要的时间就成为总线周期。

时钟周期——2-2. 简述8086/8088采用的重叠解释方式对指令和程序的解释过程及其特点。

在8086系统中,为了加快程序的执行速度,采用了重叠解释方式,各条指令的解释过程是重叠进行的。

每条指令的解释过程也包括取指令和执行指令两个阶段,但是相邻两条指令的解释过程有一部分是同时进行的。

在执行一条指令时,可以同时取出下一条指令。

在当前指令执行完毕后,就可以立即制行下一条指令。

这种重叠解释方式大大加快了程序的执行速度。

2-3.简述8086CPU内部组成以及EU和BIU的作用。

8086微处理器内部配分为两个独立的功能部件:执行部件EU和总线接口部件BIU。

执行部件由通用寄存器、标志寄存器、算术逻辑单元和EU控制系统等组成,专门负责指令的执行,即从指令队列缓冲器中获得指令,然后执行该指令,完成指令规定的操作。

总线接口部件由段寄存器、指令指针、地址形成逻辑、总线控制逻辑和指令队列缓冲器等组成。

(完整word版)第二章8086习题答案

(完整word版)第二章8086习题答案

微机原理第二章习题与分析解答1.单项选择题(1)8086工作最大方式时应将引脚MN/MX接()A.负电源 B.正电源 C.地 D.浮空分析:8086规定工作在最小方式下MN/MX接+5V,工作在最大方式下MN/MX 接地。

答案:C(2)8086能寻址内存储器的最大地址范围为()A.64KB B.1MB C.16MB D.16KB分析:8086有A0~A1920条地址总线,220=1MB。

答案:B(3)在总线周期,8086CPU与外设需交换()A.地址信息 B.数据信息 C.控制信息 D.A、B、C分析在总线周期,CPU必须发出地址信息的控制信息以后,才能实现与外设进行交换数据。

答案:D(4)8086用哪种引脚信号来确定是访问内存还是访问外设()A.RD B.WR C.M/IO D.INTA分析:引脚信号M/IO是Memory or Input Output的缩写,当M/IO=0时,用以访问外设;当M/IO=1,用以访问外设。

答案:C(5)在8086指令系统中,下列哪种寻址方式不能表示存储器操作数()A.基址变址寻址B.寄存器寻址C.直接寻址D.寄存器间接寻址分析:8086指令系统共有七种寻址方式,只有立即寻址方式和寄存器寻址方式不是表示存储器操作数的。

答案:B(6)当CPU时钟频率为5MHz,则其总线周期()A.0.8 s B.500ns C.200ns D.200μs分析:时钟周期T=1/ƒ=200ns,而一个总路线周期通常由4个T状态组成,有4╳T=4╳200ns=0.8μs.答案:A(7)8086工作在最大方式下,总路线控制器使用芯片()A.8282 B.8286 C.8284 D.8288分析:在最大方式下,系统中主要控制信号是由总路线控制器产生,而只有芯片8288才有这方面的功能。

答案:D(8)取指令物理地址=()A.(DS)╳10H+偏移地址 B.(ES)╳10H+偏移地址C.(SS)╳10H+(SP) D.(CS)╳10H+(IP)分析:每当8086CPU取指令时,总是根据CS:IP的所指的存贮单元去取指令。

微机原理课后详细答案 徐惠民版

微机原理课后详细答案      徐惠民版
C.数据总线位数不同D.单处理器与多处理器的不同
2-13.PC机中地址总线的作用是( C ).
A.用于选择存储器单元B.用于选择进行信息传输的设备
C.用于给存储器单元和I/O设备接口电路的选择地址
D.以上都不正确
2-14.设当前SS=C000H,SP=2000H,AX=2355H,BX=2122H,CX=8788H,则
成;存储器是用来存储数据,程序的部件;I/O接口是微型计算机的重要组成部件,在CPU
和外设之间起适配作用.
1-2.CPU执行指令的工作过程.
答:
取指令,执行指令.
指令执行的基本过程:
(1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令
存放在存储器的哪个单元.
(2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令.存储器根
1111101.11B,十进制:125.75,十六进制:7D.CH
1-7.(5487)10=( 0101010010000111)BCD= 1010101101111 B
1-8.设字长为8位,请写出下列数的原码,反码,补码和移码:
15,-20,-27/32
答:
[+15]原=00001111,[+15]反=00001111,[+15]补=00001111,[+15]移=10001111
而CPU内部的寄存器都是16位,因此需要由一个附加的机构来计算出20位的物理地址,这
个机构就是20位的地址加法器.
2-3.据8086 CPU的结构,简述程序的执行过程.
答:
设程序的指令代码已存放在存贮器中.为执行程序,CPU按照时钟节拍,产生一系列控
制信号,有规则地重复进行以下过程.

微机原理第二章课后答案

微机原理第二章课后答案

微机原理第二章课后答案
1、8086处理器内部一般包括哪些主要部分?
答:8086处理器与其他处理器一样,其内部有算术逻辑部件、控制与定时部件、总线与总线接口部件、寄存器阵列等。

按功能结构可分为两部分,即总线接口单元(BIU)与执行单元(EU)。

BIU主要包括段寄存器、内部通信寄存器、指令指针、6字节指令队列、20位地址加法器和总线控制逻辑电路。

EU主要包括通用寄存器阵列、算术逻辑单元、控制与定时部件等。

2、什么是总线?一般微机中有哪些总线?
答:所谓总线是指电脑中传送信息的一组通信导线,它将各个部件连接成一个整体。

在微处理器内部各单元之间传送信息的总线称为片内总线;在微处理器多个外部部件之间传送信息的总线称为片外总线或外部总线。

外部总线又分为地址总线、数据总线和控制总线。

随着电脑技术的发展,总线的概念越来越重要。

微机中常用的系统总线有PC总线、ISA总线、PCI总线等。

3、什么是堆栈花有什么用途?堆栈指针的作用是什么?
堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。

堆栈的作用是:当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。

堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。

假设是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP
的值减少。

但SP始终指向栈顶。

微机原理课后习题答案第二章微处理器和指令系统习题答案

微机原理课后习题答案第二章微处理器和指令系统习题答案

2.9如果GDT寄存器值为0013000000FFH,装人LDTR的选择符为0040H,试问装人描述符高速缓存的LDT描述符的起始地址是多少?解:GDT寄存器的高32位和低16位分别为GDT的基址和段限,所以:GDT的基址=00130000HLDTR选择符的高13位D15~D3=000000001000B是该LDT描述符在GDT中的序号,所以:LDT描述符的起始地址= GDT的基址十LDT描述符相对于GDT基址的偏移值=00130000H+8×8=00130040H2.10假定80486工作在实模式下,(DS)=1000H, (SS)=2000H, ( SI ) = El07FH, ( BX )=0040H, (BP) = 0016H,变量TABLE的偏移地址为0100H。

请间下列指令的源操作数字段是什么寻址方式?它的有效地址(EA)和物理地址(PA)分别是多少?(1)MOV AX,[1234H ] (2) MOV AX, TABLE(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BPI[SI]解:(1)直接寻址,EA=1234H , PA =(DS)×16+EA=11234H。

(2)直接寻址,EA= O100H,PA= (DS)×16+EA=10100H。

(3)基址寻址,EA=( EBX)+100H =0140H,PA= (DS) × 16+EA=10140H。

(4)带位移的荃址加变址寻址。

(EA)= (BP)+[SI]十TABLE的偏移地址=0195H PA=(SS)×16+EA=20195H}2.11下列指令的源操作数字段是什么寻址方式?(1)MOV EAX , EBX (2)MOV EAX,[ ECX] [EBX ](3) MOV EAX,[ESI][EDX * 2] (4)MOV EAx,[ ESI*8]解:(1)寄存器寻址。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章1. 8086CPU 内部由哪两部分组成?它们的主要功能是什么?答:8086CPU 内部由执行单元EU 和总线接口单元BIU 组成。

主要功能为:执行单元EU 负责执行指令。

它由算术逻辑单元(ALU)、通用寄存器组、16 位标志寄存器(FLAGS)、EU 控制电路等组成。

EU 在工作时直接从指令流队列中取指令代码,对其译码后产生完成指令所需要的控制信息。

数据在ALU 中进行运算,运算结果的特征保留在标志寄存器FLAGS 中。

总线接口单元BIU 负责CPU 与存储器和I/O 接口之间的信息传送。

它由段寄存器、指令指针寄存器、指令队列、地址加法器以及总线控制逻辑组成。

2. 8086CPU 中有哪些寄存器?各有什么用途?答:8086CPU 内部包含4 组16 位寄存器,分别是通用寄存器组、指针和变址寄存器、段寄存器、指令指针和标志位寄存器。

(1)通用寄存器组包含4 个16 位通用寄存器AX、BX、CX、DX,用以存放普通数据或地址,也有其特殊用途。

如AX(AL)用于输入输出指令、乘除法指令,BX 在间接寻址中作基址寄存器,CX 在串操作和循环指令中作计数器,DX 用于乘除法指令等。

(2)指针和变址寄存器BP、SP、SI 和DI,在间接寻址中用于存放基址和偏移地址。

(3)段寄存器CS、DS、SS、ES 存放代码段、数据段、堆栈段和附加段的段地址。

(4)指令指针寄存器IP 用来存放将要执行的下一条指令在现行代码段中的偏移地址。

(5)标志寄存器Flags 用来存放运算结果的特征。

3. 8086CPU 和8088CPU 的主要区别是什么?答:8088CPU 的内部结构及外部引脚功能与8086CPU 大部分相同,二者的主要不同之处如下:(1)8088 指令队列长度是4 个字节,8086 是6 个字节。

(2)8088 的BIU 内数据总线宽度是8 位,而EU 内数据总线宽度是16 位,这样对16 位数的存储器读/写操作需要两个读/写周期才能完成。

8086 的BIU 和EU 内数据总线宽度都是16 位。

(3)8088 外部数据总线只有8 条AD7~AD0,即内部是16 位,对外是8 位,故8088 也称为准16 位机。

(4)8088 中,用IO/M信号代替M/IO信号。

(5)8088 中,只能进行8位数据传输,BHE不再需要,改为SS0,与DT/R 和IO/M一起决定最小模式中的总线周期操作。

4. 简要解释下列名词的意义:CPU,存储器,堆栈,IP,SP,BP,段寄存器,状态标志,控制标志,物理地址,逻辑地址,机器语言,汇编语言,指令,内部总线,系统总线。

答:CPU:中央处理器,是整个计算机系统的控制中心,主要功能是进行算术和逻辑运算,以及发出各种控制信号以协调整个系统正常工作。

存储器:是计算机系统中的记忆元件,用于存储指令和数据。

堆栈:在存储器中开辟的一个区域,用来存放需要暂时保存的数据。

其操作特点是先进后出。

IP:指令指针寄存器,用来存放将要执行的下一条指令在现行代码段中的偏移地址。

SP:堆栈指针寄存器,用于指向当前栈顶单元。

BP:基址指针,间接寻址中用于存放基址,隐含段地址为SS。

段寄存器:用于存放逻辑段的段地址。

状态标志:SF、ZF、OF、AF、PF 和CF,反映运算结果的状态特征。

控制标志:IF、DF 和TF,对可屏蔽中断、字符串操作指针变换方向和单步运行起控制作用。

物理地址:指存储器中存储单元的实际地址编码,是一种绝对地址,是CPU 访问存储器的实际寻址地址,对于8086 系统,地址范围为00000H~FFFFFH。

逻辑地址:由段基址和偏移地址组成,均为无符号的16 位二进制数,程序设计时采用逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址×16+偏移地址。

机器语言:直接用二进制代码指令表达的计算机语言,指令是用0 和1 组成的一串代码,计算机可以直接识别,不需要进行任何翻译。

每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言,是第一代计算机语言。

汇编语言:使用助记符表示的二进制代码指令语言,是一种符号化的机器语言,必须经编译程序将汇编语言编译成机器语言,计算机才能识别。

指令:能被计算机识别并执行的二进制代码,规定了计算机能完成的某一操作。

内部总线:微处理器内部各个部件之间传送信息的通道。

系统总线:微处理机机箱内的底板总线,用来连接构成微处理机的各个插件板,如ISA总线、EISA 总线、PCI 总线等。

5. 要完成下述运算或控制,用什么标志位判别?其值是什么?(1)比较两数是否相等(2)两数运算后结果是正数还是负数(3)两数相加后是否溢出(4)采用偶校验方式,判定是否要补1(5)两数相减后比较大小(6)中断信号能否允许答:(1)ZF,两数相减,若ZF=1,则相等。

(2)SF,SF=1 则为负,否则为正(3)对有符号数:OF,OF=1 为溢出;对无符号数:CF,CF=1 为溢出(4)PF,PF=1,不补1(5)对有符号数:无溢出时(OF=0),如ZF=1,则两数相等;如ZF=0 且SF=0,则被减数大;如ZF=0 且SF=1,则减数大;有溢出时(OF=1),如SF=1,则被减数大;如SF=0,则减数大;对无符号数:如ZF=1,则两数相等;如CF=0,则被减数大;如CF=1,则减数大(6)IF,IF=1,允许中断6. 8086 系统中存储器采用什么结构?用什么信号来选中存储体?答:8086 系统中,存储器采用分体结构,1MB 的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512KB。

使用A0 和BHE 来区分两个存储体。

当A0=0 时,选中偶地址存储体,与数据总线低8位相连,从低8 位数据总线读/写一个字节。

当BHE =0 时,选中奇地址存储体,与数据总线高8 位相连,从高8 位数据总线读/写一个字节。

当A0=0,BHE =0 时,同时选中两个存储体,读/写一个字。

7. 用伪指令DB 在存储器中存储ASCII 码字符串“What time is it?”。

并画出内存分布图。

答:STR DB …What time is it?‟,‟$‟…W‟…h‟…a‟…t‟… ……t‟…i‟…m‟…e‟… ……i‟…s‟… ……i‟…t‟…?‟…$‟8. 用伪指令将下列16 位二进制数存储在存储器中,并画出内存分布图。

(1)1234H (2)A122H (3)B100H答:NUM DW 1234H,A122H,B100H34H12H22HA1H00HB1HSTRNUM9. 段寄存器装入如下数据,写出每段的起始和结束地址。

(1)1000H (2)1234H (3)2300H (4)E000H (5)AB00H答:(1)10000H~1FFFFH(2)12340H~2233FH(3)23000H~32FFFH(4)E0000H~EFFFFH(5)AB000H~BAFFFH10. 根据下列CS:IP 的组合,求出要执行的下一条指令的存储器地址。

(1)CS:IP=1000H:2000H (2)CS:IP=2000H:1000H(3)CS:IP=1A00H:B000H (4)CS:IP=3456H:AB09H答:(1)12000H (2)21000H (3)25000H (4)3F069H11. 求下列寄存器组合所寻址的存储单元地址:(1)DS=1000H,DI=2000H (2)SS=2300H,BP=3200H(3)DS=A000H,BX=1000H (4)SS=2900H,SP=3A00H答:(1)12000H (2)26200H (3)A1000H (4)2CA00H12. 若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10 个字节,SP 内容是什么?若再出栈6 个字节,SP 为什么值?答:物理地址:35000H~35800H。

入栈10 个字节后SP 为 7F6H。

再出栈 6 个字节后SP为7FCH。

13. 某程序数据段中存放了两个字,1EE5H 和2A8CH,已知DS=7850H,数据存放的偏移地址为3121H 及285AH。

试画图说明它们在存储器中的存放情况。

若要读取这两个字,需要对存储器进行几次操作?答:1EE5H 的存储物理地址=78500H+3121H=7B621H,为奇数,故若要读取这个字,需要对存储器进行两次读操作。

2A8CH 的存储物理地址=78500H+285AH=7AD5AH,为偶数,故若要读取这个字,只需对存储器进行一次读操作。

MM8CH2AHMME5H1EHM7850:00007850:285A7850:312114. 存储器中每段容量最多64K 字节,若用debug 调试程序中的r 命令,在屏幕上有如下显示:C:>debug-rAX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC(1)试画出此时存储器分段示意图(2)写出状态标志OF、SF、ZF、CF 的值答:(1)代码段首地址:31FF0H 当前指令地址:320F0H数据段首地址:10E40H堆栈段首地址:21F00H 堆栈段栈顶地址:31EEEH附加段首地址:10F40H(2)OF=SF=ZF=CF=015. 说明8086 系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?答:为了便于组成不同规模的系统,在8086 芯片中设计了两种工作模式,即最小模式和最大模式。

最小模式用于单机系统,系统中所需要的控制信号全部由8086 直接提供;最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器8288 提供。

16. 8086 系统中为什么要用地址锁存器?8282 地址锁存器与CPU 如何连接?答:为了减少引脚的数量,8086CPU 的地址引脚和数据引脚分时复用,为了保证在总线操作周期中地址信号能有效而稳定的输出,必须使用地址锁存器。

由于8086 有20 条地址线,故需使用三片8282,其中OE 接地,STB 与CPU 的ALE相连,前两片8282 的DI0~DI7 分别与CPU 的AD0~AD15 相连,第三片8282 的DI0~DI3 分别与CPU 的AD16~AD19 相连,DI4 与CPU 的BHE 相连。

17. 哪个标志位控制CPU 的INTR 引脚?答:IF,中断允许标志,IF=1 时,允许可屏蔽中断,IF=0 时,禁止可屏蔽中断。

18. 什么叫总线周期?在CPU 读/写总线周期中,数据在哪个机器状态出现在数据总线上?答:CPU 完成一次存储器访问或I/O 端口操作所需要的时间称为一个总线周期,由几个T 状态组成。

相关文档
最新文档