1、 I 摘要 在课程设计之前,具备微机原理的理论知识和实践能力;熟悉汇编语言编程 技术;熟悉 80X86 的 CPU 结构和指令系统;熟悉相关常用接口电路的设计使用 方法是必不可少的。因此原理部分重新温习并整理了相关知识。 课程设计要求进行大小写字母的转换。其实字母大小写的区别在于他们的 ASCII 码范围,它们之间的转换其实就是加减相应的 ASCII 码值。在判断输入的 字母是大写的还是小写的(即判断输入符号 ASCII 码在 41H5AH 还是在 61H7AH 内)之后,决定判断是加上还是减去 ASCII 码值。另外如果输入的不 是字母(输入字符对应 ASCII 码值不在 41H5AH 或
2、61H7AH 内) ,则需要报警 提示,这不但涉及到用汇编语言实现发声的方法,而且对计算机硬件的了解也有 要求,因此原理部分加入了部分有关声音产生的硬件知识。 关键词:汇编语言,ASCII 码,大小写转换 1 1.原理简介 1.1 8086 的内部结构 80x86 从功能上分执行单元 EU(Execution Unit),和总线接口单元 BIU(Bus Interface Unit),执行单元由算术逻辑单元(ALU)、标志寄存器、通用寄存器 组和 EU 控制器等部件组成。 指令执行部件 EU 由算术逻辑单元、标志寄存器、通用寄存器和 EU 控制器等 部件组成。 主要功能是执行指令: 一般顺序执
3、行,EU 不断地从指令队列中取指令连续执行,而省去访问存储 器取指令的时间。 需要访问存储器取操作数时,EU 将访问地址送给 BIU 后,将要等待操作数 到来后才能继续操作; 遇到转移类指令时,要将指令队列中的后续指令作废,等待 BIU 重新从存储 器取出目标地址中的指令代码进入指令队列后,EU 才能继续执行指令。 算术逻辑单元(ALU)完成 16 位或 8 位的二进制运算;16 位暂存寄存器用 来暂存参加运算的操作数。 运算结果通过内部总线送到通用寄存器组或 BIU 的内 部寄存器中等待写入存储器。经 ALU 运算后的结果特征置入标志寄存器中保存 EU 控制器负责从 BIU 的指令队列中取指
4、令,并对指令译码;根据指令要求 向 EU 内部各部件发出控制命令以完成各条指令的功能。 总线接口单元由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电 路等部件组成; 主要功能是形成访问存储器的物理地址,负责与外部(存储器或 I/O 接口) 打交道。 正常情况下,BIU 通过地址加法器形成指令的物理地址,从给定存储器地址 中取出指令代码送指令队列缓冲器中等待执行 (指令队列缓冲器中出现一个空字 节,BIU 将自动进行读指令的操作填满队列)。 2 收到 EU 送来的操作数地址,BIU 将立即形成操作数的物理地址,完成读/写 操作数或运算结果功能。遇到转移类指令,BIU 将指令队列缓冲器中的尚存指令 作废,重新从存储器目标地址中取指令送指令缓冲器中。 指令队列可存放 6 字节的指令代码。一般情况下指令队列中总是填满指令, 使 EU 可不断地得到执行的指令。 16 位地址加法器专门用来完成由逻辑地址变换成物理地址的功能。实际上 是进行一次地址加法,将两个 16 位的逻辑地址转换为 20 位的物理地址,以达到 可寻址 1M 字节的存储空间。 总线控制电路将 8086CPU 的内部