当前位置: 首页 > news >正文

微机原理与接口技术,期末习题(二)

点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!
持续关注我~~~主页,查看更多内容哟(希望你能在这里有所收获🤭)。点关注,不迷路,哈哈哈!~~~

主页:

一位搞嵌入式的 genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1008.2028.3001.5343

目录

点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!持续关注我~~~主页,查看更多内容哟(希望你能在这里有所收获🤭)。点关注,不迷路,哈哈哈!~~~

10.3 练习3

OCW1(中断屏蔽命令字)

OCW2(优先级与中断结束命令字)

OCW3(特殊屏蔽、查询与状态读取命令字)


10.3 练习3

  1. “先并行→串行→串行→并行”,是串行通信的完整流程(典型如 UART 串口通信 ),核心是解决 “设备内部并行数据” 与 “外部串行总线” 的适配问题

  2. 中断向量表中,每个中断向量占 4 字节,中断号为n时,首地址为(n×4) 。中断号为16H(即 22),中断向量首地址为(16H×4 = 64H)。读取服务程序地址:从 64H 开始,连续读 4 字节 → 前 2 字节是 IP,后 2 字节是 CS 。 跳转执行:CPU 把 CS、IP 设为刚读的值,跳转到中断服务程序执行。

  3. 8086 中,中断类型码 0 对应除法出错中断(执行除法指令除数为 0 时触发 ),单步(1 )、溢出(4 )、断点(3 )中断类型码不同。

  4. 8086 堆栈入栈规则是 SP 先减(指向空单元 ),再压入数据(保证数据存在正确栈地址 ),出栈则相反(先弹数据,SP 再加 )。

  5. 8259 中,IMR(中断屏蔽寄存器 ) 用于屏蔽特定中断请求,IRR 是中断请求寄存器、ISR 是中断服务寄存器

  6. 总线周期:CPU 经外部总线对存储器 / I/O 端口一次输入输出的时间,定义为 总线周期

    指令周期定义为 CPU 从主存取出一条指令并执行该指令的时间,包含取指、执行等阶段

  7. 8259 中,OCW1 是中断屏蔽操作命令字(写入 IMR ),ICW 是初始化命令字

    8259 常考命令字及功能:

    • 初始化命令字(ICW)

      :系统上电时由 BIOS 写入,工作中一般不变

      • ICW1:芯片控制初始化,写偶地址端口,设触发(电平 / 边沿)、单片 / 级联、是否需 ICW4

      • ICW2:中断类型码初始化,写奇地址端口,设中断类型号高 5 位,低 3 位由 IR 引脚定

      • ICW3:主 / 从片标识初始化(级联时用),写奇地址端口。主片标 IR 引脚接从片;从片标自身 INT 接主片哪个 IR 引脚

      • ICW4:方式控制初始化(需 ICW1 中 D0=1 时用),写奇地址端口,设定嵌套、缓冲、中断结束方式(自动 / 非自动)

    • 操作命令字(OCW)

      :应用程序动态写,初始化后可随时改

      • OCW1:中断屏蔽操作,写奇地址端口,对应位写 1 屏蔽对应 IR 中断请求

      • OCW2:设优先级循环、中断结束方式,写偶地址端口。通过 R、SL、EOI 位组合,控制优先级循环(如普通 / 特殊循环)、中断结束(如普通 / 特殊 EOI)

      • OCW3:设特殊屏蔽、中断查询、读内部寄存器,写偶地址端口。可开启 / 撤销特殊屏蔽;让 8259 进入查询模式,CPU 读状态判断中断;还能读 IRR、ISR 寄存器状态



  8. LEA 是 “解析内存寻址的偏移地址”,哪怕这个偏移地址来自寄存器;所以SI就是把BX的地址1000H拿到,所以选择C。
  9. 8086 中断优先级:除法出错(内部中断 )> 不可屏蔽中断(NMI )> 可屏蔽中断(INTR )> 单步中断

    内部中断并非全最高优先级(单步中断例外 ),常见类型覆盖 “运算错误、调试辅助、系统调用、程序异常” 等场景,是程序与硬件交互、调试排错的核心机制~

  10. 汇编语言语句包含 指令语句(对应机器码 )、伪指令语句(给汇编器用,无机器码 )、宏指令语句(自定义宏 ) ;伪指令无机器码,格式与指令不同

  11. 响应 NMI(不可屏蔽中断 )的必要条件是 当前指令执行结束 ,IF 是可屏蔽中断(INTR )的控制位,与 NMI 无关。IF 是 CPU 标志寄存器里的 1 位,专门控制 “是否响应外部可屏蔽中断(INTR )”

    • IF=1 → 允许响应 INTR 中断(可屏蔽中断开 )

    • IF=0 → 禁止响应 INTR 中断(可屏蔽中断关 )

  12. DOS 功能调用里,AH 是 “功能选单编号”,程序通过给 AH 赋值选功能,执行 INT 21H 让 DOS 干活~ 这是 DOS 时代程序和操作系统交互的 “标准对话方式”,AH 就是对话里的 “指令代号”!

  13. 8086 的栈是 “向下生长” 的:

    • 栈底在高地址,栈顶(SP )往低地址移动;

    • 压栈(PUSH )时,数据要存在 “栈顶下方”(更低地址 ),所以 SP 必须先减 2(因为 16 位寄存器占 2 字节 ),再存数据。

  14. 8086 中,外设通过 HOLD 线请求总线控制权(DMA 场景常用 ),NMI 是不可屏蔽中断、INTR 是可屏蔽中断、TEST 是测试线

  15. OCW1(中断屏蔽命令字)

    D7D6D5D4D3D2D1D0
    含义M7M6M5M4M3M2M1M0
    功能对应 IR7 引脚中断屏蔽位,1 表示屏蔽,0 表示允许对应 IR6 引脚中断屏蔽位对应 IR5 引脚中断屏蔽位对应 IR4 引脚中断屏蔽位对应 IR3 引脚中断屏蔽位对应 IR2 引脚中断屏蔽位对应 IR1 引脚中断屏蔽位对应 IR0 引脚中断屏蔽位

    OCW2(优先级与中断结束命令字)

    D7D6D5D4D3D2D1D0
    含义RSLEOI000L2L1L0
    功能优先级循环控制位,1 为自动循环模式,0 为固定模式指定级别有效位,1 时 L2 - L0 定义的中断级别有效,0 时无效中断结束位,1 用于非自动结束中断,0 为自动结束中断固定为 0固定为 0固定为 0中断级别指定位,与 SL 配合指定要操作的中断优先级

    OCW3(特殊屏蔽、查询与状态读取命令字)

    D7D6D5D4D3D2D1D0
    含义00ESMMSMM0RRRIS0
    功能固定为 0固定为 0特殊屏蔽模式允许位,1 时 SMM 有效特殊屏蔽模式位,1 表示进入特殊屏蔽,0 表示退出固定为 0读寄存器命令,1 表示允许读寄存器读中断寄存器选择,0 表示读 IRR,1 表示读 ISR固定为 0

    8259A 的初始化命令字(ICW)和操作命令字(OCW)主要有以下区别:

    1. 功能用途:

      • 初始化命令字(ICW):用于系统启动时对 8259A 进行初始化设置,确定其基本工作模式,如中断触发方式、中断类型号、级联方式、工作方式等,通常由 BIOS 或操作系统内核在系统启动阶段完成,一旦设置,在系统工作过程中一般保持不变。

      • 操作命令字(OCW):用于系统运行时,动态控制 8259A 的工作状态,如中断屏蔽、优先级循环、中断结束、查询等操作,可在初始化后任何时间根据需求写入 。

    2. 包含种类:

      • 初始化命令字(ICW):有 ICW1(芯片控制初始化命令字 )、ICW2(中断类型码初始化命令字 )、ICW3(主从片初始化命令字 ,级联时用 )、ICW4(工作方式命令字 )。

      • 操作命令字(OCW):有 OCW1(中断屏蔽操作命令字 )、OCW2(优先级与中断结束命令字 )、OCW3(特殊屏蔽、查询与状态读取命令字 ) 。

    3. 写入时机与顺序:

      • 初始化命令字(ICW):必须按严格顺序写入,ICW1 写偶地址端口,ICW2 - ICW4 写奇地址端口,且依赖于系统配置(如是否级联、是否需要特定工作方式等 )决定是否需要写入全部 ICW 。

      • 操作命令字(OCW):写入次序无严格要求,但端口地址有规定(OCW1 写奇地址,OCW2、OCW3 写偶地址 ),可在程序运行中反复设置,灵活调整 8259A 工作状态 。

    4. 作用持续性:

      • 初始化命令字(ICW):初始化完成后,设置的参数持续影响 8259A 工作,除非系统重启重新初始化 。

      • 操作命令字(OCW):每次设置后生效,操作完成(如中断结束、查询完成 )后,若需再次进行对应操作,需重新设置 。

  16. 8086 指令系统中,不允许源和目的操作数同时为存储单元(需用寄存器中转 )

  17. (8259 中断触发方式为电平触发(高电平有效 )和边沿触发(上升沿有效 ) )

  18. (I/O 端口编址方式有统一编址(与内存统一地址 )和独立编址(单独地址空间 );8086 用独立编址 )

如有问题,请大家在评论区中指正,有疑问的可以在评论区中提出来。

相关文章:

  • 基于Three.js的交互式国风博物馆设计与实现
  • 【白雪讲堂】当前GEO是否能追溯数据源?
  • Ubuntu 与 Windows 实现文件夹共享
  • ubuntu 系统 多条命令通过 bash 脚本执行
  • [python]pycddlib使用案例
  • day30 模块和库的导入
  • Docker Windows 配置国内镜像源方法
  • 05 - SimAM模块
  • 202558读书笔记|《雨季不再来(轻经典)》——日子总有停住的一天,大地要再度绚丽光彩起来
  • TCP客户端进程分割输入输出
  • day65—回溯—单词搜索(LeetCode-79)
  • 【linux】简单的shell脚本练习
  • 开源模型应用落地-工具使用篇-从零开始搭建Qdrant Web UI-可视化管理工具-Windows(十)
  • 《第一章-初入江湖》 C++修炼生涯笔记(基础篇)C++初识
  • Doris catalog操作
  • 国标28181卡顿问题现场诊断报告
  • gbase8s之MyBatis批量update问题
  • WPF--Application.Current.Dispatcher.BeginInvoke
  • 人工智能之数学基础:如何将二次型转换为标准型?
  • QMainWindow、QDialog 和 QWidget区别
  • 一级a做受片免费网站/营销型网站建设哪家好
  • 快速建站视频/系统设置友情链接有什么作用
  • 医疗网站建设代理商/泰安百度推广电话
  • dede女性网站源码/网络营销课程
  • 织梦网站数据库库直接上传的 没有后台备份 需要怎么还原/广州软文推广公司
  • 广告公司名字怎么取/搜索引擎优化的简称是