曹玉珍 微机原理课后作业答案(1-8章)_第1页
曹玉珍 微机原理课后作业答案(1-8章)_第2页
曹玉珍 微机原理课后作业答案(1-8章)_第3页
曹玉珍 微机原理课后作业答案(1-8章)_第4页
曹玉珍 微机原理课后作业答案(1-8章)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第第 1 章章答案答案 6 解 解 1 0 653 10 0 A72B 16 0128 0 16008 0 008 1116688 0 2688 2 16168 0 7168 7 16448 0 448 1016653 0 B A 2 0 109375 10 0 1C00 16 C 00 121675 0 175 1 16109375 0 3 0 4567 10 0 74EA 16 46592 4 162912 0 2912 10166432 0 6432 14169152 0 49152 4 163072 0 73072 7 164567 0 A E 7 解 解 1 783 30FH 30163 031648 154816783 2 5372 14FCH 10161 411620 152016335 12335165372 3 957 3BDH 30163 1131659 135916957 9 解 解 1 128 13 B0001101 0 222 2 222 754 7 023 原码 原码 0 0001101B 反码 反码 0 0001101B 补码 补码 0 0001101B 2 128 12 B0001100 0 22 2 22 128 12 54 7 23 原码 原码 1 0001100B 反码 反码 1 1110011B 补码 补码 1 1110100B 3 64 17 B0100010 0 22 2 22 64 17 62 6 04 原码 原码 1 0100010B 反码 反码 1 1011101B 补码 补码 1 1011110B 10 解 解 01131012 21111 0 21111 0 1 1112222 2 1 7 浮点形式为 浮点形式为 0011 0111100 100465 6 01 211 0 211 0 000011 0 22 2 22 64 3 浮点形式为 浮点形式为 1100 0110000 100 211 0 64 3 浮点形式为 浮点形式为 1100 1110000 11171036 210010011 0 210010011 0 1 10010012222 5 73 浮点形式为 浮点形式为 1111 1100101 舍入处理 舍入处理 0 舍舍 1 入法 入法 第第 2 章章答案答案 5 答 答 8086 系统中存储器的逻辑地址由段地址 段首址 和段内偏移地址 有效地址 两部分组 成 存储单元的物理地址由地址加法器生成 寻址时 CPU 首先将段地址和段内偏移地址 送入地址加法器 地址加法器将段地址左移 4 位并与段内偏移地址相加 得到一个 20 位的 物理地址 7 答 答 从 CPU 的内部结构来看 8086 CPU 与 8088 CPU 很相似 区别仅表现在以下两个方面 1 8086 BIU 中指令队列长度为 6B 只要队列中出现两个空闲字节 BIU 就会自动访问存 储器 取指令来填满指令队列 而 8088 BIU 的指令队列为 4B 队列中出现一个空闲字节 BIU 就会自动访问存储器 取指令来填满指令队列 2 8088 BIU 通过总线控制电路与外部交换数据的总线宽度是 8 位 总线控制电路与专用 寄存器组之间的数据总线宽度也是 8 位 而 EU 内部总线仍是 16 位 所以把 8088 称为准 16 位微处理器 12 答 答 由于存储器分段以后逻辑段的段地址不可能是小数 所以本题中的计算结果为小数的段寄 存器内容为错误的 只有 SS 的内容为 3056H 正确 SS 16 0F0AAH 3F60AH SS 的内容为 3056H 13 解 解 1 将下列逻辑地址转换为物理地址 1 4037H 000AH 4037H 10H 000AH 4037AH 2 5075H 002AH 5075H 10H 002AH 5077AH 3 8288H 037AH 8288H 10H 037AH 825FAH 4 0010H E05BH 0010H 10H E05BH 0E15BH 15 解 解 1 47H 38H B B B 11110111 10000011 01110100 000000 PFOFZFCFSFAF 2 52H 7FH B B B 00111101 11110111 00100101 000111 PFOFZFCFSFAF 17 解 解 1 物理地址范围 2360 10H 0000H 23600H 2360 10H 0800H 23E00H 所以范围为 23600H 23E00H 2 SP 的内容为 0800H 20D 0800H 14H 07ECH 第第 3 章答案章答案 1 答 答 源操作数源操作数目的操作数目的操作数 1立即寻址寄存器寻址 2直接寻址寄存器寻址 3寄存器寻址寄存器间接寻址 4寄存器相对寻址寄存器寻址 5寄存器寻址寄存器寻址 6寄存器寻址相对基址变址寻址 7基址变址寻址寄存器寻址 8立即寻址寄存器间接寻址 2 答 答 1 DS 10H EA 2100H 10H 0020 21020H 2 DS 10H BX 10 2100H 10H 0200 0AH 2120AH 3 DS 10H SI DELTA 2100H 10H 0540H 0100H 21640H 4 DS 10H BP DI 2100H 10H 0120H DI 5 ES 10H EA 3000H 10H 1020H 3120H 4 答 答 1 03H 2 03H 3 0A8H 4 0A9H 5 1EFH 6 01H 7 14H 8 7 答 答 MOVAL 25H SHLAL 1 MOVBL 15H MULBL AX 0612H 10 答 答 BX 0000 0000 1011 0111 循环左移 1 位后 0000 0001 0110 1110 循环右移 3 位后 1100 0000 0010 1101 BX C02DH 第第 4 章章答案答案 第第 1 题答案 题答案 1 BUF1 DB 240 DUP 2 DB ABCD 1234 3 0CH 0DH 00H 23H 00H 23H 00H 23H 00H 23H 00H 23H DAT1 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H 08H 08H 05H DAT2 0AH 24H H E L L O 0DHDAT4 DAT3 P108 第第 3 题答案 题答案 DATAS SEGMENT 此处输入数据段代码 DATAS ENDS STACKS SEGMENT DB 20 DUP 此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX MOV AX 562CH XOR BX BX MOV CX 16 A0 ROL AX 1 JC A1 INC BH JMP A2 A1 INC BL A2 LOOP A0 MOV CX BX MOV AH 4CH INT 21H CODES ENDS END START P108 第第 7 题答案 题答案 DATAS SEGMENT BUF1 DB 12H 25H 0FEH 13H 25H 1EH 0F5H 1AH 19H 22H BUF2 DW DATAS ENDS STACKS SEGMENT DB 20 DUP 此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS CODES DS DATAS SS STACKS START MOV AX DATAS MOV DS AX MOV CX 9 MOV BH BUF1 MOV BL BUF1 LEA SI BUF1 A0 INC SI CMP SI BH JA A1 CMP SI BL JA A2 MOV BL SI JMP A2 A1 MOV BH SI A2 LOOP A0 MOV AH 4CH INT 21H CODES ENDS END START 第第 5 章答案章答案 6 答 答 16 片 A12 A0 A15 A14 A13 9 答 答 1 A8 A0 D3 D0 2 A9 A0 D3 D0 3 A9 A0 D7 D0 4 A10 A0 D0 5 A11 A0 D0 6 A13 A0 D3 D0 7 A15 A0 D0 8 A17 A0 D3 D0 10 答 答 1 片内寻址线 A8 A0 总地址线 A12 A0216 4512 88 b bK 2 片内寻址线 A9 A0 总地址线 A14 A0832 11024 832 b bK 3 片内寻址线 A9 A0 总地址线 A11 A024 41024 84 b bK 4 片内寻址线 A11 A0 总地址线 A15 A0816 14 864 bK bK 第第 6 章答案章答案 2 答 答 接口是 CPU 与 外部世界 的连接电路 是 CPU 与存储器 输入输出设备等外设之间协 调动作的控制电路 从更一般的意义上说 接口是在两个电路或设备之间 使两者动作条 件相配合的连接电路 典型的 I O 接口包括数据端口 状态端口 控制端口及控制逻辑电 路 数据端口是双向的 用于 CPU 与外设之间的数据传送和缓冲 状态端口用于传送外 设的状态给 CPU 控制端口用于传送 CPU 向外设所发送的控制命令 3 答答 I O 端口的寻址方式有直接寻址和间接寻址两种 直接寻址只能用于端口地址在 00H 0FFH 范围时 在 IN 和 OUT 指令中直接给出端口地址 而间接寻址可以用于端口地 址为 0000H 0FFFFH 范围 但端口地址在 100H 0FFFFH 范围时只能用间接寻址方式 端 口地址先存放于 DX 寄存器中 然后在 IN 或 OUT 指令中由 DX 做为端口地址指针 5 答答 I O 编址方式有统一编址方式和独立编址方式两种 1 I O 端口和存储器统一编址 这种编址方式是外设端口地址和存储器单元地址 共用存储器的访问空间 即一个外设端 口占用一个存储单元地址 不用专用的 I O 指令 访问 I O 端口使用的是存储器读 写操 作指令 优点 CPU 访问存储单元的所有指令都可用于访问 I O 端口 缺点 其一是 I O 端口占用了内存空间 其二是在程序中不能一目了然的区分当前正 在进行的访问是存储器还是 I O 端口 2 I O 端口独立编址 这种编址方式是外设端口地址和存储器单元地址 分别是建立地址空间 专用的 I O 指 令访问 I O 端口 优点 其一是 I O 端口不占用内存空间 其二是访问 I O 端口指令仅需两个字节 执 行速度快 其三是读程序时只要是 I O 指令 即知是 CPU 访问 I O 端口 缺点 其一是要求 CPU 有独立的 I O 指令 其二是 CPU 访问 I O 端口的寻址方式少 8 答答 1 在一个芯片中有 4 个独立的 DMA 通道 每个通道均可独立地传送数据 2 每个通道的 DMA 请求都可以分别允许和禁止 3 每个通道的 DMA 请求有不同的优先权 优先权可以是固定的 也可以是旋转的 4 每个通道 次传送的最大长度可达 64 KB 可以在存储器与外设间进行数据传送 也可以在存储器的两个区域之间进行传送 5 8237 的 DMA 有单字节传送 数据块传送 请求传送方式 级连方式等 4 种传送方 式 6 有一条结束处理的输入信号 允许外界用此输入端来结束 DMA 传送或重新初始化 7 8237 可以级联 任意扩展通道 9 答答 1 单字节传送模式 在这种模式下 8237 每完成一个字节传送后 内部字节计数器便减 1 地址寄存器的值 加 l 或减 1 随后 8237 释放系统总线 这样 CPU 至少可以得到一个总线周期 但是 8237 在释放总线后 会立即对 DREQ 端进行测试 一旦 DREQ 有效 则 8237 会立即发 总线请求 在获得总线控制权后 又成为总线主模块而进行 DMA 传送 2 块 成组 传送模式 在这种模式下 可以连续进行多个字节的传送 只有当字节计数器减为 0 从而在端输出 一个负脉冲或者外部 I O 接口往 DMA 控制器的端送一个低电平信号时 8237 才释放总 线而结束传送 第第 7 章答案章答案 2 答答 中断源请求中断 中断判优 中断响应 中断服务 中断返回 4 答答 中断矢量号就是中断的类型号 中断矢量就是中断服务程序的入口地址 中断矢量表是中 断类型号与它对应的中断服务程序入口地址之间的换算表 中断矢量表占用存储器的最低 地址区 每个中断矢量占用 4 个字节 5 答答 由于 14H 4 0050H 那么类型 14H 的中断矢量在存储器的 0000H 0050H 0000H 0053H 单元存放 将中断服务程序入口地址装入中断矢量表的方 法为 MOVAX 0000H MOVDS AX MOVAX SEG IRQ14S 中断服务程序入口地址的段地址送中断矢量表 MOVSI 0050H MOV SI AX 将 14H 的入口地址的段地址送 0000H 0050H 单元 MOVAX OFFSET IRQ14S MOVSI 0052H MOV SI AX 6 答答 1 可为 CPU 管理和处理 8 个中断源电路的中断 并对它们进行优先级管理 2 可与其它 8 个 8259A 芯片组成主从式中断系统 实现 64 级中断源控制 3 优先级方式在执行程序时可动态改变 有多种中断管理方式 4 每一中断源中断都可以屏蔽或允许 可通过编程选择 5 能自动送出中断类型号 使 CPU 方便的找到中断服务程序的入口地址 6 允许中断嵌套 第第 8 章答案章答案 2 答答 8255A 芯片的端口有数据端口 A 端口 B 端口 C 和控制端口四个端口 三种工作方式 即方式 0 基本输入输出方式 方式 1 选通输入输出方式及方式 2 双向输入输出方式 方式 0 无固定的联络信号 当端口工作于方式 0 时 由 CPU 执行 IN OUT 指令就可以实 现 A B C 三端口数据的输入 输出传送操作 另外 端口 C 的某些位也可以做为端口 A B 的控制和状态信息位 而且此信息位是由 C 口按位置位 复位控制字产生 在方式 1 下 端口 A 或端口 B 仍作为数据端口 端口 C 的某些位固定作为应答信号或中断请求 这种规定在输入和输出时不相同 其余位可指定为输入或输出 但只能工作于方式 0 方式 2 类似于方式 1 输入和输出的组合 设定为方式 2 后 端口 C 的 5 位作为指定 的控制 联络信号 端口 A 既做为输入端口又做为输出端口 双向传送数据 而端口 B 仍然可选方式 0 或方式 1 做为输入端口或者输出端口 3 答答 方式选择控制字 1011 1111B 此时 方式选择控制字中的 D3 D1 用于指定 C 口在方 式 1 下做为 A 口和 B 口控制位以外的其余位做为输入线 6 答答 1 初始化程序为 CLI 关中断 MOVDX CONTROL PORT MOVAL 1000 0010B A 口工作于方式 0 输出 B 口工作于方式 0 输入 C 口工作于方式 0 输出 OUTDX AL 或者 CLI 关中断 MOVDX CONTROL PORT MOVAL 1001 1001B A 口工作于方式 0 输入 B 口工作于方式 0 输出 C 口工作于方式 0 输入 OUTDX AL 2 初始化程序为 MOVDX CONTROL PORT MOVAL 1010 0010B A 口工作于方式 1 输出 B 口工作于方式 0 输入 C 口其余位输出 OUTDX AL STI 开中断 3 初始化程序为 CLI 关中断 MOVDX CONTROL PORT MOVAL 1100 0100B A 口工作于方式 2 B 口工作于方式 1 输出 C 口其余位输出 OUTDX AL 4 初始化程序为 MOVDX CONTROL PORT MOVAL 1011 0100B A 口工作于方式 1 输出 B 口工作于方式 0 输入 C 口其余位输出 OUTDX AL MOVAL 0000 1111B PC7 置 1 OUTDX AL MOVAL 0000 1100B PC6 清 0 OUTDX AL STI 开中断 7 答答 设 8255A 的端口地址为 60H 61H 62H 63H 则初始化程序为 MOVAL 1001 0000B OUT63H AL INAL 60H OUTAL 61H CMPAL 80H JNLA0 MOVAL 0000 1010B OUT63H AL MOVAL 0000 0100B OUT63H AL JMPSTOP A0 MOVAL 0000 1011B OUT63H AL MOVAL 0000 0101B OUT63H AL STOP MOVAH 4CH INT21H 16 答答 8253 有三个定时器 计数器 即计数器 0 计数器 1 和计数器 2 每个计数器的操作是完全 独立的 但它们的结构相同 每一个计数器包含一个 16 位的计数初值寄存器 一个 16 位 的计数执行单元和一个 16 位的输出锁存器 计数初值寄存器用以存放计数初始值 CPU 用 OUT 指令向其写入计数初值 锁存器在计数器工作的过程中跟随计数值的变化 在接 收到 CPU 发来的读计数值命令时 用以锁存计数值 供 CPU 读取 读取完毕之后 输出 锁存器又跟随计数执行单元变化 方式 0 计数结束产生中断 写入控制字 OUT 端为低电平 计数初值装入该计数器后 等待到 GATE 输入高电平时 计数器开始递减计数 在整个计数过程中 OUT 保持低电平 当计数器减为 0 时 OUT 输出高电平 方式 1 可编程单拍脉冲 写入控制字 OUT 端为高电平 计数初值装入该计数器后 在 GATE 信号的上 升沿后 的下一个 CLK 脉冲的下降沿开始计数 OUT 变为低电平 在整个计数过程中 OUT 保 持低电平 当计数器减为 0 时 OUT 变为高电平 输出一个单脉冲 若 GATE 信号再由 低变高 可再产生一个单脉冲 相当一个单稳态 方式 2 分频器或脉冲信号发生器 8253 相当于一个分频脉冲产生器 若计数值为 N 则每输入 N 个 CLK 脉冲 输出一个 脉冲 脉冲宽度等于 N CLK 周期 方式 3 方波发生器 输出周期性方波 若计数值为 N 则输出的方波周期是 N 个 CLK 周期 CPU 写入控制 字后 OUT 变高 写完计数值后自动开始计数 输出保持高电平 当计到一半计数值时 输出变低 直到计数到 0 输出又变为高 重新开始计数 方式 4 软件触发选通 写入控制字 OUT 端为高电平 写入计数初值后立即开始计数 相当软件触发启动 计 数器计到 0 时 OUT 变为低电平 经过一个 CLK 脉冲周期 OUT 又变高 计数器停止计 数 只有写入新计数值才能开始新的计数 要求 GATE 一直为高电平 方式 5 硬件触发选通 写入控制字 OUT 变高 写入计数初值后 由 GATE 信号的上升沿触发开始计数 计到 0 后 OUT 变为低电平 经一个 CLK 周期后 OUT 又变为高电平 并停止计数 等下次 GATE 触发才能再计数 17 答答 1 输出端 OUT 的初始状态 方式 0 在写初值后 经 N 1 个时钟周期 OUT 端变为高电 平 GATE 0 停止计数 软触发单次负脉冲 方式 5 写入控制字后 输出为高 门控触 发后 经 N 个时钟周期 OUT 变低一个时钟周期 方式 5 的输出波形是宽度为一个 CLK 时 钟周期的负脉冲 由硬件触发启动 2 方式 1 与方式 5 工作过程相同 但输出波形不同 方式 1 输出的是宽度为 N 个 CLK 脉冲的低电平有效的脉冲 计数过程中输出为低 而方式 5 输出的是宽度为一个 CLK 脉冲的负脉冲 计数过程中输出为高 四 8255A 应用举例 例 8 5 8255A 端口 A 作为数据输出端口工作于方式 0 接了 8 个发光二极管 端口 B 作为数据输入端口工作于方式 0 要求单拨 PB4 对应的开关 K4时 发光二极管全 亮 K4拨回原位又全灭 单拨 PB7对应的开关 K7 单个发光二极管从 VD0 VD7循环亮灯 K6回原位全灭 设 8255A 端口地址为 203H 206H 解 端口 A 端口 B 都工作于方式0 因此采用无条件传送方式 端口A 用于数据 输出 端口B 用于数据输入 因此得到8255A 的方式选择控制字为10000010B 82H 程序 为 STACK SEGMENT DW 100 DUP STACK ENDS CODESEGMENT ASSUMECS CODE SS STACK MAIN MOVAL 82H 8255A 控制字 MOVDX 206H OUTDX AL 8255A 初始化 NEXT MOVDX 204H INAL DX 读 B 口数据 TESTAL 04H 测试 PB4 JNZLIT PB4 1 转 LIT 发光二极管全亮 MOVAL 00H 否则全灭 JMPTRLT LIT MOVAL 0FFH TRLT MOVDX 203H OUTDX AL MOVDX 204H INAL DX 读 B 口数据 TESTAL 80H 测试 PB7 JNZCONT PB7 1 转 CONT 发光二极管循环点亮 MOVAL 00H 否则全灭 MOVDX 203H OUTDX AL JMPNEXT MOVBL 01H CONT MOVAL BL MOVDX 203H OUTDX AL CALLDELAY 调用延时程序 SHLBL 1 JNZCONT JMPNEXT CODEENDS ENDMAIN 例 8 6 8255A 作为字符式打印机接口 端口 A 工作于方式 1 采用中断方式将 内存 BUF 开始的数据区共 20 字节的数据输出到打印机上 字符式打印机上输入引脚 为数据选通信号 输出引脚为接收数据的响应信号 地址线各位未DATA STORBEACKNC 用的均设为 0 由 PC7充当打印机的数据选通信号 通过对 PC7的置位 复位来产生选通 同时 由 PC2来接收打印机发出的响应信号作为能否输出的查询 PA7 PA0 RD 7 WR 2 A1 A0 CS D7 D0 DATA STORBE ACKNC 打印机 G1 G2A G2B C B A PC0 RD WR A1 A0 8088 CPU A6 A5 A4 A3 A2 A7 M IO D7 D0 8255A PC PC D7 D0D7 D0 74LS138 CS RD WR A0 INT INTA IR0 IR1 IR2 IR7 8259A Y4 Y2 例8 11 8255作为打印机接口图 INTR INTA 解 由图 8 11 可以看出 8255A 的端口地址范围为 88H 8BH 芯片 8259A 的 端口地址为 90H 91H 假设 8259A 初始化时送 ICW2为 08H 则 8255A A 口的中断类型 码是 0BH 此中断类型码对应的中断向量应放到中断向量表从 2CH 开始的 4 个单元中 则参考程序为 DATASEGMENT DATAENDS STACK SEGMENT DW 100 DUP STACK ENDS CODESEGMENT ASSUMECS CODE DS DATA SS STACK MAIN MOVAL 0A0H OUT8BH AL 设置 8255A 的控制字 MOVAL 01H 使选通无效 OUT8BH AL MOVAX DATA MOVDS AX MOVAX STACK MOVSS AX MOVAX OFFSET RINTR MOVWORD PTR 002CH AX MOVAX SEG RINTR MOVWORD PTR 002EH AX 送中断向量 MOVAL 0DH OUT8BH AL 使 8255A A 口输出允许中断 LEADI BUFF 设置地址指针 MOVCX 99 设置计数器初值 MOVAL DI OUT88H AL 输出一个字符 INCDI MOVAL 00H OUT8BH AL 产生选通 INCAL OUT8BH AL 撤消选通 STI 开中断 NEXT HLT 等待中断 LOOPNEXT 修改计数器的值 指向下一个要输出的字符 中断服务子程序为 RINTRPROC PUSHAX MOV AL DI OUT 88H AL 从 A 口输出一个字符 MOV AL 00H OUT 8BH AL 产生选通 INC AL MOV 8BH AL 撤消选通 INC DI 修改地址指针 IRET 中断返回 RINTRENDP CODE ENDS END MAIN PA7 PA0 RD 7 WR 2 A1 A0 CS D7 D0 DATA STORBE ACKNC 打印机 G1 G2A G2B C B A PC0 RD WR 80

温馨提示

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

评论

0/150

提交评论