《现代微型计算机原理与接口技术》课后答案-Xx.pdf_第1页
《现代微型计算机原理与接口技术》课后答案-Xx.pdf_第2页
《现代微型计算机原理与接口技术》课后答案-Xx.pdf_第3页
《现代微型计算机原理与接口技术》课后答案-Xx.pdf_第4页
《现代微型计算机原理与接口技术》课后答案-Xx.pdf_第5页
已阅读5页,还剩98页未读 继续免费阅读

《现代微型计算机原理与接口技术》课后答案-Xx.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国高等学校 十全国高等学校 十 一一五 重点规划教材五 重点规划教材 现代微型计算机原理现代微型计算机原理 与接口技术教程与接口技术教程 习题解答 习题解答 主主 编编 杨文显 杨文显 副主编副主编 杨晶鑫杨晶鑫 编编 著著 黄春华黄春华 胡建人胡建人 宓双宓双 清 华 大 学 出 版 社 习习 题题 一一 1 8086CPU 由哪几个部件构成 它们的主要功能各是什么 8086 CPU 由指令执行部件 EU 和总线接口部件 BIU 两个部份组成 指令执行部件主要 功能是执行指令 总线接口部件的主要功能是完成访问存储器或 I O 端口的操作 形成访问存储器的物理地址 访问存储器取得指令并暂存到指令队列中等待执行 访问存储器或 I O 端口以读取操作数参与EU 运算 或存放运算结果 2 什么是逻辑地址 什么是物理地址 它们各自如何表示 如何转换 程序中使用的存储器地址称为逻辑地址 由16 位 段基址 和16 位 偏移地址 段内 地址 组成 段基址表示一个段的起始地址的高16 位 偏移地址表示段内的一个单元距离段 开始位置的距离 访问存储器的实际地址称为物理地址 用20 位二进制表示 将两个16 位 二进制表示的逻辑地址错位相加 可以得到20 位的物理地址 物理地址 段基址 16 偏移地址 在 32 位 CPU 的保护模式下 逻辑地址 的表示产生了一些变化 请参考第8 章的相关 内容 3 什么是 堆栈 它有什么用处 在使用上有什么特点 堆栈是内存中的一块存储区 用来存放专用数据 例如 调用子程序时的入口参数 返 回地址等 这些数据都按照 先进后出 的规则进行存取 SS 存放堆栈段的段基址 SP 存 放当前堆栈栈顶的偏移地址 数据进出堆栈要使用专门的堆栈操作指令 SP 的值在执行堆栈 操作指令时根据规则自动地进行修改 4 设X 36H Y 78H 进行X Y 和X Y 运算后 FLAGS 寄存器各状态标志位各是 什么 5 按照传输方向和电气特性划分 CPU 引脚信号有几种类型 各适用于什么场合 CPU 引脚传输的信号按照传输方向划分 有以下几种类型 输出 信号从CPU 向外部传送 输入 信号从外部送入CPU 双向 信号有时从外部送入CPU 有时从CPU 向外部传送 双向信号主要用于数据信号的传输 输出信号用于传输地址信号和一些控制 X 36H 00110110B Y 78H 01111000B 10101110B CF 0 SF 1 OF 1 PF 0 ZF 0 X 36H 00110110B Y 78H 01111000B 10111110B CF 1 SF 1 OF 0 PF 1 ZF 0 信号 输入信号主要用于传输外部的状态信号 例如READY 和请求 中断 DMA 信号 按照信号的电器特性划分 有以下几种类型 一般信号 用来传输数据 地址信号时 高电平表示 1 低电平表示 0 用来 表示正逻辑的控制 状态信号时 1 表示有效 0 表示信号无效 用来表示负逻辑的控制 状态信号时 0 表示有效 1 表示信号无 效 三态信号 除了高电平 低电平两种状态之外 CPU 内部还可以通过一个大的电 阻阻断内外信号的传送 CPU 内部的状态与外部相互隔离 也称为 悬 浮态 CPU 放弃总线控制权 允许其他设备使用总线时 将相关信 号置为 悬浮态 6 8086CPU 以最小模式工作 现需要读取内存中首地址为 20031H 的一个字 如何执 行总线读周期 请具体分析 为了读取内存中首地址为20031H 的一个字 需要执行二个总线读周期 第一个总线周期读取20031H 字节内容 进行的操作如下 T1状态 IO M 1 指出 CPU 是从内存读取数据 随后 CPU 从地址 状态复用线 A19 S6 A16 S3 和地址 数据复用线 AD15 AD0 上发出读取存储器的20 位地址 20031H 为了锁存地址 CPU 在T1状态从ALE 引脚输出一个正脉冲作为地址锁存信号 由于需要读取高8 位数据线上的数据 奇地址 BHE 0 为了控制总线收发器8286 接受数据 R DT 0 T2状态 地址信息撤消 地址 数据线AD15 AD0进入高阻态 读信号RD开始变为低 电平 有效 DEN 0 用来开放总线收发器8286 T3状态 CPU 检测 READY 引脚信号 若 READY 为高电平 有效 时 表示存储器 或 I O 端口已经准备好数据 CPU 在T3状态结束时读取该数据 若READY 为低电平 则表 示系统中挂接的存储器或外设不能如期送出数据 要求CPU 在 T3和T4状态之间插入1 个或 几个等待状态Tw TW状态 进入 TW状态后 CPU 在每个 TW状态的前沿 下降沿 采样 READY 信号 若为低电平 则继续插入等待状态TW 若READY 信号变为高电平 表示数据已出现在数 据总线上 CPU 从AD15 AD0读取数据 T4状态 在T3 TW 和 T4状态交界的下降沿处 CPU 对数据总线上的数据进行采样 完成读取数据的操作 第二个总线周期读取地址为 20032H 字节的内容 CPU 发出的信号与第一个周期类似 区别在于T1状态CPU发出存储器地址为20032H 由于只需要读取低8位数据线上的数据 偶 地址 BHE 1 在CPU 内部 从20031H 读入的低位字节和从20032H 读入的高位字节被拼装成一个字 7 8086CPU 有几种工作方式 各有什么特点 8086 8088 CPU 有两种工作模式 最大工作模式和最小工作模式 所谓最小工作模式 是指系统中只有一个 8086 8088 处理器 所有的总线控制信号都由 8086 8088 CPU 直接产生 构成系统所需的总线控制逻辑部件最少 最小工作模式因此得名 最小模式也称单处理器模式 最大模式下 系统内可以有一个以上的处理器 除了 8086 8088 作为 中央处理器 之 外 还可以配置用于数值计算的8087 数值协处理器 用于 I O 管理的 I O 协处理器 8089 各个处理器发往总线的命令统一送往 总线控制器 由它 仲裁 后发出 CPU 两种工作模式由MX MN引脚决定 MX MN接高电平 CPU 工作在最小模式 将MX MN接地 CPU 工作在最大模式 8 分析8086CPU 两个中断输入引脚的区别 以及各自的使用场合 INTR 用于输入可屏蔽中断请求信号 电平触发 高电平有效 中断允许标志 IF 1 时才 能响应 INTR 上的中断请求 NMI 用于输入不可屏蔽中断请求信号 上升沿触发 不受中断允许标志的限制 CPU 一 旦测试到NMI 请求有效 当前指令执行完后自动转去执行类型2 的中断服务程序 NMI 引脚用于连接CPU 外部的紧急中断请求 例如内存校验错 电源掉电报警等 INTR 引脚用于连接一般外部设备的中断请求 9 什么是时钟周期 总线周期 指令周期 它们的时间长短取决于哪些因素 时钟周期 CPU 连接的系统主时钟CLK一个周期的时间 CLK信号频率越高 时钟周 期越短 总线周期 CPU 通过外部总线对存储器或 I O 端口进行一次读 写操作的过程称为总线 周期 8086CPU 总线周期一般由四个时钟周期组成 存储器 IO 设备 接口 速度不能满足 CPU 要求时 可以增加一个或多个时钟周期 指令周期 CPU 执行一条指令的时间 包括取指令和执行该指令所需的全部时间 称 为指令周期 指令周期的时间主要取决于主时钟的频率和指令的复杂程度 它也受到存储器 或 IO 设备接口工作速度的影响 10 在一次最小模式总线读周期中 8086CPU 先后发出了哪些信号 各有什么用处 T1状态 IO M指出CPU 是从内存 1 还是从 IO 端口 0 读取数据 随后CPU 从 地址 状态复用线 A19 S6 A16 S3 和地址 数据复用线 AD15 AD0 上发出读取存储器的 20 位地址 对 IO 端口访问时从AD15 AD0上发出16 位地址 为了锁存地址 CPU 在T1状态从ALE 引脚输出一个正脉冲作为地址锁存信号 如果需要读取高8 位数据线上的数据 奇地址 读取一个字 BHE 0 为了控制总线收发器8286 数据传输方向 R DT 0 T2状态 读信号RD开始变为低电平 有效 DEN 0 用来开放总线收发器8286 T3状态 CPU 检测READY 引脚信号 若READY 为高电平 有效 表示存储器或 I O 端口已经准备好数据 进入 T4状态 若 READY 为低电平 无效 表示存储器或 I O 端口 尚未准备好数据 插入一个或多个TW状态 直到READY 变为高电平 T4状态 在T3 TW 和 T4状态交界的下降沿处 CPU 对数据总线上的数据进行采样 完成读取数据的操作 11 结合指令 OUT 21H AL 具体叙述最大模式 总线写周期 总线上的相关信号 T1状态 地址 数据复用线 AD15 AD0 上出现访问 IO 端口的16 位地址21H 由于地 址为奇数 需要通过高8 位数据线访问端口 BHE 0 T2状态 IOW 0 表示本周期对 IO 端口进行写操作 地址 数据复用线 AD15 AD0 上出现来自AL的 8 位数据 T3状态 若READY 为高电平 有效 表示 I O 端口已经准备好接收数据 反之 表示 I O 端口尚未准备好接收数据 需要CPU 插入TW 周期进行等待 直到READY 出现高电平 有效 T4状态 CPU 结束本周期 习习 题题 二二 1 内存储器主要分为哪两类 它们的主要区别是什么 内存储器分为随机存取存储器RAM Radom Access Memory 和只读存储器ROM Read Only Memory 两类 RAM 中信息可以按地址读出 也可以按地址写入 RAM 具有易失性 掉电后原来存储 的信息全部丢失 不能恢复 ROM 中的信息可以按地址读出 但是在普通状态下不能写入 它的内容一般不能被改 变 ROM 具有 非易失性 电源关闭后 其中的信息仍然保持 2 说明SRAM DRAM MROM PROM 和EPROM 的特点和用途 SRAM 静态RAM 读写速度快 但是集成度低 容量小 主要用作Cache 或小系统的 内存储器 DRAM 动态RAM 读写速度慢于静态RAM 但是它的集成度高 单片容量大 现代 微型计算机的 主存 均由DRAM 构成 MROM 掩膜 ROM 由芯片制作商在生产 制作时写入其中数据 成本低 适合于批 量较大 程序和数据已经成熟 不需要修改的场合 PROM 可编程ROM 允许用户自行写入芯片内容 芯片出厂时 所有位均处于全 0 或全 1 状态 数据写入后不能恢复 因此 PROM 只能写入一次 EPROM 可擦除可编程只读存储器 可根据用户的需求 多次写入和擦除 重复使用 用于系统开发 需要反复修改的场合 3 已知一个SRAM 芯片的容量为8K 8b 该芯片有一个片选信号引脚和一个读 写控制 引脚 问该芯片至少有多少个引脚 地址线多少条 数据线多少条 根据存储芯片地址线数量计算公式 k log2 1024 8 log2 213 13 即总计有13 根地址线 另有8 根数据线 2 根电源线 所以该芯片至少有25 13 8 1 1 2 根引脚 4 巳知一个DRAM 芯片外部引脚信号中有4 根数据线 7 根地址线 计算它的容量 根据存储容量计算公式S 2k I 可得该芯片的存储容量为 214 4 16K 4bit 位 也 可表示为64Kb 8KB 字节 5 32M 8b 的DRAM 芯片 其外部数据线和地址线为多少条 根据存储芯片地址线数量计算公式 k log2 1024 1024 32 log2 225 25 即需 要 25 根地址线 但是 由于DRAM 芯片的地址采用分时输入的方法 所以实际需要的地址 线只有理论值的一半 此处为 13 根 数据线8 根 6 DRAM 为什么需要定时刷新 DRAM 靠 MOS 管极间电容存储电荷的有无决定所存信息是 0 还是 1 由于漏电流的存 在 它存储的信息不能长时间保存 需要定时重新写入 称为 刷新 7 74LS138 译码器的接线如图 2 28 所示 写出 0 Y 2 Y 4 Y 6 Y 所决定的内存地址范 围 从图看出 该存储系统的片内地址线有 13 根 A12 A0 是一个由 8KB 存储芯片组成 的存储系统 A17 地址线不确定 它的地址分布为 00 0 CBA 其中 CBA 作为译码输入 与输出选择有关 表示可以为 0 也可以为 1 于是 0 Y 对应的内存地址范围是 00000H 01FFFH 或 20000H 21FFFH 2 Y 对应的内存地址范围是 04000H 05FFFH 或 24000H 25FFFH 4 Y 对应的内存地址范围是 08000H 09FFFH 或 28000H 29FFFH 6 Y 对应的内存地址范围是 0C000H 0DFFFH 或 2C000H 2DFFFH 8 叙述EPROM 的编程过程 并说明EPROM 和EEPROM 的不同点 EPROM 的编程过程 标准编程方式 Vpp 上加编程电压 地址线 数据线上给出要编程单元的地址及其数据 并使CE 0 OE 1 上述信号稳定后 在PRG端加上宽度为 50 5ms 的负脉冲 就可将一个字节的数 据写入相应的地址单元中 不断重复这个过程 将数据逐一写入 快速编程方式 使用100 s 的编程脉冲依次写完所有要编程的单元 然后从头开始校验每个写入的字节 若写得不正确 则重写这个单元 写完后再校验 不正确还可再写 直到全部正确 EPROM 和EEPROM 的不同点 EPROM 芯片用紫外线光照射擦除芯片的内容 擦除时需要把芯片从电路板上拔下 擦 图 2 28 译码 除操作对整个芯片进行 EPROM 芯片编程需要外加 高电压 所以需要专用的 编程器 才能实现 EPROM 的编程一般情况下对整个芯片进行 EEPROM 芯片的擦除用电信号实现 无需把芯片从电路板上拔下 可以进行 在系统编 程 EEPROM 以字节为单位重写 EEPROM 没有单独的擦除操作 写入就意味着擦除了原 来的内容 所以使用比EPROM 快速方便 相比较而言 EEPROM 芯片的编程比较接近RAM 的写入 它们之间的区别主要体现在速度上 RAM 写入与读出的速度相近 不需要其他的 联络信号 EEPROM 的写入比起读出明显要慢 为了掌握写入时间 EEPROM 通常设置了 一根 状态 引脚 供联络使用 9 下列容量的ROM 芯片除电源和地线 还有多少个输入引脚和输出引脚 写出信号名 称 1 64 4 2 512 8 3 128K 8 4 16K 8 5 1M 16 根据存储容量计算公式可得以上各芯片的地址 数据引脚分别为 64 4 地址线k log2 64 log2 26 6 根 数据线 4 根 512 8 地址线k log2 512 log2 29 9 根 数据线 8 根 128k 8 地址线k log2 128 1024 log2 217 17 根 数据线 8 根 16k 8 地址线k log2 16 1024 log2 214 14 根 数据线 8 根 1M 16 地址线k log2 1024 1024 log2 220 20 根 数据线 16 根 此外 所有ROM 芯片都需要一根片选信号引脚 对于PROM EPROM 通常还需要 输出允许 和 编程脉冲 输入引脚 EEPROM 芯片除了有 片选 输出允许 和 写允许 外 通常还有表示 写入完成 的状态信号引脚 10 已知RAM 芯片的容量为 1 16K 8 2 32K 8 3 64K 8 4 2K 8 如果RAM 的起始地址为3400H 则各RAM 对应的末地址为多少 存储器的末地址 首地址 芯片内字节数 容量 1 上述各芯片对应RAM 的末地址为 16K 8 末地址是3400H 4000H 1 73FFH 32K 8 末地址是3400H 8000H 1 B3FFH 64K 8 末地址是3400H 10000H 1 133FFH 2K 8 末地址是3400H 800H 1 3BFFH 11 如果存储器起始地址为1800H 末地址为1FFFH 求该存储器的容量 该存储器的容量为 1FFFH 1800H 1 8 800H 8 该存储器有2048 8 个位 也可以写作2KB 12 有一个存储体 其地址线15 条 数据线8 条 则 1 该存储体能够存储多少个汉字 2 如果该存储体由2K 4 位的芯片组成 需要多少片 3 采用什么方法扩展 分析各位地址线的使用 该存储体容量为 215 8 32KB 存储一个汉字需要二个字节 因此 它能够存储 16384 16K 个汉字 需要2K 4 位的芯片32 片 32K 8 2K 4 32 可采用字位全扩展方法 由2 片 4 位的芯片组成1 组8 位的存储单元 16 组扩展成 32K 的 8 位存储体 芯片直接使用的地址线 片内地址 11 根 A0 A10 另外需要4 根高位地 址 连接到4 16 译码器输入端 产生16 个译码信号用作 16 个芯片组的片选信号 剩余的地 址线用来确定该存储体的首地址 13 试说明 Flash Memory芯片的特点及28F040 的编程过程 Flash Memory也称为 闪速存储器 有时直接称之为 Flash Flash 既有ROM 非易 失性的特点 又能够在线擦除和重写 既可读又可写 同时有很高的存取速度 具有集成度 高 价格低 耗电少等优点 目前存取速度已突破了30ns 掉电后信息可以保持10 年 Flash 的编程方法与E2PROM 相同 28F040 的编程写入过程采用字节编程方式 首先 向 28F040 状态寄存器写入命令 10H 再在指定的地址单元写入相应数据 接着查询状态 判断这个字节是否写好 若写好则重复上面过程写入下一个字节 直到全部字节写入 28F040 的编程速度很快 一个字节的写入时间仅为8 6 s 14 利用全地址译码将6264 芯片接到8088 系统总线上 地址范围为30000H 31FFFH 画出逻辑图 全地址译码可以保证存储器芯片上的每一个单元在整个内存空间中具有唯一的 独占的 一个地址 参考教材相关内容 6264 芯片有 13 根地址线 剩余的高位 7 根地址线通过译码 组合确定该芯片的起始地址 30000H 由 30000H 地址得出对应的地址线状态为 0011 000 0 0000 0000 0000 可以看出 A13 A19地址线为 0011 000 所以译码组合 应逻辑为 1 CS 13 A 41 A 15 A A16 A17 18 A 19 A 13 A 41 A 15 A 18 A 19 A A16 A17 A13 A14 A15 A18 A19 A16 A17 具体逻辑如右图所示 15 若用2164芯片构成容量为128KB的存储器 需多少片2164 至少需多少根地址线 其中多少根用于片内寻址 多少根用于片选译码 2164A 是容量为64K 1 位的动态随机存储器芯片 构成 128KB 的存储器需要2164A 芯 全地址译码连接图 片 16 片 128K 8 64K 1 16 由于地址空间为 128K 需要的地址线总数为 17 根 217 128K 其中 片内地址线 16 根 216 64K 片选地址线 1 根 17 16 1 每 8 个 2164 芯片构成一组 进行位扩展 得到64KB 存储器 两个这样的 组 进行地址扩展 构成128KB 的存储器 16 某 8088 系统用2764 ROM 芯片和6264 SRAM 芯片构成 16KB 的内存 其中 RAM 的地址范围为 FC000H FDFFFH ROM 的地址范围为 FE000H FFFFFH 试利用 74LS138 译码 画出存储器与CPU 的连接图 并标出总线信号名称 2764 和 6264 均为 8KB 的存储芯片 需要 13 根地址线 A0 A12 用于片内寻址 8088 系统的其他地址线 A13 A19 用于产生片选信号 FC000H 的地址线状态为 1111 110 0 0000 0000 0000 FE000H 的地址线状态为 1111 111 0 0000 0000 0000 将A13 A15用作译码输入 其他地址 A16 A19 1111 用作译码控制 可以得到如下译码 控制电路 连接如下图所示 17 存储周期指的是 A A 存储器进行连续读或写操作所允许的最短时间间隔 B 存储器的读出周期 C 存储器进行连续写操作所允许的最短时间间隔 D 存储器的写入周期 存储周期是指连续两次访问存储器之间所需的最小时间 存取时间是CPU 访问一次存储 器 写入和读出 所需的时间 存储周期等于存取时间加上存储器的恢复时间 所以应选择A 18 某一 EPROM 芯片 其容量为 32K 8 除电源和地线外 最小的输入引脚和输出引 脚分别为 C A 15 和8 B 32 和8 C 17 和8 D 18 和10 容量为32K 8 的 EPROM 芯片 其数据线为8 根 地址线为15 根 片选线1 根 读写 控制线1 根 其中地址线 片选线 读写控制线均为EPROM 的输入信号 共17 根 数据线 在正常工作状态下用于EPROM 输出 计8 根 所以应选择C 19 掩膜ROM 在制造时通过光刻是否连接MOS 管来确定0 和 1 如果对应的某存储单元 位没有连接MOS 管 则该位信息为 C A 不确定 B 0 C 1 D 可能为0 也可能为1 掩膜 ROM 芯片内每一个二进制位对应于一个 MOS 管 该位上存储的信息取决于这个 MOS 管的栅极是否被连接到字线上 栅极被连接 该单元被选中时 漏极与 地 相通 输 出低电平 该位存储的信息就是 0 栅极未连接时 尽管字线被选中 输出端与 地 仍然 不能导通 输出高电平 对应的信息为1 所以应选择C 20 SRAM 和DRAM 存储原理不同 它们分别靠 A 来存储0 和1 的 A 双稳态触发器的两个稳态和极间是否有足够的电荷 B 内部熔丝是否断开和双稳态触发器 C 极间电荷和浮置栅是否积累足够的电荷 D 极间是否有足够的电荷和双稳态触发器的两个稳态 静态随机存储器 SRAM 的每一个位存储单元有一个双稳态触发器 由 4 个晶体管组 成 它们的状态确定了该存储单元存储的1 位二进制信息 而动态随机存储器 DRAM 一 般采用单管电路组成 它由一个MOS 管T1 和一个电容C 构成 写入时其信息通过位线 数 据线 存人电容 C 中 写入 1 对电容充电 写入 0 则对电容放电 读出时存储在电 容C 上的电荷通过T1 输出到位线上 所以应选择A 习习 题题 三三 1 如果用24b 储存一个无符号数 这个数的范围是什么 如果储存的是一个补码表示的 有符号数 那么这个数的范围又是什么 答 如果用24b 储存一个无符号数 这个数的范围应为 0 224 1 如果用24b 储存一个补码表示的有符号数 这个数的范围应为 223 223 1 2 用符号 把下面的数按从大到小的顺序 连接 起来 X1 补 10110111 X2 原 10110111 X3 反 10110111 X4 补 10110110 X5 无符号数 10110111 解 X1 0100 1001B X2 011 0111B X3 0100 1000B X4 0100 1010B X5 1011 0111B 因此 X5 X2 X3 X1 X4 3 用 8 位补码完成下列运算 用二进制 真值 的格式给出运算结果 并指出运算后 CF OF ZF SF PF标志位的状态 1 127 126 2 126 127 3 100 120 4 100 120 解 1 127 126 127 补 0111 1111 126 补 0111 1110 127 126 补 1111 1101 127 126 0000 0011 溢出 COZSP 01010 2 126 127 126 补 0111 1110 127 补 1000 0001 126 127 补 1111 1111 126 127 000 0001 COZSP 10011 3 100 120 100 补 1001 1100 120 补 1000 1000 100 120 补 0010 0100 100 120 0010 0100 溢出 COZSP 01001 4 100 120 100 补 1001 1100 120 补 1000 1000 120 补 求补 0111 1000 100 120 补 0001 0100 100 120 0001 0100 COZSP 00001 4 把二进制代码1001011101011000 分别 看作 是 1EH 30H 41H 42H 43H 0FFH 00H 0CAH 0FFH 00H 0FEH 0FFH 44H 43H 0020H 002EH X Y 1 二进制无符号数 2 二进制补码 3 压缩BCD 码 4 非压缩BCD 码 哪一种情况下它代表的 值 最大 答 看作二进制无符号数时 它代表的 值 最大 分析 看作二进制补码时 它代表一个负数 而其它的情况下 它均为正数 因此 看作二 进制补码时 它代表的值最小 把这组代码用十六进制数字形式写出 9758 对于无符号数 它的值等于十六进制的9758H 对于压缩BCD 码 它的值等于十进制的9758 显然小于9758H 对于非压缩BCD 码 它的值等于十进制的78 显然更小于9758H 因此 看作二进制无符号数时 它代表的 值 最大 5 某数据段内有如下数据定义 X db 30 30H ABC 2 3 11001010B dw 0FFH 2 CD Y dd 20 dup 15 3 dup 0 Z db 3 dup W dw Z X 假设变量X 的偏移地址为20H 1 写出变量X 各数据在内存中的具体位置和相关内存单元的值 2 写出变量Y Z 的偏移地址 3 写出变量W 的值 答 1 变量X 各数据在内存中的具体位置和相关内存单元的 值如右图 变量Y 的偏移地址为002EH 变量 Z的偏移地址为002EH 4 5 20 01BEH 变量W 的值等于变量 Z和X 偏移地址之差 01BEH 0020H 019EH 它等于变量X Y所占用内存单元的字节数 6 下列指令的源操作数段基址在哪个段寄存器中 1 MOV AX BP SI 2 MOV AX CS 8 DI 3 MOV AX 2 EBP 1 4 MOV AX FS 4 ESP 5 MOV AX 2 EBP EAX 6 MOV AX ECX EBP 4 7 MOC AX EDX EBP 8 MOV AX ES 10 EBP EAX 2 答 各指令源操作数段基址使用的段寄存器如下 1 SS 2 CS 3 SS 4 FS 5 SS 6 DS 7 DS 8 ES 7 判断下列指令是否正确 若不正确 指出错误原因 1 MOV AX EBX 2 MOV SI DL 3 MOV EBP ESP EAX 3 4 LEA AX 3006H 5 MOV BP DI 0 6 MOV SI DI 7 MOV ES 1000H 8 MOV AX X 2 9 MOV AX CX 2 10 MOV EAX EAX 2 AL 答 1 指令MOV AX EBX 是正确的 2 指令MOV SI DL是错误的 两个操作数类型不匹配 3 指令MOV EBP ESP EAX 3 是错误的 比例因子不能为3 4 指令 LEA AX 3006H 是错误的 LEA 指令的源操作数必须为内存操作数 5 指令MOV BP DI 0 是错误的 操作数类型无法确定 6 指令MOV SI DI 是错误的 不能同时出现两个内存操作数 7 指令MOV ES 1000H 是错误的 装载段寄存器时 源操作数不能为立即数 8 如果 X 是用常数表达式定义的符号 例如 X EQU 5 6 或者是用 DW 定义的内存变量 指令MOV AX X 2 是正确的 否则这条指令是错误的 9 指令MOV AX CX 2 是错误的 源操作数表达式CX 2 不是一个可以直接计算 的 常数表达式 10 指令MOV EAX EAX 2 AL是正确的 8 现有 DS 2000H BX 0100H SI 0002H 20100H 12H 20101H 34H 20102H 56H 20103H 78H 21200H 2AH 21201H 4CH 21202H 0B7H 21203H 65H 说明下列指令执行后AX 寄存器的内容 1 MOV AX 1200H 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 答 1 指令MOV AX 1200H 执行后 AX 1200H 立即数操作数 2 指令MOV AX BX 执行后 AX 0100H 寄存器操作数 3 指令MOV AX 1200H 执行后 AX 4C2AH 直接地址 EA 1200H 4 指令MOV AX BX 执行后 AX 3412H 寄存器间接寻址 EA 0100H 5 指令MOV AX 1100H BX 执行后 AX 4C2AH 相对地址 EA 1200H 6 指令MOV AX BX SI 执行后 AX 7856H 基址变址寻址 EA 0102H 7 指令MOV AX 1100H BX SI 执行后 AX 65B7H 相对基址变址寻址 EA 1202H 9 下面两条指令的功能有什么区别 MOV AX BX MOV AX BX 答 指令 MOV AX BX 把BX 寄存器的内容装入到AX 中 指令 MOV AX BX 把内存储器一个字的内容装入 AX 寄存器 该字的段基址在 DS 中 偏移地址在BX 中 10 写出执行以下计算的指令序列 其中各变量均为16 位有符号数 1 Z W Z X 2 Z W X 6 R 9 3 Z W X Y 6 R 余数 4 Z W X 5 Y 2 解 1 MOV AX W MOV BX Z SUB BX X ADD AX BX MOV Z AX 2 MOV AX W MOV BX X ADD BX 6 SUB AX BX MOV BX R ADD BX 9 SUB AX BX MOV Z AX 3 MOV AX W IMUL X MOV BX Y ADD BX 9 IDIV BX MOV Z AX MOV R DX 4 MOV AX Y MOV BX 5 IMUL BX MOV BX AX MOV AX W SUB AX X MOV CX 2 IMUL CX IDIVBX MOV Z AX 11 一个双字长有符号数存放在DX 高位 AX 低位 中 写出求该数相反数的指令序 列 结果仍存入DX AX 寄存器 解 NOT DX 首先将 DX AX 取反 NOT AX ADD AX 1 最低位加1 注意 不能用 INC 指令 ADC DX 0 把进位 如果有 传递到高位 12 内存缓冲区BUFFER 定义如下 按照要求 写出指令序列 BUFFER DB 20 DUP 1 将缓冲区全部置为0 并使执行时间最短 2 将缓冲区全部置为空格字符 ASCII 代码20H 使用的指令条数最少 3 将缓冲区各字节依次设置为 0 1 2 3 4 19 4 将缓冲区各字节依次设置为 0 1 2 3 4 19 5 将缓冲区各字节依次设置为 30 29 28 27 11 6 将缓冲区各字节依次设置为 0 2 4 6 8 38 7 将缓冲区各字节依次设置为 0 1 2 3 0 1 2 3 3 解 1 XOR EAX EAX MOV DWORD PTR BUFFER EAX MOV DWORD PTR BUFFER 4 EAX MOV DWORD PTR BUFFER 8 EAX MOV DWORD PTR BUFFER 12 EAX MOV DWORD PTR BUFFER 16 EAX 2 MOV AL 20H MOV CX 20 LEA BX BUFFER ONE MOV BX AL INC BX LOOP ONE 3 XOR BX BX MOV CX 20 ONE MOV BUFFER BX BL INC BX LOOP ONE 4 XOR BX BX XOR AL AL MOV CX 20 ONE MOV BUFFER BX AL INC BX DEC AL LOOP ONE 5 XOR BX BX MOV AL 30 MOV CX 20 ONE MOV BUFFER BX AL INC BX DEC AL LOOP ONE 6 XOR BX BX XOR AL AL MOV CX 20 ONE MOV BUFFER BX AL INC BX ADD AL 2 LOOP ONE 7 XOR BX BX MOV CX 5 ONE MOV BUFFER BX 0 MOV BUFFER BX 1 1 MOV BUFFER BX 2 2 MOV BUFFER BX 3 3 ADD BX 4 LOOP ONE 13 编写循环结构程序 进行下列计算 结果存入RESULT 内存单元 1 1 2 3 4 5 6 100 2 1 3 5 7 9 11 99 3 2 4 6 8 10 100 4 1 4 7 10 13 100 5 11 22 33 44 99 解 1 CODE SEGMENT ASSUME CS CODE RESULT DW START XOR AX AX MOV CX 100 AGAIN ADD AX CX LOOP AGAIN MOV RESULT AX MOV AX 4C00H INT 21H CODE ENDS END START 2 CODE SEGMENT ASSUME CS CODE RESULT DW START XOR AX AX MOV CX 50 MOV BX 1 AGAIN ADD AX BX ADD BX 2 LOOP AGAIN MOV RESULT AX MOV AX 4C00H INT 21H CODE ENDS END START 3 CODE SEGMENT ASSUME CS CODE RESULT DW START XOR AX AX MOV CX 50 MOV BX 2 AGAIN ADD AX BX ADD BX 2 LOOP AGAIN MOV RESULT AX MOV AX 4C00H INT 21H CODE ENDS END START 4 CODE SEGMENT ASSUME CS CODE RESULT DW START XOR AX AX MOV CX 34 MOV BX 1 AGAIN ADD AX BX ADD BX 3 LOOP AGAIN MOV RESULT AX MOV AX 4C00H INT 21H CODE ENDS END START 5 CODE SEGMENT ASSUME CS CODE RESULT DW START XOR AX AX MOV CX 9 MOV BX 11 AGAIN ADD AX BX ADD BX 11 LOOP AGAIN MOV RESULT AX MOV AX 4C00H INT 21H CODE ENDS END START 14 已知ARRAY 是 5 行5 列的有符号字数组 编写程序 进行下列计算 假设和仍然为 16b 不会产生溢出 1 求该数组第4 列所有元素之和 列号从0 开始 2 求该数组第3 行所有元素之和 行号从0 开始 3 求该数组正对角线上所有元素之和 4 求该数组反对角线上所有元素之和 解 假设数据段已定义如下 DATA SEGMENT ARRAY DW 1 6 9 23 12 定义数组ARRAY DW 54 23 15 92 37 每一行5 个数据 DW 99 231 76 81 90 共5 行 DW 33 67 81 99 0 共计25 个数据 DW 123 52 77 180 89 SUM DW SUM 存放结果 DATA ENDS 1 CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AX 0 累加器在循环之前清零 MOV CX 5 计数器置初值 MOV SI 4 2 第1 行第4 列元素在数组内的位移 NEXT ADD AX ARRAY SI ADD SI 5 2 SI指向下一行第4 列元素 LOOP NEXT MOV SUM AX MOV AX 4C00H INT 21H CODE ENDS END START 2 CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AX 0 累加器在循环之前清零 MOV CX 5 计数器置初值 MOV SI 3 5 2 第3 行第0 列元素在数组内的位移 NEXT ADD AX ARRAY SI ADD SI 2 SI指向本行下一列元素 LOOP NEXT MOV SUM AX MOV AX 4C00H INT 21H CODE ENDS END START 3 CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AX 0 累加器在循环之前清零 MOV CX 5 计数器置初值 MOV SI 0 第0 行第0 列元素在数组内的位移 NEXT ADD AX ARRAY SI ADD SI 5 2 2 SI指向正对角线上下一个元素 LOOP NEXT MOV SUM AX MOV AX 4C00H INT 21H CODE ENDS END START 4 CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX MOV AX 0 累加器在循环之前清零 MOV CX 5 计数器置初值 MOV SI 4 2 第0 行第4 列元素在数组内的位移 NEXT ADD AX ARRAY SI ADD SI 5 1 2 SI指向反对角线上下一个元素 LOOP NEXT MOV SUM AX MOV AX 4C00H INT 21H CODE ENDS END START 15 变量X Y Z 均为一字节压缩BCD 码表示的十进制数 写出指令序列 求它们的和 用 2 字节压缩BCD 码表示 解 XOR AX AX 清AX 用于存放2 字节结果 MOV AL X ADD AL Y 完成X Y DAA 压缩BCD 码加法调整 ADC AH 0 把可能的进位收集到AH 中 AH 中最大的可能值为2 因此不需要BCD 加法调整 ADD AL Z 完成X Y Z DAA 压缩BCD 码加法调整 ADC AH 0 把可能的进位收集到AH 中 计算完成 结果 2 字节压缩BCD 码 在AX 中 16 设 BX 0E3H 变量VALUE 中存放内容为79H 指出下列指令单独执行后的结果 1 XOR BX VALUE 2 AND BX VALUE 3 OR BX VALUE 4 XOR BX 0FFH 5 AND BX BX 6 AND BX 0 答 1 指令 XOR BX VALUE 执行后 BX 009AH 2 指令 AND BX VALUE 执行后 BX 0061H 3 指令 OR BX VALUE 执行后 BX 00FBH 4 指令 XOR BX 0FFH 执行后 BX 001CH 5 指令 AND BX BX 执行后 BX 00E3H 6 指令 AND BX 0 执行后 BX 0000H 17 编写程序 从键盘上输入20 个十进制数字 求这些数字的和 向显示器输出 INCLUDE YLIB H DATA SEGEMNT MESS1 DB 0DH 0AH Input 20 decimal digits please MESS2 DB 0DH 0AH Their sum is DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX LEA DX MESS1 MOV AH 09H INT 21H 输出提示信息 XOR BX BX BX 用作累加器 清零 MOV CX 20 循环计数器置初值 AGAIN MOV AH 01H INT 21H 输入一个数字 在AL中 AND AL 0FH 转换成二进制数 ADD BL AL 累加 ADC BH 0 LOOP AGAIN LEA DX MESS2 MOV AX BX CALL WRITEDEC 输出20 个数字的和 CALL CRLF MOV AX 4C00H INT 21H CODE ENDS END START 18 阅读以下程序 指出它的功能 MOV CL 04 SHL DX CL MOV BL AH SHL AX CL SHR BL CL OR DL BL 答 把32 位二进制代码 DX AX 联合左移4 位 19 已知 DX 0B9H CL 3 CF 1 确定下列指令单独执行以后DX 寄存器的 值 1 SHR DX 1 2 SAR DX CL 3 ROR DX CL 4 ROL DX CL 5 SAL DH 1 6 RCL DX CL 答 1 指令 SHR DX 1 执行之后 DX 005CH 2 指令 SAR DX CL 执行之后 DX 0017H 3 指令 ROR DX CL 执行之后 DX 2017H 4 指令 ROL DX CL 执行之后 DX 05C8H 5 指令 SAL DH 1 执行之后 DX 00B9H 6 指令 RCL DX CL 执行之后 DX 05CCH 20 写程序 从键盘上输入一个0 65535 之间的十进制无符号数 然后用二进制格式输出 这个值 例如 键盘输入 35 显示器输出 00000000 00100011 答 INCLUDE YLIB H DATA SEGEMNT MESS1 DB 0DH 0AH Input a unsigned decimal integer number please MESS2 DB 0DH 0AH The number in binary is DATA ENDS CODE SEGMENT ASSUME CS CODE DS DATA START MOV AX DATA MOV DS AX LEA DX MESS1 CALL READDEC 输入一个无符号整数 MOV BX AX 转存入BX LEA DX MESS2 MOV AH 09H INT 21H 输出提示信息 MOV CX 16 循环计数器置初值 AGAIN SHL BX 1 向左外移一位 进入CF MOV DL 30H ADC DL 0 形成一位二进制数字的ASCII 代码 MOV AH 2 INT 21H 输出一个二进制数字 LOOP AGAIN 循环16 次 CALL CRLF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论