基本知识点强化梳理 汇编接口 北交大.pptx_第1页
基本知识点强化梳理 汇编接口 北交大.pptx_第2页
基本知识点强化梳理 汇编接口 北交大.pptx_第3页
基本知识点强化梳理 汇编接口 北交大.pptx_第4页
基本知识点强化梳理 汇编接口 北交大.pptx_第5页
免费预览已结束,剩余57页可下载查看

下载本文档

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

文档简介

寄存器结构 通用寄存器段寄存器指令指针标志寄存器 Intel8086处理器 结构 字节内容 10000H 9FH 10001H 26H字内容 10000H 269FH 10001H 4826H 程序设计时 使用的是逻辑地址 逻辑地址由 段基址 和 偏移量 构成 均为16位 段基址 由段寄存器CS DS SS和ES提供 偏移量 由BX BP IP SP SI DI提供 物理地址 段地址 16D 左移1 偏移量量每个存储单元有唯一的物理地址 可由不同的 段基址 和 偏移量 组成 例如 1200H 0345H 12345H 1100H 1345H 12345H字节 字节是存储器的最小访问单位 每个字节有一个唯一的编号 地址 字 16位 双字节 在存储器中连续存放的2个字节 低位字节存入低地址 高位字节存入高地址 低低高高原则 字单元地址用它的低地址来表示 Intel8086处理器 存储器分段 代码段 数据段和堆栈段一般程序在存储器中有三个独立的区段 Intel8086处理器 标志寄存器 标志寄存器 16位专用寄存器 定义了9个标志位 包括6个用于运算的状态标志 CF ZF SF PF OF AF 和3个用于控制的控制标志 DF IF TF 溢出 方向 中断 单步 符号 零 辅助进位 奇偶 进位 当有符号运算结果产生溢出时置1 否则置0 运算结果的最高位 1表示结果为负 0表示为正 当运算结果为0时置1 否则置0 当运算结果中1的个数为偶数时置1 否则置0 当运算产生半字节间进位 借位时置1 否则置0 当加 减运算中产生进位 借位时时置1 否则置0 寻址方式 立即数寻址特点 操作数在代码段CS中 用法 用于给寄存器赋初值寄存器寻址 操作数在指定的寄存器中特点 操作数在寄存器中 不需访问存储器 速度快 存储器寻址 直接寻址 直接给出操作数有效地址 偏移量 MOVAL VALUE寄存器间接寻址 有效地址在寄存器 BX SI或DI 中MOVAX SI 寄存器相对寻址 在寄存器间接寻址的基础上 有效地址增加一个常量MOVAX COUNT SI I O端口寻址直接端口寻址 INAL 25H寄存器间接端口寻址 MOVDX 1378H OUTDX AL 伪指令 DB 定义变量的类型为字节DW定义字OFFSET 偏移量SEG 段值EQU语句 给符号定义一个值 或定义为别的符号 表示地址计数器的当前值PTR 为存储器数指定类型 指令系统 数据传送类MOV XCHG XLAT堆栈操作 PUSH POP 地址传送 LEA 输入输出 IN OUT 算术运算类SUBCMPINCADDdest src dest src dest 二进制加ADCdest src dest src CF dest 二进制带进位加SUBdest src dest src dest 二进制减SBBdest src dest src CF dest 二进制带借位减CMPdest src dest src 比较 只影响标志MULsrc 乘法INCreg mem reg mem 1 reg mem 加1DECreg mem reg mem 1 reg mem 减1NEGreg mem0 reg mem reg mem 求补 设 AL 79 ADDAL 0B1H指令执行后 CF和OF的值 转换为2进制无符号加有符号加0111100112112110110001177 79100101010 298 42对于无符号数 结果298 不在0 255之间 所以CF 1对于有符号数 结果在 128 127之间 所以OF 0 难点 进位和溢出问题CF位表示无符号数相加的进位 OF位表示带符号数相加的溢出 算术右移指令SAR有难度 控制转移类 无条件转移 JMP 条件转移 Jxx JCXZ 循环控制 LOOP LOOPZ LOOPNZ 子程序控制 CALL RET 中断控制 INT 位操作类 逻辑指令 NOTANDORXORTEST 逻辑运算SHLSHRSALSARROLRORRCLRCR 移位 中断概念和处理流程键盘中断调用 INT16H INT21H 显示中断调用 INT21H 中断类型号与中断程序的联系 中断向量中断向量 即中断服务程序的入口地址 4个字节CS IP中断向量表 存放中断向量 256个中断的服务程序入口地址 中断向量 长度和方向 译码实现寄存器地址25H唯一选择 片内地址 端口 为4个 25H 26H 27H 28H INAL 25H 译码输入信号 与地址信号与控制信号有关 AEN信号 AEN 0 正常操作 AEN 1 DMAIOR和IOW信号 控制端口的读 写译码输出信号 产生唯一低电平信号 选中芯片内的寄存器端口高位地址线与CPU的控制信号进行组合 经译码电路产生I O接口芯片CS的片选 低位地址线不参加片选译码 直接连到I O接口芯片 进行I O接口芯片的片内端口寻址 即寄存器寻址 低位线的数目决定了可寻址端口的数目 使用专用译码芯片 震荡器 减1寄存器 初值 GATE 定时输出 OUT CLK 计数器完成指定次数 预置初值 的输入脉冲 CLK 计数 并输出 OUT 计数过程可控 通过GATE 计数过程可读取 8253方式字 向 基地址 3 写入的一个字节是控制字 包括方式设置 锁存设置等 控制字格式 方式0 0方式 低电平输出 软件 事件计数器功能 当向计数器写完计数值后 OUT变成低电平 并在计数过程中一直保持低电平 当计数器减到零时 OUT产生0 1的上升沿 用此沿可申请中断 方式1 1方式 GATE信号上升沿重新计数 可编程单稳态触发器 写入计数初值后 计数器并不立即开始工作 GATE出现上升沿才开始工作 OUT变成低电平 直到计数器值减到零 OUT才变高电平 当GATE又出现上升沿时 计数器重新装入原计数初值并重新开始计数 方式2 2方式 分频器 设置为2方式 OUT 1 写初值寄存器后 计数器启动 当计数器减到零的前一个CLK OUT 0 输出一个宽度为一个CLK周期的负脉冲 并自动重新装入初始值 自动启动计数 可以通过GATE 0暂停计数 方式3 3方式 方波发生器 3方式与2方式基本相同 也具有自动装入计数初值的功能 但输出的波形为占空比为1 1的方波 方式4 4方式 软件 触发单脉冲发生器此方式设定后 输出OUT就开始变成高电平 当写完计数初值后 计数器开始计数 计数完毕 计数回零结束 输出一个宽度为一个时钟脉冲宽度的负脉冲 然后输出又恢复高电平 并一直保持高电平不变 方式5 5方式 硬件触发单脉冲发生器当写入计数初值后 计数器并不立即开始计数 而要由门控信号的上升沿启动才开始计数 方波发生器 分频器 周期窄脉冲 6种方式总结 软件 计数到零产生窄脉冲 中断 硬件 可重复触发的单稳态触发器 软件 触发选通 硬件 触发选通 OUT宽度对比 8255内部结构 端口分组 分组为A和B组 方式命令 写入到 基地址 3 控制寄存器 的8255A控制字按照最高位 D7 的不同有两种格式 D7 1用于设置工作方式 置位 复位命令字 05H 00000101 使PC2 1的命令字04H 00000100 使PC2 0的命令字 D7 0为C端口置位 复位命令 写入到 基地址 3 监测PA0 PA2 PA4 PA6高低电平的变化 当全为低电平时 L1灯灭 L2灯亮 当全为高电平时 L1灯亮 L2灯灭 PA0 PA2 PA4 PA6其他电平组合 L1和L2全灭 COMMANDEQU0083H 8255命令口端口号APORTEQU0080H 8255A口端口地址MOVDX COMMAND 初始化8255方式命令字MOVAL 82H 0方式OUTDX ALPROCESS MOVDX APORT 读取A口数据INAL DXANDAL 55HCMPAL 00HJZPC4OPCMPAL 55HJZPC7OPMOVDX COMMAND 对C口操作MOVAL 09H PC4 1 L1灯灭OUTDX ALMOVAL 0FH PC7 1 L2灯灭OUTDX AL JMPPROCESSPC4OP 读取C口数据 并与BH比较 若不同 说明开关被拨动 进入处理过程MOVDX COMMANDMOVAL 09H PC4 1 L1灯灭OUTDX ALMOVAL 0EH PC7 0 L2灯亮OUTDX ALJMPPROCESSPC7OP 增加CX值 若CX值为2 说明开关拨动一个来回 更新LED显示MOVDX COMMANDMOVAL 08H PC4 0 L1灯亮OUTDX ALMOVAL 0FH PC7 1 L2灯灭OUTDX ALJMPPROCESS 8259A 内部结构 IRR 8位寄存器 分别记录8个中断申请 直到其被响应 可被读出 IMR 8位只写寄存器 分别设置8路中断的屏蔽 1 状态 数据总线缓冲器 读 写逻辑 级联缓冲 比较器 控制逻辑 正在服务寄存器ISR 优先级分析器PR 中断请求寄存器IRR 中断屏蔽寄存器IMR IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 D0 D7 INT A0 CAS0 CAS1 CAS2 SP EN CS WR RD INTA 工作方式 IR0 IR7固定由高至低优先级 IRi服务期间设置ISR的Di 只允许更高优先级中断 用于设定级联 IRi服务期间设置ISR的Di 允许同优先级中断 中断响应周期自动清除ISR的对应位 中断结束 完全嵌套方式对应的常规结束方式 IMR寄存器的8位分别独立用于8个中断输入的屏蔽 对应位写入1表示屏蔽该中断 8259A的工作方式设置项目主要包括 边沿触发 IR输入的上升沿触发中断 电平触发 IR的高电平表示中断请求 寄存器 总结 IRR IMR ISR都是置位 写1 有效 即IRR有请求了 IMR屏蔽了 ISR服务中 ing 11 1中断控制器8259A 初始化 1 ICW1 进行中断触发和单片 多片设置 2 ICW2 进行中断号设置 3 ICW3 进行级联设置 4 ICW4 进行优先级和结束方式设置 8259初始化具体操作 TPC实验平台 中断模块 386CPU内部有2个8259 级联采用与PC机相同的方式 其主从8259使用的命令字和端口地址与PCDOS兼容 本实验箱允许使用主8259的IR5即MIR5和从8259的IR0 SIR0和扩展8259 注意 主从8259已经初始化 并且固化 用户无需对8259初始化 只能写入中断屏蔽字和中断向量 主从片8259A的端口地址 实验平台主从8259A的中断类型号与中断源的对应关系 中断号基数 Modelsmall 386datasegment 数据段定义dataendscodesegmentassumecs code ds datastart movax data 数据段定位movds ax 加上设置其他模块初始化cli 关386CPU中断 写入中断屏蔽字OCW1inal 21handal 11011111bout21h alCALLWRINTVERSti 主程序代码codeendsendstart WRINTVER PUSHDSMOVAX 0MOVDS AXMOVDI 4 35HCLIMOVBX OFFSETINTPMOV DI BXADDDI 2MOVBX SEGINTPMOV DI BXPOPDSretINTP 中断服务程序PUSHAXCLI 中断服务主体MOVAL 20H 中断结束OCW2OUT20H ALSTIPOPAXIRET 中断程序设计模板 技术指标 0809内部结构 通道选择开关 8路模拟输入信号 通道锁存译码 通道编号 启动脉冲 时钟脉冲 输出允许1 允许输出 转换完成1 完成 REF参考电压正极和负极 三态输出锁存器 D7 D0 0809工作时序 转换期间 输入信号保持稳定 锁存地址 选择通道 CLOCK START ALE ADDA B C 模拟输入信号 OE ENABLE EOC 数据输出 开始转换 转换结束 读取数据 编程步骤 送通道码 ALE ALE 1 写入待转换的通道 由ADDA ADDB ADDC高低电平决定 通常ADDA ADDB ADDC接固定电平 即转换通道固定 启动A D转换 START 给START一正脉冲 转换开始注意 通常 同时完成 12 2A D转换接口 编程步骤 判断是否转换完毕 判EOC引脚的状态 用EOC标志信号 典型的有三种方式 用EOC引脚 查询是否为高电平用EOC引脚 中断不直接用EOC引脚 延时 延时至少100us CPU读取数据 即输出数据 OE ENABLE A0 1 IOW 0 ADCS 0 1 IOR 0 1 0 1 A1 1 IOR 0 中断方式用到200H 201H查询方式用到200H 201H 202H 实验AD编程地址 A1A0 00 配合IOW写操作 ALE START 1 启动A D转换200H 中断 启动转换 A0 1 配合IOR读操作 ENABLE 1 读取A D转换后的数据201H 中断 读数据 A1 1 配合IOR读操作 三态门打开 通过D0获取EOC状态 当D0 1时 转换结束202H 查询转换是否结束 中断方式用到200H 201H查询方式用到200H 201H 202H Vref 基准电压 8位数据输入 ILE 数据输入锁存 高有效 XFER 传送控制 低有效 DAC0832 DAC0832有三种工作方式 1 双缓冲方式 控制选通1和2 2 单缓冲方式 控制选通1或2 3 直通方式 不控制选通1和2 直接接低电平 例 在图中采用单缓冲方式连接 利用DAC0832可实现任意波形输出锯齿波程序段如下 MOVDX 200H DAC0832的端口地址MOVAL 0H 输出数据0TN OUTDX ALINCAL 输出数据加1JMPTN 8251接口芯片 内部结构 发送逻辑 数据发送机制 TxD 异步串行数据输出 TxRDY 发送数据寄存器空 可写入数据 TxC 发送时钟 异步时为数据须率的1 16 64倍 接收逻辑 数据接收机制 RxD 异步串行数据输入 RxRDY 接收数据寄存器满 可读取数据 RxC 接收时钟 异步时为数据须率的1 16 64倍 内部结构 收发联络信号的作用TXRDY 发送器准备好信号 用来通知CPU 8251A已准备好发送一个字符 RXRDY 接收器准备好信号 用来表示当前8251A已经从外部设备接收到一个字符 等待CPU来取走 在中断方式时 RXRDY可用作中断请求信号在查询方式时 RXRDY可用来作为查询信号还可以利用状态字进行发送 接收 方式命令字 方式命令字 8251A复位后写到命令端口的第一个字节 方式字的最低2位为00 表示同步方式命令 否则为异步方式命令 异步方式命令定义如下 波特率因子 00 同步 01 110 1611 64 字符长度 00 5位01 6位10 7位11 8位 校验设置 X0 无校验01 奇校验11 偶校验 停止位数 00 非法 01 1位10 1 5位11 2位 工作命令字 工作命令字 8251A复位后写到命令端口的第二个字节 之前的方式字确定为异步方式 TxEN 0 不允许发送 1 允许发送 RxEN 0 不允许接收 1 允许接收 ER 1 清除全部错误标志 后面状态字 IR 1 产生内部复位 状态字 状态字 8251A复位后从状态端口读取到的字节 TxRDY 1 发送数据寄存器空 RxRDY 1 接收数据寄存器满 PE 奇偶错误 1 发生奇偶错误 OR 溢出错误 1 发生溢出错误 FE 格式错误 1 发生格式错误 例 在PC机上做如题图所示的连接 假设 采用异步通信方式 偶校验 1位停止位 8位数据位 波特率因子为16 片选地址为300H 请编写程序实现 从PC键盘输入字符 将该字符从串口中发送出去 假设8253A已经被初始化 满足了波特率的要求 方式字 01111110B 7EH 复位命令 40H 正常工作命令 00010001B 11HMOVDX 301H 8251空操作MOVAL 00HOUTDX ALMOVAL 40H 8251内部复位OUTDX ALMOVAL 7EH 方式字OUTDX ALMOVAL 11H 工作命令OUTDX AL LOP MOVAH 0BH 查有键按下吗 INT21HCMPAL 0JELOPMOVAH 1 读键INT21HMOVAH AL 保存按的键LOP1 MOVDX 301H 查可发送吗 INAL DXANDAL 01HJZLOP1MOVDX 300H 发数据MOVAL AHOUTDX ALLOOPLOP 通过8251A接收100个字节数据 并将这些数据存入以BUFF开始的内存单元中 假设采用异步方式 波特率9600b s 8个数据位 1个停止位 奇校验 要求采用中断方式进行数据传输 如果接收错误 舍弃不存储接收的数据 设置中断向量 开8259A中断MOVDX 201H 8251A初始化XORAX AX 空操作OUTDX ALMOVAL 40H 内部复位OUTDX ALMOVAL 01011110B 方式字MOVDX ALMOVAL 00010100B 命令字MOVDX ALMOVSI OFFSETBUFF 初始化指针MOVCX 100LOP1 STI 开中断HLTLOOPLOP1 主程序1分 MIR5 PUSHAX 保护数据PUSHDXMOVDX 2

温馨提示

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

评论

0/150

提交评论