首页 微机原理与接口技术(基于32位机)课后答案_马春燕主编

微机原理与接口技术(基于32位机)课后答案_马春燕主编

举报
开通vip

微机原理与接口技术(基于32位机)课后答案_马春燕主编         课后答案网,用心为你服务!     大学答案 --- 中学答案 --- 考研答案 --- 考试答案   最全最多的课后习题参考答案,尽在课后答案网(www.khdaw.com)! Khdaw团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点, 旨在为广大学生朋友的自主学习提供一个分享和交流的平台。   爱校园(www.aixiaoyuan.com) 课后答案网(www.khdaw.com) 淘答案(www.taodaan.com)   ...

微机原理与接口技术(基于32位机)课后答案_马春燕主编
        课后答案网,用心为你服务!     大学答案 --- 中学答案 --- 考研答案 --- 考试答案   最全最多的课后习题参考答案,尽在课后答案网(www.khdaw.com)! Khdaw团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点, 旨在为广大学生朋友的自主学习提供一个分享和交流的平台。   爱校园(www.aixiaoyuan.com) 课后答案网(www.khdaw.com) 淘答案(www.taodaan.com)   1.2 习题解答 1.1 简述计算机和微型计算机经过了哪些主要的发展阶段? 答:参见 P1~6,1.1.1 微型计算机发展简史。 1.2 设机器字长为 8 位,最高位为符号位。试用二进制加法计算下列各式,并用“双高 位判别法”判别有无溢出,若有,是正溢出还是负溢出? 50+84;﹣33+ (﹣37);﹣90+ (﹣70);72-8 答:解题思路:采用补码相加、逢二进一求和。溢出采用双高位判别法:OF=Cs CP=1, 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示发生了溢出错误。 (1)50+84 [50]补=00110010B ,[84]补=01010100B 补码相加: 00110010B +)01010100B 所以:[50+84]补=10000110B 10000110B 溢出判别:OF=Cs CP=0 1=1 有溢出,为正溢出。 (2)﹣33+(﹣37) [﹣33]补=11011111B ,[﹣37]补=11011011B 补码相加: 11011111B +)11011011B 所以:[-33+(-37)]补=00111010B 1 00111010B 溢出判别:OF=Cs CP=1 1=0 无溢出。 (3)﹣90+(﹣70) [﹣90]补=10100110B ,[﹣70]补=10111010B 补码相加: 10100110B +)10111010B 所以:[-90+(-70)]补=01100000B 1 01100000B 溢出判别:OF=Cs CP=1 0=1 有溢出,为负溢出。 (4)7-28=72+(﹣8) [72]补=01001000B ,[﹣8]补=11111000B 补码相加: 01001000B +)11111000B [72-8]补=01000000B 1 01000000B 溢出判别:OF=Cs CP=1 1=0 无溢出。 1.3 写出下列各数的原码、反码、补码(设机器字长为 8 位)。 +1010011B;﹣0101100B;﹣32;+47 答:解题思路:按照原、反、补码的求取方法,求出各数的原码、反码和补码。 正数:[x]原=[x]反=[x]补,在其真值的基础上将符号位置为 0,其余数位不变; 负数:[x]原:在真值的基础上,符号位置为 1,其余位不变; [x]反:在[x]原的基础上符号位不变,其余按位求反; [x]补:[x]补=[x]反+1。 答案如下: (1)设 x = +1010011B, 则:[x]原=[x]反=[x]补=01010011B (2)设 x =﹣0101100B, 则:[x]原=10101100B,[x]反=11010011B,[x]补=11010100B (3)设 x =﹣32 =﹣0100000B, 则:[x]原=10100000B,[x]反=11011111B,[x]补=11100000B (4)设 x = +47= +0101111B, 则:[x]原=[x]反=[x]补=00101111B 1.4 将下列十进制数变为 8421 BCD 码。 306;512;9183;4700 答:解题思路:将十进制数变为 8421BCD 码,只需将每位十进制数分别用四位二进制 数表示即可。答案如下: (306)10 = (11 0000 0110)8421BCD (512)10 = (101 0001 0010)8421BCD (9183)10 = (1001 0001 1000 0011)8421BCD (4700)10 = (100 0111 0000 0000)8421BCD 1.5 将下列 8421 BCD 码变为十进制数。 1000010010100;11001100011;1001000101;11000 答:解题思路:将 8421BCD 码转换为十进制数,只需从末位起将每四位二进制数分别用 一位十进制数表示即可。 (1 0000 1001 0100) 8421BCD= (1094) 10 (110 0110 0011) 8421BCD= (663) 10 (10 0100 0101) 8421BCD= (245) 10 (1 1000) 8421BCD= (18) 10 1.6 写出下列各十六进制数的 ASCII 码。 1357;ABCD;3F;20E 答:解题思路:按照各十六进制数字符出现的顺序由高到低将每个字符用相应的 ASCII 码(两位十六进制数)表示即可。 ‘1357’= 31333537H ‘ABCD’= 41424344H ‘3F’= 3346H ‘20E’= 323045H 1.7 什么是微处理器、微型计算机、微型计算机系统?它们之间有什么区别与联系? 答:参见 P19~20,1.3.1 微型计算机系统的组成。 1.8 试画出微型计算机的组成框图,并简述各部分的功能。 答:参见 P20~22,1.3.2 微型计算机系统的硬件组成。 1.9 衡量微机系统的主要性能指标有哪几个方面? 答:参见 P24~25,1.3.4 微型计算机系统的性能指标。 1.1 重点与难点 本章的重点是 80486 微处理器的内部结构、寄存器结构、存储器组织、输入/输出结构 和微处理器的工作模式,难点是实地址工作模式下存储器的寻址。具体内容如下: 1.8086 微处理器 总线接口部件和执行部件的功能,通用数据寄存器、指针及变址寄存器、段寄存器和指 令指针的名称及用途,标志寄存器中各个标志位的意义,存储器的分段及物理地址的形成。 8086 CPU 存储器的名称及功能见表 2.1。 表 2.1 8086 寄存器及其功能 类别 名 称 缩 写 位 数 功 能 累 加 器 AX 16 基址寄存器 BX 16 计数寄存器 CX 16 通用 数据 寄存器 数据寄存器 DX 16 均可以作为 8 位寄存器使用。既可以作为算术、逻辑运算的源操 作数,向 ALU 提供参与运算的原始数据,也可以作为目标操作 数,保存运算的中间结果或最后结果。 堆栈指针 SP 16 在进行堆栈操作的过程中,SP 用来指示堆栈栈顶的偏移地址 基址指针 BP 16 用来存放位于堆栈段中的 1 个数据区的“基址”的偏移地址 源变址指针 SI 16 在串操作指令中,SI 用来存放源操作数地址的偏移地址 指针 及变 址寄 存器 目的变址指针 DI 16 在串操作指令中,DI 用来存放目标操作数地址的偏移地址 代码段寄存器 CS 16 用来存放当前使用的代码段的段基址 数据段寄存器 DS 16 用来存放当前使用的数据段的段基址 堆栈段寄存器 SS 16 用来存放当前使用的堆栈段的段基址 段寄 存器 附加段寄存器 ES 16 用来存放当前使用的附加段的段基址 指令指针 IP 16 存放 BIU 将要取的下一条指令代码的偏移地址。 控制 寄存器 标志寄存器 FR 16 只使用了 9 位。其中 6 位为状态标志位,用来反映算术运算或逻 辑运算结果的状态;3 位为控制位,用来控制 CPU 的操作 2.80486 微处理器 80486 微处理器的内部结构、新增寄存器名称及用途、存储器组织以及输入/输出结构。 实地址模式、保护模式和虚拟 8086 模式的特点及其相互转换,时钟周期、总线周期和指令 周期的概念以及总线操作时序。80486 CPU 存储器的名称及功能见表 2.2。 3.Pentium 微处理器 Pentium 微处理器的超标量流水线、独立指令 Cache 和数据 Cache、浮点部件和分支转 移动态预测等部件的特点,存储器组织以及输入/输出结构。 表 2.2 80486 寄存器及其功能 位 数 分 类 类 别 名 称 缩写 程序可见 程序不可见 功 能 累 加 器 EAX 32 无 基址寄存器 EBX 32 无 均可以作为 8 位、16 位和 32 位寄存器使用。 计数寄存器 ECX 32 无 数据寄存器 EDX 32 无 堆栈指针 ESP 32 无 可作为 16 位和 32 位寄存器使用,用来指示堆栈栈顶的偏移 地址 基址指针 EBP 32 无 可作为 16 位和 32 位寄存器使用,用来存放位于堆栈段中的 1 个数据区的“基址”的偏移地址 源变址指针 ESI 32 无 可作为 16 位和 32 位寄存器使用,在串操作指令中,用来存 放源操作数的偏移地址 通 用 寄 存 器 目的变址指针 EDI 32 无 可作为 16 位和 32 位寄存器使用,在串操作指令中,用来存 放目标操作数的偏移地址 代码段寄存器 CS 16 64 数据段寄存器 DS 16 64 堆栈段寄存器 SS 16 64 ES 16 64 FS 16 64 段 寄 存 器 附加段寄存器 GS 16 64 程序可见部分在实地址模式下,存放段基址,在保护模式下, 存放选择符。程序不可见部分只有在保护模式下有效。 CS 用来存放当前使用的代码段的段基址 DS 用来存放当前使用的数据段的段基址 SS 用来存放当前使用的堆栈段的段基址 ES、FS 和 GS 用来存放当前使用的附加数据段的段基址 指令指针 EIP 32 无 可作为 16 位和 32 位寄存器使用,存放 BIU 将要取的下一条 指令代码的偏移地址。 基 本 寄 存 器 控 制 寄 存 器 标志寄存器 EFR 32 无 在 8086 的基础上,增加了 5 位系统标志位,用于控制系统 或执行某种操作。 全局描述符表寄存器 GDTR 48 无 用于存放全局描述表的 32 位基地址和 16 位段限值 局部描述符表寄存器 LDTR 16 64 用于保存局部描述符表的 32 位基地址、16 位段限值和 16 位 访问权限 中断描述符表寄存器 IDTR 48 无 用于存放中断描述符表的 32 位基地址和 16 位段限值 系 统 地 址 寄 存 器 任务寄存器 TR 16 64 用于存放任务状态段的 32 位基地址、16 位段限值和 16 位访 问权限 模式控制与状态控制寄 存器 CR0 32 无 用于系统操作模式控制和系统状态控制 控制寄存器 CR1 32 无 为与后续的 Intel CPU 兼容而保留 页故障线性地址寄存器 CR2 32 无 存放页故障的线性地址 系 统 寄 存 器 控 制 寄 存 器 页目录寄存器 CR3 32 无 微处理器提供当前任务的页目录表地址 断点地址寄存器 DR0 32 无 存放断点 0 的线性地址 断点地址寄存器 DR1 32 无 存放断点 1 的线性地址 断点地址寄存器 DR2 32 无 存放断点 2 的线性地址 断点地址寄存器 DR3 32 无 存放断点 3 的线性地址 调试寄存器 DR4 32 无 保留未用 调试寄存器 DR5 32 无 保留未用 断点状态寄存器 DR6 32 无 说明是哪一种性质的断点及断点异常是否发生 调 试 寄 存 器 断点控制寄存器 DR7 32 无 指明断点发生的条件及断点的类型 调 试 与 测 试 寄 存 测 Cache 数据测试寄存器 TR3 32 无 用作 Cache 数据读/写缓冲器 Cache 状态测试寄存器 TR4 32 无 包含 Cache 测试期间标志位和有效位的信息 Cache 控制测试寄存器 TR5 32 无 说明可测试性操作、置位和入口的选择 TLB 控制测试寄存器 TR6 32 无 包含对 TLB 进行测试的标志信息和控制信息 器 试 寄 存 器 TLB 状态测试寄存器 TR7 32 无 包含 TLB 测试期间数据块的存取信息 数据寄存器 R7~ R0 80 无 相当于 20 个 32 位的寄存器,用于堆栈操作 标志寄存器 FPTW 16 无 指示 8 个数据寄存器的特征,每两位代表 1 个数据寄存器 控制寄存器 FPCW 16 无 用于浮点运算部件操作控制的选择 状态寄存器 FPSW 16 无 指示浮点运算部件的状态 指令指针 IP 48 无 用于指令错误的处理 浮 点 寄 存 器 数据指针 DP 48 无 用于数据错误的处理 2.2 习题解答 2.1 简述 8086 和 80486CPU 内部结构由那些部件组成,并阐明它们结构上的异同。 答:(1)参见 P26~28,2.1.1 Intel 8086 微处理器内部结构; (2)参见 P38~41,2.2.1 Intel 80486 微处理器内部结构。 2.2 8086 微处理器和 80486 微处理器中的寄存器是如何分类的,它们的主要功能是什 么? 答:(1)参见 P28~29,2.1.2 Intel 8086 微处理器寄存器结构; (2)参见 P41~47,2.2.2 Intel 80486 微处理器寄存器结构。 2.3 EFR 寄存器包含哪些标志位?说明各主要标志位的作用。 答:参见 P42~43,(3)标志寄存器 EFR 2.4 说明 80486 微处理器中控制寄存器、系统地址寄存器的作用和各自的功能。 答:参见 P44~46,2.系统寄存器。 2.5 存储器为什么要分段?在实地址方式下存储器如何分段? 答:8086CPU有 20 条地址线,可直接寻址 1M字节的存储空间,而寄存器均为 16 位, 可寻址 216=64K的存储空间,不能直接寻址 1M的存储空间,为此采用分段结构,由 16 位 段寄存器提供段基址,由不同的寻址方式或寄存器提供 16 位偏移地址,共同组成 20 位的物 理地址,寻址 1M的存储空间。 在实地址方式下,将 1M字节的存储器划分为 4 段,即代码段、数据段、堆栈段和附加 段。每段包含若干个 216个字节(即 64K字节单元),并且每个段的首地址是 1 个可以被 16 整除的数(即段的起始地址的最低 4 位为 0)。在任意时刻,程序能够很方便地访问 4 个分 段的内容。 2.6 什么是逻辑地址?什么是物理地址?在实模式下,如何求存储器的物理地址?设一 个 16 字的数据存储区,它的起始地址为 70A0H:DDF6H.。写出这个数据区的首字单元和 末字单元的物理地址。 答:(1)逻辑地址由段基址(存放在段寄存器中)和偏移地址(由寻址方式提供)两部 分构成,它们都是无符号的 16 位二进制数。逻辑地址是用户进行程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 时采用的地址。 (2)物理地址是 1M 内存空间中每个存储单元惟一的地址,由 20 位二进制数构成。 物理地址是 CPU 访问内存时使用的地址。当用户通过编制程序将 16 位逻辑地址送入 CPU 的总线接口部件 BIU 时,地址加法器通过地址运算变换为 20 位的物理地址。 (3)20 位物理地址的计算公式为: 物理地址=段基址×16+偏移地址 (4)解题思路:按照物理地址的计算公式,计算首字单元的物理地址。在计算末字 单元的物理地址时,注意 16 个字为 32 个字节,占用 32 个(即 20H 个)存储单元。 首字单元的物理地址=70A0H×16+DDF6H =7E7F6H 末字单元的物理地址=7E7F6H+20H-2 =7E816H-2 =7E814H 占用存储器单元的情况如图 2.1 所示。 2.7 80486 微处理器有哪 3 种工作方式?简述没种工作方式的特点和区别。 答:参见 P53~54,2.3 Intel 80486 微处理的工作模式。 2.8 堆栈的数据结构特点是什么?计算机中为什么要设置堆栈? 答:(1)堆栈是 CPU 内存中一个特定的存储区。堆栈的数据结构特点是 “先进后出”, 即最后进入堆栈的数据最先从堆栈中弹出。 (2)CPU 在处理数据的过程中,有一些中间数据需要进行暂存,同时 CPU 在调用 子程序和进行中断响应的过程中,现场和断点都需要进行保护,为此计算机中设置了一定容 量的堆栈。 2.9 简述时钟周期、总线周期和指令周期之间的关系。 答:参见 P55,3.时钟周期、总线周期和指令周期。 2.10 什么叫突发传送和非突发传送?80486 微处理器的最快非突发单总线周期传送由 几个时钟周期组成? 答:(1)由 信号结束的传送周期,称为突发周期传送。由 信号结束的传送周 期,称为非突发周期传送。 (2)80486 微处理器的最快非突发单总线周期传送由 2 个时钟周期组成。 2.11 简述 80486CPU芯片引脚 、 、 、 、 、 的功能。 答:参见 P48~52,2.2.3 Intel 80486 微处理器引脚信号及其功能。 2.12 80486 微处理器的实地址工作模式的物理地址空间是多大?保护模式的物理地址 空间是多大?保护模式虚拟地址空间是多大? 答:解题思路:实地址工作模式的物理地址空间为 1MB;保护模式的物理地址空间为 4GB, 程序可用的虚拟存储空间为 64TB;在保护模式下,通过使用分页功能,可以把虚拟 8086 模 式下的 1MB 地址空间映射到 80486 微处理器的 4GB 物理空间中的任何位置。 2.13 如果在数据写总线周期的字节允许信号代码 等于 1110B时,所发 生的是字节、字还是双字数据传送? 答:解题思路:由P53 表 2.9 可知,当 等于 1110B即只有 为低电平有 效,所以,当 等于 1110B时,是字节数据传送。 2.14 总线状态码 等于 010 时,将进行哪种总线周期? 答:解题思路:由题意可知 =0,表明是对I/O端口操作。 =1,表明是对数据 信号进行操作, =0,表明是读操作,所以,当总线状态码 等于 010 时, 是对I/O端口进行读数据操作。 3.2 习题解答 3.1 分别指出下列指令中源操作数和目标操作数的寻址方式。 ① MOV SI, 100 ② MOV CX, DATA[SI] ③ ADD AX, [BX][DI] ④ SUB AH, DH ⑤ AND DL, [BX+SI+20H] ⑥ MOV [BP+1054H], AX ⑦ OR [DI+3000H], BX ⑧ XOR [BP+SI], AL ⑨ MOV EAX, EBX ⑩ MOV EAX, [ECX][EBX] MOV EAX, [ESI][EDX×2] MOV EAX, [ESI×8] 答:解题思路:根据指令系统关于操作数的 11 种寻址方式,确定每条指令中的两个操 作数分别属于哪种寻址方式。答案见下表 3.2。 表 3.2 习题 3.1 答案 序号 目标操作数 源操作数 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 寄存器 寄存器 寄存器 寄存器 寄存器 基址 寄存器间接 基址加间址 寄存器 寄存器 寄存器 寄存器 立即数 寄存器间接 基址加间址 寄存器 基址加间址 寄存器 寄存器 寄存器 寄存器 基址加间址 基址加比例间址 比例间址 3.2 设 DS=1000H, BX=2865H, SI=0120H,偏移量 D=47A8H,试计算下列各种寻址 方式下的有效地址,并在右边答案中找出正确答案,将它的序号填入括号内: ① 使用 D 的直接寻址 ( ) A. 2865H ② 使用 BX 的寄存器间接寻址 ( ) B. 700DH ③ 使用 BX 和 D 的寄存器相对寻址 ( ) C. 47A8H ④ 使用 BX、SI 和 D 的相对基址变址寻址 ( ) D. 2985H ⑤ 使用 BX、SI 的基址变址寻址 ( ) E. 712DH 答:解题思路:根据各小题指定的寻址方式,确定有效地址 EA 的表达式,然后将题目 给定的原始数据代入该表达式中,则可求得 EA 的值,并和右边给出的答案相对应。 ① (C)② (A)③ (B)④ (E)⑤ (D) 3.3 假定 DS=2000H, ES=2100H, SS=1500H, SI=00A0H, BX=0100H, BP=0010H, 数据段中变量名 VAL 的偏移地址值为 0050H,试指出下列源操作数字段的寻址方式是什么, 其物理地址值是多少? ① MOV AX, [100H] ② MOV AX, [BP] ③ MOV AX, VAL ④ MOV AX, VAL[BX] ⑤ MOV AX, [BX+10] ⑥ MOV AX, [BP+SI] ⑦ MOV AX, [BX] ⑧ MOV AX, VAL[BX][SI] ⑨ MOV AX, ES: [BX] ⑩ MOV AX, ES: [BX][SI] 答:解题思路:各小题中的源操作数均为存储器操作数。①对应指令系统中关于操作数 的寻址方式,分别确定各指令中的源操作数属于哪一种;②根据物理地址的计算方式,物理 地址=段基址×16+偏移地址,计算各指令中源操作数的物理地址。答案见表 3.3。 表 3.3 习题 3.3 答案 序号 寻址方式 物理地址值 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 直接 基址 直接 基址 基址 基址加间址 基址 基址加间址 基址 基址加间址 20100H 15010H 20050H 20150H 2010AH 150B0H 20100H 201F0H 21100H 211A0H 3.4 试根据以下要求,分别写出相应的汇编语言指令。 ① 以寄存器 BX 和 SI 作为基址变址寻址方式把存储器中的一个字数据传送到 CX 寄存 器中。 ② 以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX 相加,把结果送回到那个字单元中。 ③ 以寄存器 BX 和 DI 的基址变址寻址方式把存储器中的一个字节与 AL 寄存器的内容 相加,并把结果送回到存储器中。 ④ 清除以寄存器 SI 间接寻址的存储器字单元,同时清除 CF 标志位。 ⑤ 将一字节立即数 0B6H 与符号地址为 NUM 的存储器字节单元中的内容相比较。 答:解题思路:首先仔细阅读各小题的说明,确定指令中的两个操作数,其次根据描述 确定这两个操作数哪个为源操作数,哪个为目标操作数,(指定保存结果的应确定为目标操 作数);然后根据指定的操作功能确定助记符并写出正确的汇编语言指令。 ① MOV CX, [BX+SI] ② ADD VALUE [BX], AX ③ ADD [BX+DI], AL ④ AND WORD PTR [SI], 0 ⑤ CMP BYTE PTR NUM, 0B6H 3.5 下列程序段中每条指令执行完后,指出 AX 寄存器中及 CF,SF,ZF 和 OF 的值。 MOV AX, 0 DEC AX ADD AX, 7FFFH ADD AX, 2 NOT AX SUB AX, 0FFFFH ADD AX, 8000H SUB AX, 1 AND AX, 58D1H SAL AX, 1 SAR AX, 1 NEG AX ROR AX, 1 答:解题思路:本题为一段完整的程序,前面指令的执行结果将直接影响下一条指令的 执行,根据各条指令的操作功能及对标志位的影响,判断 CF,SF,ZF 和 OF 的值。答案见 表 3.4。 表 3.4 习题 3.5 答案 指令 AX 中的内容 CF SF ZF OF MOV DEC ADD ADD NOT SUB ADD SUB AND SAL SAR NEG ROR 0000H FFFFH 7FFEH 8000H 7FFFH 8000H 0000H FFFFH 58D1H B1A2H D8D1H 272FH 9397H × × 1 0 × 1 1 1 0 0 0 1 1 × 1 0 1 × 1 0 1 0 1 1 0 × × 0 0 0 × 0 1 0 0 0 0 0 × × 0 0 1 × 1 1 0 0 1 0 0 1 3.6 假设 DX=36C5H, CL=5, CF=1,确定下列各条指令执行后,DX 和 CF 中的值。 ① SHR DX, 1 ② SAR DX, CL ③ SHL DX, CL ④ SHL DL, 1 ⑤ ROR DX, CL ⑥ ROL DL, CL ⑦ SAL DH, 1 ⑧ RCL DX, CL ⑨ RCR DH, 1 ⑩ SAR DH, CL 答:解题思路:根据各条指令单独执行时,该指令的操作功能及对标志位的影响,从而 得到该指令的执行结果,答案见表 3.5。 表 3.5 习题 3.6 答案 序号 DX 中的内容 CF ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 1B32H 01B6H 6D8AH 368AH 29B6H 36B8H 6CC5H D8B3H 9BC5H 1BC5H 1 0 0 1 0 0 0 0 0 0 3.7 写出下列每组指令执行后目标操作数中的内容。 ① MOV EAX, 299FF94H ADD EAX, 34FFFFH ② MOV EBX, 500000H ADD EBX, 700000H ③ MOV EDX, 40000000H SUB EDX, 1500000H ④ MOV EAX, 39393834H AND EAX, 0F0F0F0FH ⑤ MOV EBX, 9FE35DH XOR EBX, 0F0F0F0H 答:解题思路:每组指令都组成了一段小程序,按照这两条指令的操作功能,完成相应 的运算,并将运算结果存于指定的存储器内。 ① EAX= 02CEFF93H ② EBX= 00C00000H ③ EDX= 3EB00000H ④ EAX= 09090804H ⑤ EBX= 005F13ADH 3.8 指出下列每条指令执行后相应寄存器中的内容。 ① MOV EAX, 9823F4B6H (AL, AH, AX, EAX) ② MOV EBX, 985C2H (BL, BH, BX, EBX) ③ MOV EDX, 2 000 000H (DL, DH, DX, EDX) ④ MOV ESI, 120000H (SI, ESI) 答:解题思路:下列指令的功能是将一个立即数传送到目标操作数,根据括号中指定的 寄存器,给出指令运行后,相应寄存器存入的结果。 ① AL= B6H, AH= F4H, AX= F4B6H, EAX= 9823F4B6H ② BL= C2H, BH= 85H, BX= 85C2H, EBX= 000985C2H ③ DL= 00H, DH= 00H, DX= 0000H, EDX= 02000000H ④ SI= 0000H, ESI= 00120000H 3.9 分别说明下列每组指令中的两条指令的区别。 ① MOV AX, TABLE LEA AX, TABLE ② AND BL, 0FH OR BL, 0FH ③ JMP SHORT L1 JMP NEAR PTR L1 ④ MOV AX, [BX] MOV AX, BX ⑤ SUB DX, CX CMP DX, CX ⑥ MOV [BP][SI] , CL MOV DS: [BP][SI] , CL 答:解题思路:每组指令从格式上均存在相似之处,但实现的具体操作有所不同,可从 指令的功能、操作上加以分析,找出其不同之处。 ① 第一条指令将变量名 TABLE 确定的一个字数据传送到 AX 中; 第二条指令取变量名 TABLE 的 16 位有效地址值传送到 AX 中。 ② 第一条指令将 BL 中的内容和立即数 0FH 相与,结果回送到 BL 中; 第二条指令将 BL 中的内容和立即数 0FH 相或,结果回送到 BL 中。 ③ 第一条指令为段内无条件短程转移,跳转的范围不得超过带符号的 8 位二进制数 表示的字节范围; 第二条指令为段内无条件近程转移,跳转的范围不得超过带符号的 16 位二进制 数表示的字节范围。 ④ 第一条指令源操作数为存储器,将 BX 的内容确定的相邻两个存储单元中的内容 传送到 AX 中; 第二条指令源操作数为寄存器,将 BX 的内容传送到 AX 中。 ⑤ 第一条指令将 DX 的内容减去 CX 的内容,结果回送到 DX 中; 第二条指令只是将 DX 的内容和 CX 的内容相减作大小比较,不回送结果。 ⑥ 第一条指令将 CL 的内容传送到堆栈段中由 BP+SI 确定的单元中; 第二条指令将 CL 的内容传送到数据段中由 BP+SI 确定的单元中。 3.10 设堆栈指针 SP 的初值为 2000H, AX=3000H, BX=5000H,试问: ① 执行指令 PUSH AX 后,SP=? ② 再执行 PUSH BX 及 POP BX 后,SP=?, AX=?, BX=?画出堆栈变化示 意图。 答:解题思路:本题主要检验对堆栈操作指令的掌握情况,一方面要明确 PUSH、POP 指令的功能、操作,另一方面还要熟练掌握指令执行过程中栈区内容及 SP 的变 化情况。 答案如下: ① SP= 1FFEH ② SP= 1FFEH, AX= 3000H, BX= 5000H (图略,参见 P86 图 3.10) 3.11 已知当前 SS=10A0H, SP=0040H, AX=FF00H, BX=8850H,请用图表示执行下 列四条指令过程中,堆栈中的内容变化情况。 PUSH AX PUSH BX POP AX POP BX 答:解题思路:先求堆栈栈底单元的物理地址,然后逐条执行堆栈操作指令。 堆栈段中栈底的物理地址= SS×16+SP=10A0H 16+0040=10A40H 堆栈段中的内容变化情况如图 3.1 所示。 指令执行的结果,实际上是将 AX 和 BX 的内容进行了交换。 3.12 编写一程序段,实现下述要求。 ① 将存储器中 1A00H 单元中的一个字节数据传送到 1B00H 单元中; ② 使 AX 寄存器的低四位清 0,其余位不变; ③ 使 AL 寄存器的低四位保持不变,高四位取反; ④ 使 DH 寄存器的低四位为 1,高四位不变。 答:解题思路:根据每小题的要求,选择合适的指令编写相应的指令序列(不编制段 定义结构)。 ① MOV AL, [1A00H] MOV [1B00H], AL ② AND AX, 0FFF0H ③ XOR AL, 0F0H ④ OR DH, 0FH 3.13 若有两个四字节的无符号数相加,这两个数分别存放在 2000H 和 3000H 开始的存 储单元中,得到的和也为四字节,存放在 2000H 开始的单元中,编一段程序完成这两个数 的相加过程。 答:解题思路:该题目属于两个多字节二进制数相加的过程,应选择的关键指令是 ADC, 采用循环结构程序完成两数相加的过程,但要特别注意最低字节相加前要使 CF=0。 根据题意编写的程序段如下: CLC MOV CX, 4 MOV SI, 2000H MOV DI, 3000H AA: MOV AL, [SI] ADC AL, [DI] MOV [SI],AL INC SI INC DI LOOP AA HLT 3.14 若 32位二进制数存放于 DX 和 AX中,试利用移位与循环移位指令实现以下操作: 1)DX 和 AX 中存放的是无符号数,将其分别乘以 2 和除以 2; 2)DX 和 AX 中存放的是有符号数,将其分别乘以 2 和除以 2。 答:解题思路:给据题意不用乘法、除法指令,而利用左移指令完成乘以 2,右移指令 完成除以 2。一是要注意无符号数及有符号数移位指令的选择,二是要注意对第一个字数据 移出来的进位标志位的处理。 ① 乘以 2: 除以 2: SHL AX, 1 SHR DX, 1 RCL DX, 1 RCR AX, 1 ② 乘以 2: 除以 2: SAL AX, 1 SAR DX, 1 RCL DX, 1 RCR AX, 1 3.15 试编写出将内存 2500H 开始的 256 个字节单元清 0 的程序。 答:解题思路:建立地址指针指向内存首地址 2500H,采用循环结构程序将 256 个单元 依次清零。根据题意编写的程序段如下: MOV CX, 256 MOV AL, 0 MOV BX, 2500H AA: MOV [BX], AL INC BX LOOP AA HLT 3.16 设 a, b, c 分别为组合十进制数的百位、十位、个位数,试不用乘法指令完成(a× 10+b)×10+c。 答:解题思路:由于每位十进制数均为组合 BCD 码,分别用四位二进制数表示,其每 位乘以 10 的过程可用左移指令将其连续左移四位实现。根据题意编写的程序段如下: MOV AL, a MOV CL, 4 SHL AL, CL ADD AL, b MOV AH, 0 MOV CL, 4 SHL AX, CL ADD AX, c HLT 3.17 假设 X 和 X+2 单元的内容为双精度数 p, Y 和 Y+2 单元的内容为双精度数 q, (X 和 Y 为低位字),试说明下列程序段做什么工作? MOV DX, X+2 MOV AX, X ADD AX, X ADC DX, X+2 CMP DX, Y+2 JL L2 JG L1 CMP AX, Y JBE L2 L1: MOV AX, 1 JMP SHORT EXIT L2: MOV AX, 2 EXIT:HLT 答:本程序段完成的工作为: ① 先将 2p 和 q 进行大小比较; ② 当 2p>q 时,AX=1,暂停; 当 2P≤Q 时,AX=2,暂停。 3.18 试编制一个程序段,完成图 3.20 中 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图所规定的功能。 图 3.20 题 3.18 的程序流程图 答:解题思路:图中用两个条件区别三个分支,可采用两条比较指令完成大小比较,利 用条件转移指令实现分支程序的执行。 根据图 3.20 编写的程序段如下: CMP AX, -1 JLE LOOP1 CMP AX, 1 JL LOOP2 MOV AX, 1 JMP LOOP3 LOOP1: MOV AX, -1 JMP LOOP3 LOOP2: MOV AX, 0 LOOP3: HLT 4.2 习题解答 4.1 将下列左边各项与右边的名词对应起来,找出正确答案的序号填入括号中。 ① 使计算机执行某种操作的命令 ( )A.代码段 ② 表示计算机执行某种操作的符号 ( )B.源程序 ③ 使汇编程序执行某种操作的命令 ( )C.汇编程序 ④ 用汇编语言或高级语言编写的程序 ( )D.指令 ⑤ 以机器码指令组成的程序 ( )E.伪指令 ⑥ 指出指令在程序中位置的符号地址 ( )F.编译程序 ⑦ 指出数据存储单元的符号地址 ( )G.目标程序 ⑧ 将高级语言的程序翻译成机器码程序的实用程序 ( )H.助记符 ⑨ 存放指令机器码的存储器区段 ( )I.标号 ⑩ 将汇编语言程序翻译成机器码程序的实用程序 ( )J.变量 答:⑨④⑩①③⑧⑤②⑥⑦ 4.2 什么是宏汇编语言?宏汇编语言与高级语言相比有什么优缺点? 答:参见 P137~138,4.1 概述。 4.3 MASM 宏汇编程序的运算符分为几类?简述各类运算符的特点与用途。 答:参见 P141~147,4.3.2 MASM 宏汇编语言表达式。 4.4 什么是变量?什么是变量的 3 重属性? 答:参见 P140~141,4.3.1 MASM 宏汇编语言数据。 4.5 什么是标号?什么是标号的 3 重属性? 答:参见 P140~141,4.3.1 MASM 宏汇编语言数据。 4.6 汇编程序设计中为什么要用段定义语句和段分配语句?它们的格式如何? 答:参见 P152~153,4.4.3 段定义伪指令。 4.7 试阐述六个段寄存器段基址的装入有何不同? 答:参见 P152~153,4.4.3 段定义伪指令。 4.8 在主——子程序结构的程序中,参数传递的基本方法有哪些? 答:参见 P182,3.子程序调用时参数的传递方法。 4.9 画图说明下列语句所分配的存储空间及初始化的数据值。 RSS1 DW 25 RSS2 DW 4 DUP(?),2 CNT EQU 10 RSS3 DD CNT DUP(?) RSS4 DB 2 DUP (?,CNT DUP(10)) RSST DB ‘HOW ARE YOU?’ 答:见下页图 4.1 所示。 4.10 已知: ORG
本文档为【微机原理与接口技术(基于32位机)课后答案_马春燕主编】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_650054
暂无简介~
格式:pdf
大小:521KB
软件:PDF阅读器
页数:41
分类:
上传时间:2010-07-28
浏览量:2523