《微机原理课后题目答案.pdf》由会员分享,可在线阅读,更多相关《微机原理课后题目答案.pdf(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章1.什么是冯 诺依曼机?答:冯 诺依曼于1945年提出了存储程序的概念和二进制原理,利用这种概念和原理设计的电子计算机系统统称为冯诺依曼机。它包括运算器、控制器、存储器、输入设备和输出设备五个组成部分。早期的冯诺依曼机结构上以运算器和控制器为中心,随着计算机体系结构的发展,现在已演化为以存储器为中心的结构。2.微处理器,微型计算机,微型计算机系统有什么联系与区别?答:微处理器是微型计算机系统的核心,也称为CPU(中央处理器)。主要完成:从存储器中取指令,指令译码;简单的算术逻辑运算;在处理器和存储器或者I/O 之间传送数据;程序流向控制等.微型计算机由微处理器、存储器、输入/输出接口电路
2、和系统总线组成。以微型计算机为主体,配上外部输入/输出设备及系统软件就构成了微型计算机系统。三者关系如下图:3.微处理器有哪些主要部件组成?其功能是什么?答:微处理器是个中央处理器,由算术逻辑部件ALU、累加器和寄存器组、指令指针寄存器【P、段寄存器、标志寄存器、时序和控制逻辑部件、内部总线等组成。算术逻辑部件A L U 主要完成算术运算及逻辑运算。累加器和寄存器组包括数据寄存器和变址及指针寄存器,用来存放参加运算的数据、中间结果或地址。指令指针寄存器I P 存放要执行的下一条指令的偏移地址,顺序执行指令时,每取条指令增加相应计数。段寄存器存放存储单元的段地址,与偏移地址组成2 0 位物理地址
3、用来对存储器寻址。标志寄存器Hags存放算术与逻辑运算结果的状态。时序和控制逻辑部件负责对整机的控制:包括从存储器中取指令,对指令进行译码和分析,发出相应的控制信号和时序,将控制信号和时序送到微型计算机的相应部件,使 CPU内部及外部协调工作。内部总线用于微处理器内部各部件之间进行数据传输的通道。4.画一个计算机系统的方框图,简述各部分主要功能。答:计算机系统由硬件(Hardware)和 软 件(Software)两大部分组成。硬件是指物理上存在的各种设备,如显示器、机箱、键盘、鼠标、硬盘和打印机等,是计算机进行工作的物质基础。软件是指在硬件系统上运行的各种程序、数据及有关资料。一个完整的计算
4、机系统不仅应该具备齐全的基本硬件结构,还必须配备功能齐全的基本软件系统,后者是为了充分发挥基本硬件结构中各部分的功能和方便用户使用计算机而编制的各种程序,一般称为计算机的软件系统。主机外部设备总线操作系统编译系统服务性程序数据库系统应用软件系统软件中央处理器内存储器控制器外存输入设备输出设备运算器硬件系统计算机系统软件系统5.列出计算机系统中的三种总线结构,画出面向存储器的双总线结构图。答(1)面向系统的单总线结构(2)面向C P U 的双总线结构(3)面向主存储器的双总线结构6.8086微处理器可寻址多少字节存储器?Pentium I I 微处理器可寻址多少字节存储器?器7.什总线即系统总线
5、的一种,是用来连接构成微处理机的t Interconnect,即外设互连局部总线,是 Intel公司推出的 3总线,通用串行总线(Universal Serial B u s),属于外部总线的一种,用作微处理机系统插即用和热插拔功能,具有传输速度快,使用方便,连接灵活,独指令的作用。(4)DD数。75进制、十六进制。答:8086微处理器有2 0 条地址线,可寻址22O=1MB存储器Pentium I I 处理器有3 6 条地址线,可寻址236=64GB存储么是P C I总线?什么是USB?答:P C I总线是微处理机机箱内的底板各个插件板的一种数据传输标准。PCI 全称为 Peripheral
6、 Componen2/64位标准总线。数据传输速率为132MB/S,适用于Pentium微型机。P C I总线是同步且独立于微处理器的,具有即插即用的特性,允许任何微处理器通过桥接口连接到P C I总线上。USB与系统之间,系统与外部设备之间的信息通道。USB是 在 1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,不过直到近期,才得到广泛应用,已成为目前电脑中的标准扩展接口。U SB接口支持设备的即立供电等优点。8 .说明以下一些伪(1)D B (2)D Q (3)DW答(1)在汇编语言中定义字节数据。(2)在汇编语言中定义4字数据。(3)在汇编语言中定义字数据。(
7、4)在汇编语言中定义双字数据。9 .将下列二进制数转换为十进制数。(1)1 1 0 1.0 1 B (2)1 1 1 0 0 1.0 0 1 1 B(3)1 0 1 0 1 1.0 1 0 1 B (4)1 1 1.0 0 0 1 B答(1)1 3.2 5 (2)5 7.1 8 7 5(3)4 3.3 1 2 5 (4)7.0 6 2 51 0.将下列十六进制数转换为十进制(1)A 3.3 H (2)1 2 9.C H(3)A C.D C H (4)FA B.3 H答(1)1 6 3.1 8 7 5 (2)2 9 7.7 5(3)1 7 2.8 5 9 3 7 5 (4)4 0 1 1.1 8
8、1 1 .将下列十进制数转换为二进制、八(1)2 3 (2)1 0 7 (3)1 2 3 8 (4)9 2答(1)2 3 D=2 7 Q=1 7 H (2)1 0 7 D=1 5 3 Q=6 B H2-1 2 补=1 1 1 1 0 1 0 0 B-9 2 补=1 0 0 0 1 0(0 0 0 0 0 1 O B0 0 0 0 1 0 0 B0 0 0 0 0()I B0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B1 0 0 1 0 0 1 0 B (4)1 0 0 0 1 0 0 1 B原码时真值为-1 8,看作反码时真值为-1 0 9,看作补码时真值为-1 1 01 5.
9、5 (4)-1 2 0 01 B0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(2)0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0()0 0 0(3)1 2 3 8 D=2 3 2 6 Q=4 D 6 H (4)9 2 D=1 3 4 Q=5 C H1 2 .将下列十进制数转换为8位有符号二进制数。(1)+3 2 (2)-1 2 +1 0 0 (4)-9答(1)+3 2 原=+3 2 反=+3 2 补H X M O O O O O B(2)-1 2 原=1 0 0 0 1 1 0 0 8
10、 -1 2 反=2 U 0 0 O B(3)+3 0 原=+1 0 0 反=+1 0 0 补=0 1 1 0 0 1 0 0 B(4)-9 2 原=1 1 0 U1 0 0 B -9 2 反=1 0 1 0 0 0 1 I B1 3 .将下列十进制数转换为压缩和非压缩格式的BCD码。(1)1 0 2 (2)4 4 (3)3 0 1 (4)1 0 0 0答(1)1 0 2 压缩 B C D=0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 B 1 0 2 非压缩 B C D=0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0(2)4 4 压缩 B C D=0 C 0
11、 0 1 0 0 B 4 4 非压缩 B C D=0 0 0 0 0 1 0 0 0(3)3 0 1 压缩 B C D=0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 B 3 0 1 非压缩 B C D=0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0(4)1 0 0 0 压缩 B C D=0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 B 1 0 0 0 非压缩 B C D=0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 01 4 .将下列二进制数转换为有符号十进制数。(1)1 0 0 0 0 0 0 0 B (2)0 0 1
12、 1 0 0 1 1 B (3)答(1)看作原码时真值为-0,看作反码时真值为-1 2 7,看作补码时真值为-1 2 8(2)+5 1(3)看作(4)看作原码时真值为-9,看作反码时真值为-1 1 8,看作补码时真值为-1 1 9将下列十进制数转换为单精度浮点数。(1)+1.5 (2)-1 0.6 2 5 (3)+1 0 0.2答(1)+1.5=1.1 B=1.1 x 2 0,符号为 0,移码阶 1 2 7+0=1 2 7=0 1 1 1 1 1 1尾数 1 0 0 0 0 0 0 0 0 0(X)0 0 0 0 0 0 0 0 0 0 0故单精度浮点数为0 0 1 1 1 1 1 1 1 1
13、 0 0 0-1 0.6 2 5=-1 0 1 0.1 0 1 B=-1.0 1 0 1 0 1 x 2 3,符号为 1,移码阶 1 2 7+3=1 3 0=1 0 0 0 0 0 1 0 B,尾数 0 1 0 1 0 1 0 0 0故单精度浮点数为 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(3)+1 0 0.2 5=1 1 0 0 1 0 0.0 1 B=l.1 0 0 1 0 0 0 1 x 2 6,符号为 0移码阶 1 2 7+6=1 3 3=1 0 0 0 0 1 0 1 B,尾数 1 0 0 1 0 0 0
14、 1 0 0故单精度浮点数为 0 1 0 0 0 0 1 0 1 1 (X)1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(4)-1 2 0 0=-1 0 0 1 0 1 1 0 0 0 0 B=-1.0 0 1 0 1 1 0 0 0 0 x 2 1 0,符号为 1移码阶 1 2 7+1 0=1 3 7=1 0 0 0 1 0 0 1 6,尾数 0 0 1 0 1 1 0 0 0 0 0 0 0故单精度浮点数为 1 1 0 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 6.将下列单精度浮点
15、数转换为十进制数。(1)0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(2)1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(3 )0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0答(1)1.1 1 x 2 1=1 1.1 B=+3,5 D(2)-1.0 x 2 0=-l B=-l D(3)1.1 0 0 1 x 2 1 =l l.0 0 1 B=+3.1 2
16、5 D第二章1.8 0 8 6 C P U内部由哪两部分组成?它们的主要功能是什么?答:8 0 8 6 C P U内部由执行单元EU 和总线接口单元B I U 组成。主要功能为:执行单元EU 负责执行指令。它由算术逻辑单元(A L U)、通用寄存器组、1 6 位标志寄存器(FL A G S)、EU 控制电路等组成。EU 在工作时直接从指令流队列中取指令代码,对其译码后产生完成指令所需要的控制信息。数 据 在 ALU中进行运算,运算结果的特征保留在标志寄存器FLAGS中。总线接口单元B IU 负 责 C P U 与存储器和I/O 接口之间的信息传送。它由段寄存器、指令指针寄存器、指令队列、地址加
17、法器以及总线控制逻辑组成。2.8086CPU中有哪些寄存器?各有什么用途?答:8086CPU内部包含4 组 1 6 位寄存器,分别是通用寄存器组、指针和变址寄存器、段寄存器、指令指针和标志位寄存器。(1)通用寄存器组包含4 个 1 6 位通用寄存器AX、BX、CX、D X,用以存放普通数据或地址,也有其特殊用途。如 AX(A L)用于输入输出指令、乘除法指令,B X 在间接寻址中作基址寄存器,C X 在串操作和循环指令中作计数器,D X 用于乘除法指令等。(2)指针和变址寄存器BP、SP、S I 和 D L 在间接寻址中用于存放基址和偏移地址。(3)段寄存器CS、DS、SS、E S 存放代码段
18、、数据段、堆栈段和附加段的段地址。(4)指令指针寄存器I P 用来存放将要执行的下一条指令在现行代码段中的偏移地址。(5)标志寄存器Flags用来存放运算结果的特征。3.8086CPU和 8088CPU的主要区别是什么?答:8088CPU的内部结构及外部引脚功能与8086CPU大部分相同,二者的主要不同之处如下:(1)8088指令队列长度是4 个字节,8086是 6 个字节。(2)8088的 B IU 内数据总线宽度是8 位,而 E U 内数据总线宽度是1 6 位,这样对16位数的存储器读/写操作需要两个读/写周期才能完成。8086的 B IU 和 E U 内数据总线宽度都是 1 6 位。(3
19、)8088外部数据总线只有8 条 AD7 A D 0,即内部是1 6 位,对外是8 位,故 8088也称为准1 6 位机。(4)8088中,用 IO/M信号代替M/IO信号。(5)8088中,只能进行8 位数据传输,BHE不再需要,改为SSO,与 D T/R 和 IO/M一起决定最小模式中的总线周期操作。4.简要解释下列名词的意义:C P U,存储器,堆栈,IP,SP,B P,段寄存器,状态标志,控制标志,物理地址,逻辑地址,机器语言,汇编语言,指令,内部总线,系统总线。答:CPU:中央处理器,是整个计算机系统的控制中心,主要功能是进行算术和逻辑运算,以及发出各种控制信号以协调整个系统正常工作
20、。存储器:是计算机系统中的记忆元件,用于存储指令和数据。堆栈:在存储器中开辟的一个区域,用来存放需要暂时保存的数据。其操作特点是先进后出。IP:指令指针寄存器,用来存放将要执行的下一条指令在现行代码段中的偏移地址。SP:堆栈指针寄存器,用于指向当前栈顶单元。BP:基址指针,间接寻址中用于存放基址,隐含段地址为SS。段寄存器:用于存放逻辑段的段地址。状态标志:SF、ZF、OF,AF、P F 和 C F,反映运算结果的状态特征。控制标志:IF、D F 和 T F,对可屏蔽中断、字符串操作指针变换方向和单步运行起控制作用。物理地址:指存储器中存储单元的实际地址编码,是一种绝对地址,是 C PU 访问
21、存储器的实际寻址地址,对于8086系统,地址范围为00000H FFFFFH。逻辑地址:由段基址和偏移地址组成,均为无符号的1 6位二进制数,程序设计时采用逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址x 1 6+偏移地址。机器语言:直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,计算机可以直接识别,不需要进行任何翻译。每台机器的指令,其格式和代码所代表的含义都是硬性规定的,故称之为面向机器的语言,也称为机器语言,是第一代计算机语言。汇编语言:使用助记符表示的二进制代码指令语言,是一种符号化的机器语言,必须经编译程序将汇编语言编译成机器语言,计算机才能识别。指令:能
22、被计算机识别并执行的二进制代码,规定了计算机能完成的某一操作。内部总线:微处理器内部各个部件之间传送信息的通道。系统总线:微处理机机箱内的底板总线,用来连接构成微处理机的各个插件板,如I S A总线、E I S A总线、P C I总线等。5.要完成下述运算或控制,用什么标志位判别?其值是什么?(1)比较两数是否相等(2)两数运算后结果是正数还是负数(3)两数相加后是否溢出(4)采用偶校验方式,判定是否要补1(5)两数相减后比较大小(6)中断信号能否允许答(1)Z F,两数相减,若Z F=1,则相等。(2)S F,S F=1则为负,否则为正(3)对有符号数:O F,O F=1为溢出:对无符号数:
23、C F,C F=1为溢出(4)P F,P F=1,不补 1(5)对有符号数:无溢出时(O F=0),如 Z F=1,则两数相等;如Z F=0且S F=0,则被减数大;如Z F=0且S F=1,则减数大;有溢出时(O F=1),如S F=1,则被减数大;如S F=0,则减数大;对无符号数:如Z F=1,则两数相等;如C F=0,则被减数大;如C F=1,则减数大(6)I F,I F=1,允许中断6 .8 0 8 6系统中存储器采用什么结构?用什么信号来选中存储体?答:8 0 8 6系统中,存储器采用分体结构,1 M B的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为5 1 2 K B。
24、使用A0和B H E来区分两个存储体。当A 0=0时,选中偶地址存储体,与数据总线低8位相连,从低8位数据总线读/写一个字节。当B H E=0时,选中奇地址存储体,与数据总线高8位相连,从高8位数据总线读/写一个字节。当A 0=0,B H E =0时,同时选中两个存储体,读/写一个字。7 .用伪指令DB在存储器中存储A S C I I码字符串“W h a t t i m e i s i t?并画出内存分布图。答:S T R D B *W h a t t i m e i s i t?,$W%,a,mi?,$8.用伪指令将下列1 6 位二进制数存储在存储器中,并画出内存分布图。(1)1234H(2
25、)A122H(3)B100H答:NUM DW 1234H,A122H,Bl OOH34H12H22HA1HOOHB1HSTRNUM9.段寄存器装入如下数据,写出每段的起始和结束地址。(1)I000H(2)1234H(3)2300H(4)E000H(5)AB00H答(1)1OOOOH-1FFFFH(2)12340H-2233FH(3)23OOOH-32FFFH(4)EOOOOH-EFFFFH(5)ABOOOH-BAFFFH10.根据下列CS:I P 的组合,求出要执行的下一条指令的存储器地址。(1)CS:IP=1000H:2000H(2)CS:IP=2000H:I000H(3)CS:IP=1AO
26、OH:B000H(4)CS:IP=3456H:AB09H答(1)12000H(2)21000H(3)25000H(4)3F069HI I.求下列寄存器组合所寻址的存储单元地址:(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=35OOH,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈1 0 个字节,S P 内容是什么?若再出栈6 个字节,S P 为什么值?答:物理地址:35000H
27、 35800H。入 栈 1 0 个字节后S P 为 7F6H。再 出 栈 6 个字 节 后 SP为 7FCH。13.某程序数据段中存放了两个字,1EE5H和 2A 8C H,已知DS=7850H,数据存放的偏移地址为3121H及 285AH。试画图说明它们在存储器中的存放情况。若要读取这两个字,需要对存储器进行几次操作?答:1EE5H的存储物理地址=78500H+3121H=7B621H,为奇数,故若要读取这个字,需要对存储器进行两次读操作。2A8CH的存储物理地址=78500H+285AH=7AD5AH,为偶数,故若要读取这个字,只需对存储器进行一次读操作。MM8CH2AHMME5H1EHM
28、7850: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 PLNZNAPO NC(1)试画出此时存储器分段示意图(2)写出状态标志OF、SF、ZF、C F 的值答(1)代码段首地址:31FF0H当前指令地址:320F0H数据段首地址:10E40H堆栈段首地址:21F
29、00H堆栈段栈顶地址:31EEEH附加段首地址:10F40H(2)OF=SF=ZF=CF=015.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?答:为了便于组成不同规模的系统,在 8086芯片中设计了两种工作模式,即最小模式和最大模式。最小模式用于单机系统,系统中所需要的控制信号全部由8086直接提供;最大模式用于多处理机系统,系统中所需要的控制信号由总线控制器8288提供。16.8086系统中为什么要用地址锁存器?8282地址锁存器与C PU 如何连接?答:为了减少引脚的数量,8086CPU的地址引脚和数据引脚分时复用,为了保证在总线操作周期中地址信号能有效而稳定
30、的输出,必须使用地址锁存器。由于8086有 2 0 条地址线,故需使用三片82 8 2,其中O E 接地,S T B 与 C P U 的 ALE相连,前两片8282的 DI0DI7分别与C P U 的 AD0AD15相连,第三片8282的 DI0DI3分别与 C P U 的 AD16AD19相连,D 14与 C P U 的 B H E相连。17.哪个标志位控制C P U 的 IN TR引脚?答:I F,中断允许标志,IF=1时,允许可屏蔽中断,IF=0时,禁止可屏蔽中断。18.什么叫总线周期?在 C PU 读/写总线周期中,数据在哪个机器状态出现在数据总线上?答:C PU 完成一次存储器访问或
31、I/O 端口操作所需要的时间称为一个总线周期,由几个T状态组成。在读/写总线周期中,数据在T2 T 4 状态出现在数据总线上。19.8284时钟发生器共给出哪几个时钟信号?答:OSC:振荡器输出信号,是内部振荡电路的T T L 电平输出,其频率与晶振的频率相等,在 PC/XT中,其频率为14.318MHzCLK:三分频O SC 后的时钟,输出频率为4.77M H z,占空比为1/3,供 8086CPU使用。PCLK:二分频C L K 后的时钟,输出频率为2.38636MHz,T T L 电平,占空比为1/2,供 PC/XT机的外设使用。20.8086CPU重新启动后,从何处开始执行指令?答:重
32、新启动后,CS=FFFFH,IP 4000H,故从物理地址为FFFF0H的位置开始执行指令。21.8086CPU的最小模式系统配置包括哪儿部分?答:8086最小模式系统配置包括:8086CPU,存储器,I/O 接口芯片,1 片 8284时钟发生器,3 片 8282地址锁存器,2 片8286双向数据总线收发器。第三章1.分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。(1)MOVAX,2408H(2)MOV CL,OFFH(3)MOV BX,|SI(4)MOV5BX,BL(5)MOV BP+100H,AX(6)MOV BX+DI,$(7)MOV DX,ES:BX+SI(8)MOV VA
33、LBP+DI,DX(9)IN AL,05H(10)MOV DS,AX答(1)立即数,寄 存 器(2)立即数,寄 存 器(3)寄存器间接,寄存器(4)寄存器,寄 存 器 相 对(5)寄存器,寄 存 器 相 对(6)立即数,基址变址(7)基址变址,寄 存 器(8)寄存器,相对基址变址(9)直接端口寻址,寄 存 器(1 0)寄存器,寄存器2.已知:DS=1000H,BX=0200H,SI=02H,内存 10200H-10205H 单元的内容分别为 10H,2AH,3CH,46H,59H,6BH。下列每条指令执行完后A X 寄存器的内容各是什么?(1)MOVAX,0200H(2)MOVAX,200H|
34、(3)MOV AX,BX(4)MOV AX,3|BX(5)MOV AX,|BX+S1(6)MOV AX,2|BX+SI答(1)0200H(2)2AI0H(3)0200H(4)5946H(5)463CH(6)6B59H3.设 DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为VAL的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什么?物理地址值是多少?(1)MOV AX,I00H(2)MOV AX,VAL(3)MOV AX,BX(4)MOV AX,ES:BX(5)MOV AX,SI(6)MOV
35、 AX,BX+10H(7)MOV AX,BP(8)MOV AX,VALBPSI(9)MOV AX,VALBXDI(10)MOV AX,BPDI答(1)直接,10100H(2)直接,10030H(3)寄存器间接/0100H(4)寄存器间接,20100H(5)寄存器间接,100A0H(6)寄存器相对,10110H(7)寄存器间接,35200H(8)相对基址变址,352D0H(9)相对基址变址,10154H(1 0)基址变址,35224H4.写出下列指令的机器码(1)MOV AL,CL(2)MOV DX,CX(3)MOV BX+100H,3150H答(1)10001010 11000001B(2)1
36、0001011 11010001B(3)11000111 10000111 00000000 00000001 01010000 00110001B5.已知程序的数据段为:DATA SEGMENTADB 4$M0HB DB COMPUTERC DW 1234H,OFFHDDB 5 DUP(?)E DD 1200459AHDATA ENDS求下列程序段执行后的结果是什么。MOV AL,AMOV DX,CXCHG DL,AMOV BX,OFFSET BMOV CX,3BXLEABX,DLDS SI,ELES DI,E答:MOV AL,AAL=24HMOV DX,CDX=1234HXCHG DL,A
37、 DL=24H,A=34HMOV BX,OFFSET B BX=2MOV CX,3BX CX=5550HLEABX,DBX=000EHLDS SI,E DS=1200H,SI=459AHLES DI,E ES=1200H,D1=459AH6.指出下列指令中哪些是错误的,错在什么地方。(1)MOV DL,AX(2)MOV 8650H,AX(3)MOV DS,0200H(4)MOV BX,1200H(5)MOV IP,OFFH(6)MOV BX+SI+3,IP(7)MOV AX,BXBP(8)MOV AL,ES:BP(9)MOV DL,SIDI(10)MOV AX,OFFSET 0A20H(11)
38、MOV AL,OFFSETTABLE(12)XCHG AL,50H(13)IN BL,05H(14)OUT AL,OFFEH答(1)长 度 不 匹 配(2)立即数不能做目的操作数(3)(5)(7)(9)段寄存器不能用立即数赋值(4)两个内存单元不能直接传送数据I P 不能用指令直接修改BX/BP应 与 SI/D I搭配SI/D I应 与 BX/BP搭配(1 1)偏移地址为1 6 位,AL(6)指令中不能出现IP(8)正确(10)OFFSET后应跟内存单元长 度 不 够(1 2)立即数不能用于XCHG(13)I N 必 须 用 AL/AX(1 4)操作数顺序反向;地址应为8 位7.已知当前数据段
39、中有一个十进制数字0 9 的 7 段代码表,其数值依次为40H,79H,24H,30H,19H,12H,02H,78H,OOH,18H。要 求 用 XLAT指令将十进制数5 7 转换成相应的7 段代码值,存 到 B X 寄存器中,试写出相应的程序段。答:DATA SEGMENTTABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,OOH,18HDATAENDSMOV AL,5MOV BX,OFFSETTABLEXLAT TABLEMOV CL,ALMOV AL,7XLAT TABLEMOV BL,ALMOV BH,CL8.已知当前SS=1O5OH,SP=0100H,
40、AX=4860H,BX=1287H,试用示意图表示执行下列指令过程中,堆栈中的内容和堆栈指针S P 是怎样变化的。PUSHAXPUSHBXPOP BXPOP AX答(1)指 令 执 行 前(2)执行PUSHAX后10500H(3)执行PUSHBX后(4)执行PO PBX后(5)执行POPAX后87H12H60H48H9.下列指令完成什么功能?(1)ADD AL,DH(2)ADC BX,CX(3)SUB AX,271 OH(4)DEC BX(5)NEG CX(6)INC BL(7)MULBX(8)DIV CL答(1)AL+DH-AL(2)B X+C X+dB X (3)AX-2710HAX(4)
41、BX-l-BX(5)0-CXCX(6)BL+1-BL(7)AX*BXDX,AX(8)AX/CL 商一A L,余数一AH1 0.已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果是什么?标志位C F 等于什么?(1)AND AH,CL(2)OR BL,30H(3)NOTAXSP-SP-10500H60H48HSP-10500H 10500H48H60H12H87HSP-48H60H12H87H10500HSP-(4)XOR CX,OFFFOH(5)TESTDH,OFH(6)CMPCX,OOH(7)SHR DX,CL(8)SAR AL,1 (9)
42、SHLBH,CL(10)SAL AX,1 (11)RCLBX,1 (12)ROR DX,CL答(1)AX=0408H,CF=0(2)BX=0F36H,CF=O(3)AX=0DAF7H,CF 不变(4)CX=0FFF4H,CF=0(5)DX=01864H,CF=0(6)CX=0004H,CF=0(7)DX=0186H,CF=0(8)AX=2504H,CF=0(9)BX=0F036H,CF=O(10)AX=4A10H,CF=O(11)BX=1E6C/1E6DH,CF=0(12)DX=4186H,CF=011.假设数据段定义如下:DATA SEGMENTSTRING DB The Personal
43、Computer&TVDATAENDS试用字符串操作等指令编程完成以下功能:(1)把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。(2)比较该字符串是否与The Computer,相同,若相同则将A L 寄存器的内容置1,否则置0 o 并要求将比较次数送到B L 寄存器中。(3)检查该字符串是否有,&二 若有则用空格字符将其替换。(4)把字符串大写字母传送到附加段中以CA PS开始的单元中,其余字符传到以CHART开始的单元中。然后将数据段中存储上述字符串的单元清0o答CLDLEA SI,STRINGLEADI,GET_CHARMOV CX,26REP MOVSB(2)补充在
44、附加段定义STRING 1 DB The computerMOV AL,1CLDLEA SI,STRINGLEADLSTRING1MOV CX,12REPZ CMPSBJZSKIPMOV AL,0SKIP:MOV BX,12SUB BX,CX(3)MOV AX,DATAMOV ES,AXCLDMOV AL;&rLEADI,STRINGMOV CX,26NEXT:REPNE SCASBJZ FINDJMPEX1TFIND:MOV BYTE PTR DI-1,*JCXZEXITJMPNEXTEXIT:(4)LEA SI,STRINGLEA DI,CAPSLEA BX,CHARTMOV CX,26N
45、EXT:MOV AL,SICMPALJAJB OTHERCMP A L,ZJ A OTHERMOV ES:DI,ALINC DIJMPSKIPOTHER:MOV ES:BX,ALINC BXSKIP:MOV BYTE PTRSI,0INC SILOOPNEXT12.编程将A X 寄存器中的内容以相反的顺序传送到D X 寄存器中,并要求A X 中的内容不被破坏,然后统计D X 寄存器中T 的个数是多少。答:MOV BL,0PUSH AXMOV DX,0MOV CX,16NEXT:SHLAXJJNCSKIPINC BLSKIP:RCR DX,1LOOPNEXTSTOP:POP AX13.设 CS=
46、1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N 标号的地址为 1200:0278H,PROG_F标号的地址为3400H:OABCHo说明下列每条指令执行完后,程序将分别转移到何处执行?(1)JMP PROG_N(2)JMP BX(3)JMP BX(4)JMP FAR PROG_F(5)JMP DWORD PTR BX如将上述指令中的操作码JM P改成C A L L,则每条指令执行完后,程序转向何处执行?并请画图说明堆栈中的内容
47、和堆栈指针如何变化。答(1)1200H:0278H(2)1200H:0300H(3)1200H:4800H(4)3400H:0ABCH(5)00FFH:4800H将操作码JM P改成CALL后:(1)1200H:0278H指令长度为3,贝 IP=O1OOH+3=O1O3H,入栈03H0IH5000H:0000H5000H:03FEH5000H:0400HSP(2)1200H:0300H指令长度为2则 IP=0100H+2=0102H,入栈02H01H(3)1200H:4800H指令长度为2,贝 IJIPHH00H+2HH02H,入栈02H01H(4)3400H:0ABCH指
48、令长度为 5,贝 ij IP=0100H+5=()105H,入栈05HOlHOOH12H(5)OOFFH:4800H指令长度为2,贝 IJ IP=0100H+2=0102H,入栈5000H:0000H5000H:O3FEH5000H:0400HO48773;SP5000H:0000H5000H:03FEH5000H:0400HO48773;SP5000H:0000H5000H:03FCHSP5000H:03FEH5000H:0400H02HOlHOOH12H14.在下列程序段括号中分别填入以下指令(1)LOOP NEXT(2)LOOPE NEXT(3)LOOPN
49、E NEXT试说明在这三种情况下,程序段执行完后,AX,BX,CX,D X 的内容分别是什么。START:MOVAXQ1HMOV BX,02HMOV DX,03HMOV CX,04HNEXT:INC AXADD BX,AXSHR DX,1()答 AX=05H BX=10H CX=0 DX=0(2)AX=02H BX=04H CX=03H DX=01H(3)AX=03H BX=07H CX=02H DX=015.某班有7 个同学英语成绩低丁8 0 分,分数存在ARRAY数组中,试编程完成以下工作:(1)给每人加5分,结果 存 到 N EW 数组中(2)把总分存到SU M 单元中答:DATA SE
50、GMENTARRAY DBNEWDB 7DUP(?)SUM DWODATAENDSMOV AX,DATAMOV DS,AX(1)LEA SI,ARRAYLEADLNEWMOV CX,7NEXT:MOV AL,SIADD AL,5MOV DI,ALINC SIINC DILOOPNEXT(2)LEASE ARRAYCLCSP5000H:0000H5000H:03FCH5000H:03FEH5000H:0400HMOV CX,7NEXT1:MOV AL,SIMOV AH,0ADC SUM,AXINC SILOOP NEXT 116.中断向量表的作用是什么?它放在内存的什么区域内