《微机原理与接口技术》(第二版) 龚尚福主编课后答案

时间:2017-04-19 09:18:36 微机原理与接口技术答案 我要投稿

《微机原理与接口技术》(第二版) 龚尚福主编课后答案

  《微机原理与接口技术》(第二版) 的课后答案大家核对了吗?下面是阳光网小编为大家推荐一些《微机原理与接口技术》(第二版) 龚尚福主编课后答案预览和下载地址,希望大家有用哦。

  《微机原理与接口技术》(第二版) 龚尚福主编课后答案免费下载地址

//daxuesheng.hunaudx.com/pic/original/soft/答案/计算机类/《微机原理与接口技术》(第二版)龚尚福-习题解析和实验指导.doc

  《微机原理与接口技术》(第二版) 龚尚福主编课后答案预览

  .2 8086微处理器由哪几部分组成?各部分的功能是什么?

  【解】:按功能可分为两部分:总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)。

  总线接口单元BIU是8086 CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作,即8086对存储器和I/O设备的所有操作都是由BIU

  完成的。所有对外部总线的操作都必须有正确的地址和适当的控制信号,BIU中的各部件主要是围绕这个目标设计的。它提供了16位双向数据总

  线、20位地址总线和若干条控制总线。

  其具体任务是:负责从内存单元中预取指令,并将它们送到指令队列缓冲器暂存。CPU执行指令时,总线接口单元要配合执行单元,从指定

  的内存单元或I/O端口中取出数据传送给执行单元,或者把执行单元的处理结果传送到指定的内存单元或I/O端口中。

  执行单元EU中包含1个16位的运算器ALU、8个16位的寄存器、1个16位标志寄存器FR、1个运算暂存器和执行单元的控制电路。这个单元进行

  所有指令的解释和执行,同时管理上述有关的寄存器。EU对指令的执行是从取指令操作码开始的,它从总线接口单元的指令队列缓冲器中每次取

  一个字节。如果指令队列缓冲器中是空的,那么EU就要等待BIU通过外部总线从存储器中取得指令并送到EU,通过译码电路分析,发出相应控制

  命令,控制ALU数据总线中数据的流向。

  2.3 简述8086 CPU的寄存器组织。

  【解】:(1)通用寄存器:通用寄存器又称数据寄存器,既可作为16位数据寄存器使用,也可作为两个8位数据寄存器使用。当用作16位时,称

  为AX、BX、CX、DX。当用作8位时,AH、BH、CH、DH存放高字节,AL、BL、CL、DL存放低字节,并且可独立寻址。这样,4个16位寄存器就可当作

  8个8位寄存器来使用。

  (2)段寄存器:段寄存器共有4个CS、DS、SS、ES。代码段寄存器CS表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相

  应的偏移值则由IP提供;堆栈段寄存器SS指定当前堆栈的起始地址;数据段寄存器DS指示当前程序使用的数据所存放段的起始地址;附加段寄存

  器ES则指出当前程序使用附加段地址的起始位置,该段一般用来存放原始数据或运算结果。

  (3)指针和变址寄存器:堆栈指针SP用以指出在堆栈段中当前栈顶的地址。入栈(PUSH)和出栈(POP)指令由SP给出栈顶的偏移地址。基

  址指针BP指出要处理的数据在堆栈段中的基地址,故称为基址指针寄存器。变址寄存器SI和DI用来存放当前数据段中某个单元的偏移量。

  (4)指令指针与标志寄存器:指令指针IP的功能跟Z80 CPU中的程序计数器PC的功能类似。正常运行时,IP中存放的是BIU要取的下一条指

  令的偏移地址。它具有自动加1功能,每当执行一次取指令操作时,它将自动加1,使它指向要取的下一内存单元,每取一个字节后IP内容加1,

  而取一个字后IP内容则加2。某些指令可使IP值改变,某些指令还可使IP值压入堆栈或从堆栈中弹出。标志寄存器FLAGS是16位的寄存器,8086共

  使用了9个有效位,标志寄存器格式如图2.5所示。其中的6位是状态标志位,3位为控制标志位。状态标志位是当一些指令执行后,表征所产生数

  据的一些特征。而控制标志位则可以由程序写入,以达到控制处理机状态或程序执行方式的表征。

  2.4 试述8086 CPU标志寄存器各位的含义与作用。

  【解】:(1) 6个状态标志位的功能分别叙述如下:

  CF(Carry Flag)——进位标志位。当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。

  PF(Parity Flag)——奇偶标志位。该标志位反映运算结果中1的个数是偶数还是奇数。当指令执行结果的低8位中含有偶数个1时,PF=1;否

  则PF=0。

  AF(Auxiliary carry Flag)——辅助进位标志位。当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则

  AF=0。

  ZF(Zero Flag)——零标志位。若当前的运算结果为零,ZF=1;否则ZF=0。

  SF(Sign Flag)——符号标志位。它和运算结果的最高位相同。

  OF(Overflow Flag)——溢出标志位。当补码运算有溢出时,OF=1;否则OF=0。

  (2) 3个控制标志位用来控制CPU的操作,由指令进行置位和复位。

  DF(Direction Flag)——方向标志位。它用以指定字符串处理时的方向,当该位置“1”时,字符串以递减顺序处理,即地址以从高到低顺

  序递减。反之,则以递增顺序处理。

  IF(Interrupt enable Flag)——中断允许标志位。它用来控制8086是否允许接收外部中断请求。若IF=1,8086能响应外部中断,反之则不

  响应外部中断。

  注意:IF的状态不影响非屏蔽中断请求(NMI)和CPU内部中断请求。

  TF(Trap Flag)——跟踪标志位。它是为调试程序而设定的陷阱控制位。当该位置“1”时,8086 CPU处于单步状态,此时CPU每执行完一条

  指令就自动产生一次内部中断。当该位复位后,CPU恢复正常工作。

  2.5 8086中,存储器为什么采用分段管理?

  【解】:8086/8088的地址总线宽度为20位,其最大寻址空间是1 MB。而其他微处理器则在实模式下只能访问前1 MB的存储器地址。实际上,实

  模式就是为8086/8088而设计的工作方式,它要解决在16位字长的机器里怎么提供20位地址的`问题,而解决的办法是采用存储器地址分段的方法

  。程序员在编制程序时要把存储器划分成段,在每个段内地址空间是线性增长的。每个段的大小可达64 KB,这样段内地址可以用16位表示。存

  储器分段的方法虽然给程序设计带来一定的麻烦,但这种方法可以扩大存储空间,而且对于程序的再定位也是很方便的。

  2.6 什么是逻辑地址?什么是物理地址?如何由逻辑地址计算物理地址?

  【解】:物理地址:完成存储器单元或I/O端口寻址的实际地址成为物理地址,CPU型号不同其物理地址也不同。物理地址是指CPU和存储器进行

  数据交换时实际所使用的地址,而逻辑地址是程序使用的地址。物理地址由两部分组成:段基址(段起始地址高16位)和偏移地址。前者由段寄存

  器给出,后者是指存储单元所在的位置离段起始地址的偏移距离。当CPU寻址某个存储单元时,先将段寄存器的内容左移4位,然后加上指令中提

  供的16位偏移地址而形成20位物理地址。在取指令时,CPU自动选择代码段寄存器CS,左移4位后,加上指令提供的16位偏移地址,计算出要取指

  令的物理地址。堆栈操作时,CPU自动选择堆栈段寄存器SS,将其内容左移4位后,加上指令提供的16位偏移地址,计算出栈顶单元的物理地址。

  每当存取操作数时,CPU会自动选择数据段寄存器(或附加段寄存器ES),将段基值左移4位后加上16位偏移地址,得到操作数在内存的物理地址。

  2.9 在80x86微机的输入/输出指令中,I/O端号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00H~0FFH的端口号。试问可直接由

  指令指定的I/O端口数是多少?

  【解】:由于在80x86的输入/输出指令中,可以直接在00H~0FFH指定,所以直接由指令指定的I/O端口数是256。

  3.1 指令分成几部分?每部分的作用是什么?

  【解】:每条指令由两部分组成:操作码字段和地址码字段。操作码字段:用来说明该指令所要完成的操作。

  地址码字段:用来描述该指令的操作对象。一般是直接给出操作数,或者给出操作数存放的寄存器编号,或者给出操作数存放的存储单元的

  地址或有关地址的信息。

  3.2 指出下列MOV指令的源操作数的寻址方式:

  MOV AX,1234H

  MOV AX,BX

  MOV AX,[BX]

  MOV AX,TABLE;TABLE ;TABLE是一个变量名

  MOV AX,[1234H]

  MOV AX,[BX+1234H]

  MOV AX,[BP][SI]

  MOV AX,[BX+SI-1234H]

  【解】:MOV AX,1234H 立即寻址

  MOV AX,BX 寄存器寻址

  MOV AX,[BX] 寄存器间接寻址

  MOV AX,TABLE ;TABLE是一个变量名 直接寻址方式

  MOV AX,[1234H] 直接寻址方式

  MOV AX,[BX+1234H] 寄存器相对寻址

  MOV AX,[BP][SI] 基址变址寻址

  MOV AX,[BX+SI-1234H] 相对地址变址寻址

  3.3 设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求下列每条指令源

  操作数的存储单元地址:

  MOV AX,[1234H]

  MOV AX,[BX]

  MOV AX,TABLE[BX]

  MOV AX,[BP]

  MOV AX,[BP][SI]

  【解】: 存储单元地址:(DS)×10H + EA =2000H×10H+1234H=21234H

  存储单元地址:(DS)×10H +(BX)=2000H×10H+0100H=20100H

  存储单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH

  存储单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H

  储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H =10012H

  3.4 设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:

  ⑴ 直接寻址 ⑵ 寄存器间接寻址 ⑶ 寄存器相对寻址 ⑷ 基址变址寻址

  【解】:(1)直接寻址(2)寄存器间接寻址(3)寄存器相对寻址(4)基址变址寻址

  MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY

  MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8

  MOV AX,[BX+SI]

  3.7 设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在当前代码段偏移地址是0100H处,(DS)=1000H,(BX)=1000H,(11000H)

  =00H,(11001H)=30H,数据段定义的字变量ARRAY的内容为1000H,试写出下列转移指令的目标转移地址

  ⑴ JMP NEAR PTR

  ⑵ JMP BX

  ⑶ JMP WORD PTR ARRAY

  【解】:⑴ JMP NEAR PTR 此转移指令的目标转移地址为:20100H

  ⑵ JMP BX 此转移指令的目标转移地址为:21000H

  ⑶ JMP WORD PTR ARRAY 此转移指令的目标转移地址为:23000H

  3.8 设当前(CS)=2000H,(IP)=2000H,标号NEXT定义在3000H:1000H处。当前(DS)=1000H,(BX)=1000H,(11000H)=00H,

  (11001H)=03H,(11002H)=00H,(11003H)=30H,数据段定义的字变量ARRAY的内容为0300H,(ARRAY+2)=3000H,试写出下列转移指令的

  目标转移地址:

  ⑴ JMP FAR PTR NEXT

  ⑵ JMP DWORD ARRAY

  【解】:⑴ JMP FAR PTR NEXT 此转移指令的目标转移地址为:31000H

  ⑵ JMP DWORD ARRAY 此转移指令的目标转移地址为:30300H

  3.9 下列每组指令有何区别?

  (1) MOV AX,1234H MOV AX,[1234H]

  (2) MOV AX,TABLE MOV AX,[TABLE]

  (3) MOV AX,TABLE LEA AX,TALBE

  (4) MOV AX,BX MOV AX,[BX]

  【解】:(1) MOV AX,1234H 将立即数1234H送到寄存器AX中

  MOV AX,[1234H] 将存储区[1234H]中的内容送到寄存器AX中

  (2) MOV AX,TABLE 将标号TABLE的地址送到寄存器AX中

  MOV AX,[TABLE] 将存储区[TABLE] 中的内容送到寄存器AX中

  (3) MOV AX,TABLE 将标号TABLE的地址送到寄存器AX中

  LEA AX,TALBE 将标号TABLE的地址送到寄存器AX中

  (4) MOV AX,BX 寄存器寻址

  MOV AX,[BX] 寄存器间接寻址

  3.10 MOV CS,AX指令正确吗?

  【解】:MOV CS,AX指令不正确。因为CS是指令寄存器,由系统自动改变,不能由指令进行更改。

  3.11 写一指令序列,将3456H装入DS寄存器。

  【解】:MOV AX, 3456H

  MOV DS, AX

  3.14 若正在访问堆栈中03600H单元,则SS和SP的值是多少?

  【解】:若正在访问堆栈中03600H单元,则SS和SP的值会有好多组合,其中可以有SS是0300H,SP是0600H。

  3.15 若(SS)=2000H,(SP)

  =000AH,先执行将字数据1234H和5678H压入堆栈的操作,再执行弹出一个字数据的操作,试画出堆栈区及SP的内

  容变化过程示意图(标出存储单元的物理地址)。

  【解】:物理地址=(SS)×10H+SP


【《微机原理与接口技术》(第二版) 龚尚福主编课后答案】相关文章:

1.《微机原理与接口技术》试题及答案

2.微机原理与接口技术(周鸣争著)课后答案下载

3.《微机原理与接口技术》试题及答案(一)

4.微机原理汇编语言与接口技术(周杰英著)课后答案下载

5.微机原理课后习题答案

6.微机原理与接口技术模拟试题及参考答案

7.单片机原理与接口技术 第二版 李晓玲主编 课后答案 电子工业出版社

8.微机原理与接口技术(张凡 盛华 戴胜华著)课后答案下载