没有合适的资源?快使用搜索试试~ 我知道了~
此文件为本人本科计算机专业微机系统与接口技术课程设计报告,主要对三个问题进行代码设计,分别为:汇编语言程序设计、扬声器节奏控制和串行通信周期性发送控制。 文中末尾附有代码。
资源推荐
资源详情
资源评论
II
目录
郑 重 声 明.......................................................................................................... I
目录....................................................................................................................... II
第 1 章 基础设计.............................................................................................. 4
1.1 CPU .......................................................................................................... 4
1.1.1 问题一.......................................................................................... 4
1.1.2 问题二.......................................................................................... 6
1.2 8254.......................................................................................................... 7
1.2.1 8254 芯片...................................................................................... 7
1.2.2 实验目的...................................................................................... 8
1.2.3 问题描述...................................................................................... 8
1.3 8259A ....................................................................................................... 8
1.3.1 8259A 芯片 ................................................................................... 8
1.3.2 问题描述...................................................................................... 9
1.4 8250........................................................................................................ 11
1.4.1 8250 芯片.................................................................................... 11
1.4.2 问题描述.................................................................................... 11
1.5 8255A ..................................................................................................... 14
1.5.1 8255A 芯片 ................................................................................. 14
1.5.2 问题描述.................................................................................... 14
1.6 8237........................................................................................................ 16
1.6.1 8237 芯片.................................................................................... 16
1.6.2 问题描述.................................................................................... 16
第 2 章 综合设计.............................................................................................. 18
2.1 汇编语言程序设计............................................................................... 18
2.1.1 问题描述.................................................................................... 18
2.2 扬声器节奏控制................................................................................... 19
2.2.1 实验目的.................................................................................... 19
2.2.2 问题描述.................................................................................... 19
III
2.2.3 实现原理.................................................................................... 20
2.3 串行通信周期性发送控制................................................................... 22
2.3.1 实验目的.................................................................................... 22
2.3.2 问题描述.................................................................................... 22
2.3.3 实现原理.................................................................................... 23
参考文献.............................................................................................................. 25
附件...................................................................................................................... 26
附件 A:猜数字游戏代码 .......................................................................... 26
附件 B:扬声器节奏控制代码 .................................................................. 30
附件 C:串行通信周期性发送控制代码 .................................................. 32
4
第 1 章 基础设计
1.1 CPU
1.1.1 问题一
问题描述:描述在保护模式下调用子程序的过程。直接调用和通过调用门调
用分情况讨论。
1.直接调用
可通过 CALL 和 JMP 指令直接调用,此时无特权级变换的转移。过程如下:
1)通过段选择子在全局描述符表(GDT)或局部描述符表(LDT)中取得
目标代码段描述符,装载到 CS 告诉缓存寄存器;
2)将段选择子装入 CS 段寄存器,偏移地址装入指令指针寄存器 EIP,CPL
存入 CS 内选择子的 RPL 字段;
3)若是执行 CALL 指令,还需将返回地址指针压栈,从而完成向目标代码
段的转移。
2.通过调用门调用
调用门的访问一般通过 CALL、JMP 指令的操作数提供的一个远指针,该指
针中的段选择符用于指定调用门,CPU 会使用调用门中的偏移值实现跳转。
图 1.1 通过调用门调用示意图
通过调用门进行程序的转移控制时,CPU 会检查以下这几个字段:
1)当前代码段的 CPL;
2)调用门描述符中的 DPL;
3)调用门描述符中的 RPL;
5
4)目的代码描述符的 DPL;
5)目标代码段描述符中的一致性标志 C(一致与非一致下面会提到)。如下
图:
图 1.2 特权级检查示意图
对于 CALL 和 JMP 指令,有着不同的优先级检查规则的:
1)CALL 指令
对 CALL 来说:当前 CPL<=调用门描述符 DPL,RPL<=调用门描述符 DPL,
当前 CPL>=目的代码段描述符 DPL;
若改变了 CPL,则必须切换栈,即从当前任务的固有栈切换到与目标代码段
特权级相同的栈上。栈切换过程如下:
1)根据目标代码段的 DPL(也就是新的 CPL)到当前任务的 TSS 中读取新
栈的选择子和栈指针。在读取栈选择子、栈指针或者栈段描述符的过程中,任何
违反段界限的错误都将导致产生一个无效 TSS 异常。
2)检查栈段描述符的特权级和类型是否有效,若无效同样产生一个无效 TSS
异常。
3)临时保存 SS 和 ESP 的当前值,把新栈的选择子和栈指针加载到 SS 和
ESP 中。然后把临时保存的 SS 和 ESP 的内容压入新栈中。
4)根据调用门描述符中“参数个数”字段,把旧栈中的所有参数复制到新
栈中。如果参数个数为 0,则不复制参数。
5)将当前 CS 和 EIP 的内容压入新栈。
6)从调用门描述符中把目标代码段的选择子和段内偏移值传送到 CS 和 EIP
中,开始执行被调用过程。
相反,如果没有改变特权级别,则不切换栈,继续使用调用者当前的栈,只
是在原来的基础上压入当前 CS 和 EIP 的内容。
6
2)JMP 指令
对 JMP 来说:除了跟 CALL 的“当前 CPL<=调用门描述符 DPL,RPL<=调
用门描述符 DPL”一样外,如果目的代码段的一致的话,CPL>=目的代码段的
DPL,而如果目的代码段是非一致的话,CPL=目的代码段的 DPL。
此时无需切换栈,也无特权级变化。
1.1.2 问题二
问题描述:32 位 x86 CPU 工作在分页的保护模式下,DS 寄存器中事先已填
入内容。现要将 DS 段的某个逻辑地址转换为物理地址,简述该转换过程。
转换过程如下:
1. 逻辑(虚拟)地址到线性地址的变换
CPU 根据段寄存器的内容采用段式管理机制将虚拟地址转化为线性地址,
先是通过段选择符从描述符表中找到段描述符;利用段选择符检验段的访问权限
和范围,以确保该段可访问;把段描述符的起始地址和偏移地址相加得到线性地
址。
图 1.3 逻辑地址转化为线性地址示意图
2.线性地址转化为物理地址
32 位系统中通过页式管理机制实现线性地址到物理地址的转换,如下图:
剩余34页未读,继续阅读
资源评论
WW、forever
- 粉丝: 2w+
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功