微机原理及接口技术期末复习资料重点归纳版.pdf_第1页
微机原理及接口技术期末复习资料重点归纳版.pdf_第2页
微机原理及接口技术期末复习资料重点归纳版.pdf_第3页
微机原理及接口技术期末复习资料重点归纳版.pdf_第4页
微机原理及接口技术期末复习资料重点归纳版.pdf_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第一章第一章 计算机中数的表示方法 计算机中数的表示方法 真值 原码 反码 127 127 补码 128 127 BCD 码 1000 的原码为 0 补码为 8 反码为 7 ASCIIASCII 码 码 7 位二进制编码 空格 20 回车 0D 换行 0A 0 9 30 39 A Z 41 5A a z 61 7A 模型机结构介绍模型机结构介绍 1 程序计数器 PC 4 位计数器 每次运行前先复位至 0000 取出一条指令后 PC 自动加 1 指向下一条指令 2 存储地址寄存器 MAR 接收来自 PC 的二进制数 作 为地址码送入存储器 3 可编程只读存储器 PROM 4 指令寄存器 IR 从 PROM 接收指令字 同时将指令字 分别送到控制器 CON 和总线上 模型机指令字长为 8 位 高 4 位为操作码 低 4 位为地址码 操作数地址 5 控制器 CON 1 每次运行前 CON 先发出 CLR 1 使 有关部件清零 此时 PC 0000 IR 0000 0000 2 CON 有一个同步时钟输出 发出脉冲信号 CLK 到各部件 使它 们同步运行 3 控制矩阵 CM 根据 IR 送来的指令发出 12 位控制字 CON CPEPLMER LIEILAEA SUEULBIO 6 累加器 A 能从总线接收数据 也能向总线送数据 其数据输出端能将数据送至 ALU 进行算数运算 双态 不 受 E 门控制 7 算数逻辑部件 ALU 当 SU 0 时 A B 当 SU 1 时 A B 8 寄存器 B 将要与 A 相加或相减的数据暂存于此寄存 器 它到 ALU 的输出也是双态的 9 输出寄存器 O 装入累加器 A 的结果 10 二进制显示器 D 中央处理器 CPU PC IR CON ALU A B 存储器 MAR PROM 输入 输出系统 O D 执行指令过程 执行指令过程 指令周期 机器周期 包括取指周期和执 行周期 两者均为 3 个机器节拍 模型机 其中 取指 周期的 3 个机器节拍分别为送地址节拍 读存储节拍和增 量节拍 控制器 控制器 环形计数器 RC 指令译码器 ID 控制矩阵 CM 其他控制电路 微型计算机硬件基本结构 微型计算机硬件基本结构 算术逻辑单元 ALU 控制器 存储器 输入 输出设备 微型机工作原理 微型机工作原理 存储程序 按地址顺序执行 第二章第二章 微处理器基本结构和功能 微处理器基本结构和功能 1 内部寄存器阵列 通用寄存器和专用寄存器 2 算数逻辑运算单元 3 控制器 指令寄存器 指令译码器和各种定时与控制 信号产生电路 4 现代微处理器中还集成了浮点运算部件及高速缓冲寄 存器 cache 8086 80888086 8088 微处理器结构 微处理器结构 执行部件执行部件 EUEU 的组成 的组成 1 ALU 算术逻辑单元 2 寄存器组 1 通用寄存器 4 个 16 位通用寄存器 AX BX CX DX 或 8 个 8 位寄存器 AL AH BL BH CL CH DL DH 其中 AX 为累加器 BX 为基址寄存器 CX 为计数寄 存器 DX 为数据寄存器 2 专用寄存器 两个 16 位指针寄存器 SP 和 BP 两个 16 位变址寄存器 SI 和 DI 其中 SP 是堆栈指针寄存器 由它和堆栈段寄存器 SS 一起来确定堆栈在内存中的位 置 BP 是基址指针寄存器 通常用于存放基地址 SI 是 原变址寄存器 DI 是目的变址寄存器 都用于指令变址寻 址方式 AH AL BH BL CH CL DH DL SP BP SI DI 3 标志寄存器 FR 为 16 位寄存器 其中 7 位未使用 使用的 9 个标志位可分为两类 状态标志 CF PF AF ZF SF OF 控制标志 TF IF DF 8086 8088 CPU 总线接口单 元 BIU 完成 取指令和存 取数据 执行单元 EU 负责分析 指令和执行 指令 段寄存器 CS SS DS ES 指令指针寄存器 IP 地址加法器 指令队列 内部控制逻辑 输入 输出控制电路 算术逻辑单元 ALU 寄存器组 标志寄存器 FR 暂存器 AX BX CX DX 通用寄存器 专用寄存器 15 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF CF 进位标志位 做加法最高位有进位或减法最高位 有借位时为 1 反之为 0 PF 奇偶标志位 运行结果低 8 位中 1 的个数为偶数 时为 1 反之为 0 AF 半进位标志位 低四位有向高四位的进位或借位 时为 1 反之为 0 ZF 零标志位 运算结果为 0 时置 1 SF 符号标志位 与运算结果最高位相同 OF 溢出标志位 字节运算结果范围超过 128 127 或者字运算结果范围超出 32768 32767 时置 1 溢出判 断 同符号数相加 结果的符号位与之不同 符号位发生 变化 TF 陷阱标志位 置 1 时 8086 8088 进入单步工作方 式 通常用于程序调试 IF 中断允许标志位 置 1 时处理器响应可屏蔽中断 DF 方向标志位 置 1 时串操作指令的地址修改为自 动减量方向 总线接口部件总线接口部件 BIUBIU 的组成 的组成 1 段寄存器 4 个 16 位段寄存器 DS 数据段寄存器 CS 代码段寄存器 ES 附加段寄存器 SS 堆栈段寄 存器 2 16 位指令寄存器 IP CPU 每取一个指令字节 IP 自动 加 1 IP 总是指向下一条要取出的指令代码的首地址 3 20 位地址加法器 4 6 字节 8088 为 4 字节 指令队列缓冲器 BIUBIU 与与 E EU U 的动作协调原则 的动作协调原则 BIU 和 EU 是并行工作的 按 流水线技术原则管理 1 当 8086 指令队列中有两个空字节 8088 中一个 时 BIU 自动把指令取到队列中 2 EU 从指令队列取指 执行 执行过程中如要访问存储 器或 I O 而此时 BIU 正在取指 完成取指后响应 EU 的总 线请求 3 指令队列已满 EU 又没有总线访问 BIU 进入空闲状 态 4 执行转移 调用和返回指令时 指令队列中的原有内 容自动消除 BIU往指令队列中装入另一程序段中的指令 存储器组织 存储器组织 1 物理地址 物理地址 段地址 16 偏移量 任何一个存储单元的 20 位实际地址称为物理地址 又称 绝对地址 同一物理地址可以有不同的段地址和偏移量 2 逻辑地址 段地址 偏移地址 程序中出现的地址 由段地址和段内偏移量组成 段地址 和段偏移量都是 16 位二进制数 3 一般程序存放在代码段中 段地址来源于代码段寄存 器 CS 偏移地址来源于指令指针寄存器 IP 当涉及一个 堆栈操作时 段地址在堆栈段寄存器 SS 中 偏移地址来 源于栈指针寄存器 SP 当涉及一个操作数时 则数据段 寄存器 DS 或附加段寄存器 ES 作为段寄存器 而偏移地址 由 16 位的偏移量得到 16 位的偏移量取决于指令的寻址 方式 4 采用段寄存器的优点 1 解决了 16 位寄存器如何访问大于 64KB 内存空间的 问题 2 可以实现程序的重定位 总线 总线 总线是传送信息的公共导线 一般由地址总线 数 据总线和控制总线组成 1 地址总线 AB 一般是单向总线 传送 CPU 发出的 地址信息 2 数据总线 DB 是双向总线 可以从 CPU 传送数据 信息到外设和主存 也可以从主存和外设向 CPU 传送数 据 3 控制总线 CB 其中每根线上的方向是一定的 它们 分别传送控制信息 时序信息和状态信息 8086 80888086 8088 微处理器的工作模式 微处理器的工作模式 1 最小工作模式 MN MX VCC 单 CPU 系统 系统中只 有一个 8086 8088 微处理器 所有的总线控制信号都直接 由 8088 8086 产生 2 最大工作模式 MN MX GND 多 CPU 系统 8086 8088 要通过总线控制器 8288 来形成各种总线周期 控制信号 由 8288 供给 指令周期 总线周期 时钟周期 指令周期 总线周期 时钟周期 1 指令周期 执行一条指令所需要的时间 执行每一条 指令的时间不同 2 总线周期 访问一次总线的时间 CPU 从存储器或 I O 端口存取一次所需要的时间 一个基本的总线周期由 4 个 T 状态 T1 T2 T3 T4组成 基本总线周期包括存储器 的读或写 输入 输出的读或写 中断响应 若存储器或 外设速度较慢 不能及时送上数据 T3状态数据没准备 好 则通过READY线通知CPU CPU在T3前沿检测READY 若 READY 0 则在 T3结束后自动插入 1 个或几个 TW 并 在每个 TW的前沿处检测 READY 等到 RAEDY 变高后 自 动脱离 TW进入 T4 3 时钟周期 T 状态 是微机系统工作的最小时间单位 取决于系统的主频率 系统完成任何操作所需要的时间均 是时钟周期的整数倍 8086 80888086 8088 引脚信号和功能 引脚信号和功能 8086 8088 都有 16位数据线 20 位地址线 直接寻址能力为 1MB 引脚数为 40 其中 32 个引脚在两种工作模式下的名称和功能是相同的 还 有 8 个引脚在不同的工作模式下 具有不同的名称和功 能 双功能引脚的功能转换 一是通过分时复用 即同一 引脚在总线的不同时钟周期内其功能不同 二是根据工作 模式定义引脚的功能 两种模式下 名称和功能相同的两种模式下 名称和功能相同的 3232 个引脚 个引脚 1 VCC GND 单一 5V 电源 两个地 2 AD15 AD0 地址 数据复用总线 双向 三态 8088 中 A15 A8不复用 输出 三态 3 A19 S6 A16 S3 地址 状态线复用 输出 三态 4 NMI 非屏蔽中断 输入 高电平有效 INTR 可屏蔽中断 输入 高电平有效 5 RD 读信号 输出 三态 低电平有效 6 CLK 时钟信号 输入 7 RESET 复位信号 输入 至少保持 4 个时钟周期的高 电平 复位信号输入后 CPU 立即停止操作 清 FR DS ES SS IP 及指令队列 同时置 CS 为 0FFFFH 当 RESET 变为低电平时 CPU 从 FFFF0 单元开始启动 8 READY 准备好 信号 输入 9 TEST 测试信号 输入 低电平有效 10 MN MX 最小 最大模式控制引脚 输入 MN MX VCC 时为最小工作方式 单 CPU MN MX GND 时为最大工 作方式 多 CPU 11 BHE S7 高 8 位数据线允许 状态信息复用引脚 输 出 最小工作模式的最小工作模式的 24 3124 31 引脚 括号中是最大工作模式下的引脚 括号中是最大工作模式下的 引脚功能 引脚功能 1 INTA QS1 中断响应 输出 三态 低电平有效 该信号为两个连续负脉冲 2 ALE QS0 地址锁存允许信号 输出 三态 高电平 有效 3 DEN S0 数据允许信号 输出 三态 低电平有效 4 DT R S1 数据发送 接收控制 输出 三态 5 M IO S2 存储器 IO 控制 输出 三态 8088 中为 M IO 6 WR LOCK 写信号 输出 三态 低电平有效 7 HOLD RQ GT0 请求占用总线信号 输入 高电平 有效 总线保持请求信号 8 HLDA RQ GT1 同意让出总线信号 输出 高电平 有效 总线保持响应信号 最大工作模式的最大工作模式的 24 3124 31 引脚 引脚 1 QS1 和 QS2 指令队列状态信号 输出 2 S2 S1 S0 总线周期状态信号 输出 三态 3 LOCK 总线封锁信号 输出 三态 低电平有效 4 RQ GT1 RQ GT0 双向总线请求 允许信号 双向 总线空操作总线空操作 CPU与存储器或 I O端口之间没有数据传送 总线空操作并不意味着 CPU 不工作 只是总线接口部件 BIU 不工作 总线执行部件 EU 仍在工作 实质上 总线 空操作期间是 BIU 对 EU 的一种等待 地址线为什么需要锁存 地址线为什么需要锁存 由于 8086 系统的地址的低 16 位与数据引脚公用 地址信号与数据信号是分时复用这些 引脚的 这样先送出的地址信号可能被后送出的数据信号 所代替 因此要有一个地址锁存器来保存先送出来的地址 信息 锁存器主要用来锁存地址的低 16 位 第三章第三章 机器指令 机器指令 1 操作码 表示该指令所要完成的操作 二进制代码 2 地址码 操作数或操作数的地址 8086 80888086 8088 汇编语言指令 汇编语言指令 标号 指令助记符 操作数表 注释 指令的寻址方式 指令的寻址方式 1 顺序寻址方式 2 跳转寻址方式 8086 80888086 8088 操作数的寻址方式操作数的寻址方式 1 立即数寻址 MOV AL 80H MOV AX 1090H 操作数就包含在指令当中 紧跟在操作码之后 立即数为 常量 常量可以是二进制数 十进制数 十六进制数 以 A F 开头则要加 0 字符串 用单或双引号括起的字符 表示对应的 ASCII 码值 如 A 41H 还可以是标识符表示 的符号常量 数值表达式等 立即数可以是 8 位 16 位 立即数只能是整数 不能是小数 变量或其它类型数据 立即数只能作原操作数 2 寄存器寻址 INC CX ROL AH 1 MOV AX BX MOV AX 1090H 寄存器寻址方式的操作数存放在 CPU 内部的寄存器中 它可以是 8 位寄存器 AH AL BH BL CH CL DH DL 也可以 是 16 位寄存器 AX BX CX DX SI DI BP SP 另外 操作数 还可以存放在 4 个段寄存器 CS DS SS ES 中 因为操作数 存放在 CPU 内部 取操作数时不需要访问存储器 因而 执行速度较快 在一条指令中 可以对源操作数采用寄存 器寻址 也可以对目标操作数采用寄存器寻址 还可以两 者都采用寄存器寻址方式 在双操作数指令中 操作数之 一必须是寄存器寻址 汇编语言在表达寄存器寻址时使用 寄存器名 其实质就是指它存放的内容 操作数 3 存储器寻址 操作数存放在主存储器中 指令中给出 的是有关操作数所在存储器单元的地址信息 1 直接寻址 MOV AX DS 2000H 等价于 MOV AX 2000H MOV ES ES 3000H 物理地址 ES 16 3000H 操作数地址的 16 位偏移量 有效地址 直接包含在指令 中 它与操作码一起存放在代码段区域 操作数一般存放 在数据段区域 系统默认 DS 为数据段寄存器 8086 8088 中允许段超越 还允许操作数放在代码段 堆栈段或附加 段中 此时要在指令中 指明段超越 格式为 段寄存器 偏移地址 与立即数寻址不同的是 直接寻址的地址要放在方括号 内 2 寄存器间接寻址 操作数在存储器中 但是操作数 的有效地址包含在 SI DI BP BX 四个寄存器中 如没 有特殊说明 用寄存器 SI DI 和 BX 间接寻址时 对应的 段寄存器是 DS 如 MOV AX SI 假设 SI 2000H 原操作数物理地址 DS 16 SI 32000H 如果用寄存器 BP 间接寻址时 对应的段寄存器是 SS 如 MOV AX BP 原操作数物理地址 SS 16 BP 寄存器间接寻址指令中也可以使用段超越 如 MOV AX DS BP 原操作数物理地址 DS 16 BP 3 寄存器相对寻址 操作数在存储器中 由指定的寄 存器内容 加上指令中给出的 8 位或 16 位偏移量作为操 作数的有效地址 即带位移量的寄存器间接寻址 可以作 为寄存器相对寻址的四个寄存器是 SI DI BX BP 同寄 存器间接寻址 若用 SI DI 和 BX 作寄存器相对寻址 则 操作数默认在数据段 如 MOV AX SI 4000H 原操作数物理地址 DS 16 SI 4000H 指令中可以使用段超越 若用 BP 作为寄存器相对寻址 则 SS 为默认的段寄存器地 如 MOV AX COUNT BP 原操作数物理地址 SS 16 BP COUNT 4 基址加变址寻址 把 BX 和 BP 看作基址寄存器 把 SI DI 看作变址寄存器 把一个基址寄存器 BX 或 BP 的内容加上一个变址寄存器 SI 或 DI 的内容 作为操作 数的有效地址 即为基址加变址寻址方式 如 MOV AX BX SI 原操作数物理地址 DS 16 BX SI 当基址寄存器为 BP 时 默认的段地址寄存器为 SS 如 MOV AX BP SI 5 相对基址变址寻址 基址加变址寻址加上一个相对 位移量 如 MOV AX MASK BX SI MOV BH 4 DI BP MOV BH BP DI 4 常用语法规则 常用语法规则 立即数不能作目的操作数 代码段寄存器 CS 不能作目的操作数 两个操作数不能同时是存储器寻址 堆栈操作都是十六位的操作 两个操作数的类型必须匹配 8086 8088 寄存器间接寻址地址是 BX BP SI DI 之一 数据传送类指令 数据传送类指令 1 通用数据传送指令 MOV OPRD1 OPRD2 功能 把一个字节或一个字从源操作数 PORD2 送至目的 操作数 OPRD1 源操作数不改变 注意事项 1 原和目的操作数的类型要一致 即同时为字节或同 时为字 2 不允许对 IP 进行操作 CS 不能作为目的操作数 3 两个操作数中 除立即寻址外必须有一个为寄存器 寻址 即两个存储器操作数之间不允许直接进行信息传 送 4 两个段寄存器之间不能直接传递信息 也不允许用 立即数寻址方式为段寄存器负初值 4 目的操作数不能用立即寻址方式 MOV 可以实现的传送 立即数 寄存器 立即数 存储单元 寄存器 寄存器 寄存器 存储器 寄存器 段寄存器 存储器 段寄存器 2 交换传送指令 XCHG OPRD1 OPRD2 功能 操作数 OPRD1 的内容与操作数 OPRD2 的内容交换 OPRD1 和 OPRD2 可以是通用寄存器和存储单元 两个操 作数不能同时为存储单元 可以采用除立即数寻址外的 各种寻址方式 但段寄存器和立即数不能作为交换指令的 一个操作数 3 堆栈操作指令 后进先出 1 入栈指令 PUSH OPRD 功能 SP 2 SP 将原操作数 OPRD 的 16 位数据压入堆栈 步骤 SP 2 SP 操作数低 8 位送至 SP 所指向的堆栈单 元 操作数高 8 位送至 SP 1 所指向的堆栈单元 注意事项 OPRD 可以是 CPU 内部的 16 位通用寄存器 段寄存器 CS 除外 和内存操作数 所有寻址方式 入 栈操作对象必须是 16 位数 2 出栈指令 POP OPRD 功能 从堆栈中弹出 16 位数据到目的操作数 OPRD SP 2 SP 步骤 SP 所指向的堆栈单元的内容送至操作数低 8 位 SP 1 所指向的堆栈单元的内容送至目的操作数高 8 位 SP 2 SP 4 有效地址传送指令 LEA REG OPRD 功能 把操作数的有效地址传送到操作数REG寄存器 REG 为 16 位通用寄存器 LEA 与 MOV 的区别是为 LEA 传送原操作数的有效地址 MOV 传送原操作数的内容 5 换码指令 XLAT 功能 完成一个字节的查表转换 表的内容预先已经存在 表的首地址存放于 BX 寄存器 AL 存放相对于表首地址的位移量 该指令执行后 BX AL 单元的内容送至 AL 6 标志寄存器传送指令 1 读取标致指令 LAHF 功能 将标志寄存器中的低 8 位 包括 SF ZF AF PF CF 传送至 AH 寄存器的指定位 空位没有定义 2 设置标志指令 SAHF 功能 将寄存器 AH 的内容送至标志寄存器 FR 的低 8 位 根据 AH 的内容 影响标志位 SF ZF AF PF 和 CF 对 OF DF IF 无影响 3 标志寄存器入栈指令 PUSHF 功能 堆栈指针 SP 2 SP 将标志寄存器压入堆栈顶部 SP 指向的单元 不影响标志位 4 标志寄存器出栈指令 POPF 功能 将堆栈顶部 SP 指向单元 的一个字 传送到标 志寄存器 堆栈 SP 2 SP 7 输入 输出数据传送指令 1 输入指令 IN 累加器 端口地址 功能 从一个端口读取一个字节或一个字 传送到 AL 或 AX 注意事项 端口地址可以直接给出或由 DX 寄存器间接给 出 外部设备最多可有 65536 个 I O 端口 0000 FFFFH 只有前 256 个端口可在指令中直接给出 00 FFH 若端 口地址超过 255 时 则必须用 DX 保存端口地址 2 输出指令 OUT 端口地址 累加器 功能 将 AL 中的一个字节或 AX 中的一个字输出到指定端 口 传送类指令不影响标志位 与 I O 端口打交道的寄存器有 累加器 AX 寄存器 DX AX 存放与外部设备交换的数据 DX 存放端口地址 算数运算类指令算数运算类指令 1 加法指令 1 加法指令 ADD OPRD1 OPRD2 功能 OPRD1 OPRD1 OPRD2 完成两个操作数相加 结 果送至目的操作数 OPRD1 原操作数不变 指令的运行结果对标志位 CF OF PF SF 和 AF 产生影响 2 带进位加法指令 ADC OPRD1 OPRD2 功能 OPRD1 OPRD1 OPRD2 CF ADC 指令主要用于多 字节运算中 3 增量指令 INC OPRD 功能 操作数 OPRD 的内容加 1 结果送回 OPRD 此指令主要用于在循环程序中修改地址指针和循环次数 等 该指令执行的结果影响标志位 AF OF PF SF 和 ZF 不影响进位标志 CF 2 减法指令 1 减法指令 SUB OPRD1 OPRD2 功能 OPRD1 OPRD1 OPRD2 目的操作数减去原操作数 结果送到目的操作数 原操作数不变 本指令对标志位 AF CF OF PF SF 和 ZF 都有影响 2 带借位的减法指令 SBB OPRD1 OPRD2 功能 OPRD1 OPRD1 OPRD2 CF 目的操作数减去原操 作数 同时还要减去借位 进位 标志 CF 的现行值 结 果送到目的操作数 原操作数不变 本指令对标志位 AF CF OF PF SF 和 ZF 都有影响 3 减量指令 DEC OPRD 功能 操作数 OPRD 的内容减 1 并把结果送回 OPRD 执行结果不影响 CF 但影响其它五个状态标志 4 取补指令 NEG OPRD 功能 对操作数取补码 将结果送回操作数 OPRD 中 实 际上是用 0 减去操作数 执行结果影响标志位 AF CF OF PF SF 和 ZF 一般总是使标志位 CF 1 除非在操作 数为 0 时 才使 CF 0 5 比较指令 CMP OPRD1 OPRD2 功能 操作数OPRD1减去OPRD2 运算结果不送到OPRD1 不影响两个操作数 但影响状态标志 3 乘法和除法指令 1 无符号数乘法指令 MUL 和带符号数乘法指令 IMUL MUL OPRD IMUL OPRD 功能 如果 OPRD 是字节操作数 则 AL 的内容与 OPRD 相乘的 16 位结果送到 AX 中 如果 OPRD 是字操作数 则 AX 的内容与 OPRD 相乘 32 位的结果送到 DX 和 AX 中 DX 中是高 16 位 AX 中是低 16 位 注意事项 如果乘积结果的高半部分 字节相乘时为 AH 字相乘时为 DX 不等于零 则标志 CF 1 OF 1 否则 CF 0 OF 0 对其它标志 该指令无定义 所以 如果 CF 0 OF 0 表示 AH 或 DX 中的结果数无效 2 无符号数除法指令 DIV 和带符号数除法指令 IDIV DIV OPRD IDIV OPED 功能 如果 OPRD 是字节操作数 则 AX 的内容除以 OPRD8 位的商送到 AL 中 8 位余数送到 AH 中 如果 OPRD 是字 操作数 则 DX 中 高 16 位 和 AX 中 低 16 位 的内 容除以 OPRD 16 位的商送到 AX 中 16 位的余数送到 DX 中 注意事项 除法指令对标志位的影响无定义 如果除数为 0 或者 8 位数除时商超过 8 位 或者 16 位除时商超过 16 位 则认为是溢出 引起 0 号中断 3 符号扩展指令 字节扩展指令 CBW 寄存器 AL 中的符号扩展到寄存 器 AH 若 AL 的最高有效位为 0 则 AH 0 否则 AH 0FFH 字扩展指令 CWD 寄存器 AX 中的符号扩展到寄存器 DX 若 AX 的最高有效位为 0 则 DX 0 否则 DX 0FFFFH 逻辑运算与移位指令逻辑运算与移位指令 1 逻辑运算指令 1 逻辑 与 指令 AND OPRD1 OPRD2 功能 两个操作数进行按位的逻辑 与 运算 结果送到 目的操作数 OPRD1 CF 0 OF 0 结果影响 ZF SF PF 对自身的 与 操作作用是清标志位 CF 和 OF 自身内容 不变 2 逻辑 或 指令 OR OPRD1 OPRD2 功能 两个操作数进行按位的逻辑 或 运算 结果送到 目的操作数 OPRD1 CF 0 OF 0 结果影响 ZF SF PF 3 逻辑 非 指令 NOT OPRD 功能 把操作数 OPRD 按位取反 结果送回 OPRD 对标 志位没有影响 4 逻辑 异或 指令 XOR OPRD1 OPRD2 功能 两个操作数进行按位的逻辑 异或 运算 结果送 到目的操作数 OPRD1 CF 0 OF 0 结果影响 ZF SF PF 5 逻辑测试指令 TEST OPRD1 OPRD2 功能 两个操作数进行按位的逻辑 与 运算 结果不送 到目的操作数 OPRD1 仅仅影响标志位 通常用于检测某 位是否为 1 但又不改变原来值的场合 2 移位指令 1 算数 逻辑移位指令 SAL OPRD CNT 算数左移 SHL OPRD CNT 逻辑左移 SAR OPRD CNT 算数右移 SHR OPRD CNT 逻辑右移 CNT 为移位位数 可以是 1 或寄存器 CL 当需要移多位 时 移位位数需存放在 CL 寄存器中 算数 逻辑左移 2 循环移位指令 ROL OPRD CNT 循环左移 ROR OPRD CNT 循环右移 RCL OPRD CNT 带进位循环左移 RCR OPRD CNT 带进位循环右移 CNT 为移位位数 可以是 1 或寄存器 CL 当需要移多位 时 移位位数需存放在 CL 寄存器中 控制转移类指令 控制转移类指令 1 无条件转移指令 JMP OPRD 2 调用和返回指令 CALL DST RET 3 条件转移指令 1 标志位转移指令 JC 进位位为 1 JNC 进位位为 0 JO 溢出 JNO 不溢出 JNP JPO 奇偶位为 0 奇 JP JPE 奇偶位为 1 偶 JNS 符号位为 0 非负 JS 符号位为 1 负 JE JZ 结果为 0 JNE JNZ 结果不为 0 2 无符号数比较转移指令 JA JNBE 大于 不小于等于 JAE JNB 大于等于 不小于 JB JNAE 小于 不大于等于 JBE JNA 小于等于 不大于 3 有符号数比较转移指令 4 测试转移指令 注意事项 条件转移不影响标志位 条件转移指令的目的 地址必须在线性的代码段 CS 内 并且以当前指针寄存 器 IP 内容为基准 其位移必须在 128 127 的范围内 4 循环控制指令 LOOP OPRD 功能 寄存器 CX 的值减 1 如果结果不等于 0 则循环置 OPRD 否则顺序执行 第四章第四章 表达式 表达式 1 算术运算符 逻辑运算符和关系运算符 1 算术运算符 MOD SHL SHR 2 逻辑运算符 AND OR NOT XOR 按位运算 3 关系运算符 EQ 等于 NE 不等于 LT 小于 LE 小于 等于 GT 大于 GE 大于等于 关系运算结果总是一个数值 若关系式不成立 则结果为 0 若关系成立 则结果为 0FFFFH 2 分析运算符 1 SEG 变量或标号 计算段地址 2 OFFSET 变量或标号 计算偏移地址 3 TYPE 变量或标号 计算符号类型 3 组合运算符 属性操作符 1 定义符号名为新类型 PTR PTR 用于指定或零时改变变量或标号的类型 2 指定新类型 THIS THIS 为某个符号名建立新类型 如 BYTE 字节 WORD 字 DWORD 双字 伪指令 伪指令 1 数据定义 变量定义 变量名 助记符 功能 根据定义类型不同 为变量分配存储单元 并且把 其后的初值表中的各项值存入连续的指定存储单元中 或 者置分配单元而不存入确定的值 初值表中的各项可以是 数值 字符串 标号名或变量名 表达式 DB 定义字节 即初值表中的每个数据占 1 个字节单元 DW 定义字 即初值表中的每个数据占 1 个字单元 2 个字节 且低字节存放在低地址单元 高字节存放在高 地址单元 DD 定义双字 即初值表中每个数据占两个字单元 4 个 字节 且低字节存放在低地址单元 高字节存放在高地 址单元 DQ 定义 4 字长 即每个数据项占 8 个字节 DT 定义 10 个字节长 当一个定义的存储区内的每个单元要防止同样的数据时 可用 DUP 重复操作符 COUNT DUP COUNT 为重复次数 中为要重复的数据 表示空 出一个单元 没有存放初值 DUP 可以嵌套使用 2 符号常量定义伪指令 1 等价语句 EQU 功能 将表达式的值赋给符号常量 表达式可以是常数 数值表达式 字符串 存储器符号等 2 等号语句 功能 将表达式的数值赋给符号常量 表达式为数值表达 式 注意 等价语句的符号常量名不能被重新赋值 等号语句 可以重新赋值 3 段定义伪指令 SEGMENT 和 ENDS SEGMENT 定位类型 组合类型 类别 段体 ENDS 注意 开始的段名与结束的段名必须相同 段的长度不能 超过 64KB SEGMENT 后面的参数是可选的 但段名是不 可默认的 4 设定段寄存器伪指令 ASSUME ASSUME 段寄存器 段名 段寄存器 段名 功能 告诉汇编程序在汇编时 段寄存器 CS DS SS ES 应具有的符号段基址 但是段寄存器的实际值 CS 除 外 还要由传送指令在执行程序时赋值 5 ORG 伪指令 ORG 功能 规定了在某一段内 程序或代码存放的起始偏移地 址 6 汇编结束伪指令 END END 表达式 功能 告诉汇编程序源文件结束 并给出执行程序的入口 地址 表达式为程序的启动地址 7 过程定义伪指令 PROC 和 ENDP PROC 过程类型 RET ENDP 过程类型 段间为 FAR 段内为 NEAR 汇编语言程序的基本框架 汇编语言程序的基本框架 STACK SEGMENT STACK 定义堆栈段 STACK ENDS DATA SEGMENT 定义数据段 DATA ENDS CODE SEGMENT 定义代码段 ASSUME CS CODE DS DATA SS STACK START MOV AX DATA MOV DS AX 数据段段地址送 DS MOV AH 4CH 程序结束返回 DOS INT 21H CODE ENDS 代码段结束 END START 系统功能调用 系统功能调用 1 调用方法 1 准备入口参数 2 功能调用号送 AH 寄存器 3 软中断指令 INT 21H 2 常用系统功能调用 1 从键盘接收一个字符 01H 功能 MOV AH 1 INT 21H 功能 从键盘读一个字符 并将该字符回显在显示器上 入口参数 无 出口参数 AL 读到字符的 ASCII 码 如果读到的字符是 Ctrl c 或 Ctrl Break 则结束程序 2 从键盘接收一串字符 0AH 号功能 MOV DX OFFSET BUF MOV AH 0AH INT 21H 入口参数 DS DX 缓冲区首址 缓冲区的第一个字节放 缓冲区最大容量数 出口参数 接收到的字符串在缓冲区中第三个字节开始 注意 缓冲区第二个字节存放实际读入的字符数 字符串以回车结束 如果输入字符串超过了缓冲的区容量 超出的部分丢 失 同时响铃 如果在输入时按 Ctrl C 或 Ctrl Break 则结束程序 3 显示一个字符 02H 功能 MOV DL A MOV AH 02H INT 21H 功能 寄存器 DL 中的字符从屏幕上显示输出 入口参数 DL 要输出字符的 ASCII 码 出口参数 无 4 显示一串字符 09H 功能 BUF DB good bye MOV DX OFFSET BUF MOV AH 09H INT 21H 功能 将指定缓冲区中的字符串从屏幕上显示输出 入口参数 DS DX 要输出字符的首址 字符串以字符 为结束标志 出口参数 无 5 返回操作系统 4CH 号功能 MOV AH 4CH INT 21H 功能 结束当前正在执行的程序 并返回操作系统 回到 DOS 提示符下 C 入口参数 无 出口参数 无 汇编文件类型 汇编文件类型 编辑程序输出的文件为 asm 汇编程序输出的文件有 obj lst 连接程序输出的文件为 exe 第五章第五章 存储器容量的扩展方法 存储器容量的扩展方法 1 位扩展 位扩展只是在位数方向扩展 加大字长 而芯片的字 数和存储器的字数是一致的 位扩展的连接方式是将各存 储芯片的地址线 片选线和读 写线相应地并联起来 而 将各芯片的数据线单独列出 例如用 64K 1bit 的 DRAM 芯片组成 64K 8bit 的存储器 2 字扩展 字扩展是指仅在字数方向扩展 而位数不变 字扩展 将芯片的地址线 数据线 读 写线并联 由片选信号来 区分各个芯片 例如用 16K 8bit 的 SRAM 芯片组成 64K 8bit 的存储器 地址译码的方法 地址译码的方法 1 线选法 高位地址线直接 或经反相器 接至各个存储芯片的 片选端 当某条地址线信息为 0 时 就选中与之对应 的存储芯片 这些片选地址线每次寻址只能有一位有效 保证每次只选中一个 或组 芯片 2 全译码法 用除了片内寻址外的全部高位地址线作为地址译码器 的输入 把经过译码器译码后的输出作为各芯片的片选信 号 将它们分别接到存储芯片的片选端 以实现对存储芯 片的选择 3 部分译码 用除了片内寻址外的高位地址的一部分来译码产生片 选信号 在系统中如果不要求提供 CPU 可直接寻址的全 部存储单元 则可采用线选法和全译码法相结合的方法 这就是部分译码法 第六章第六章 接口的作用 接口的作用 接口的作用总的来说就是要能够根据 CPU 的要求对 外设进行管理与控制 实现信号逻辑及工作时序的转换 保证 CPU 与外设之间能可靠而有效地进行信息交换 具 体地说 接口应该具备以下功能 1 数据缓冲及转换功能 2 设备选择和寻址功能 3 联络功能 4 接收 解释并执行 CPU 命令的功能 5 中断管理功能 6 可编程功能 7 错误检测功能 第八章第八章 中断的概念及应用 中断的概念及应用 1 中断向量 中断服务程序的第一个可执行语句所在单 元的地址称为中断向量 即中断服务程序的入口地址 开 始地址 2 中断向量表 将中断向量按中断类型号的顺序固定存 放在内存的特定区域 这就是中断向量表 该表含有 256 个中断服务程序入口地址 占据存储器低地址区的 1KB 空间 从 00000000H 到 000003FFH 专用中断 5 个 保留 中断 27 个 用户定义中断 224 个 中断类型号 n 的中断 向量存放在地址为 4n 4n 3 的单元中 其中 4n 4n 1 存 放的是偏移地址

温馨提示

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

评论

0/150

提交评论