微机原理与接口技术,期末习题(二)
点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!
持续关注我~~~主页,查看更多内容哟(希望你能在这里有所收获🤭)。点关注,不迷路,哈哈哈!~~~
主页:
一位搞嵌入式的 genius-CSDN博客https://blog.csdn.net/m0_73589512?spm=1008.2028.3001.5343
目录
点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!!持续关注我~~~主页,查看更多内容哟(希望你能在这里有所收获🤭)。点关注,不迷路,哈哈哈!~~~
10.3 练习3
OCW1(中断屏蔽命令字)
OCW2(优先级与中断结束命令字)
OCW3(特殊屏蔽、查询与状态读取命令字)
10.3 练习3
-
“先并行→串行→串行→并行”,是串行通信的完整流程(典型如 UART 串口通信 ),核心是解决 “设备内部并行数据” 与 “外部串行总线” 的适配问题
-
中断向量表中,每个中断向量占 4 字节,中断号为n时,首地址为(n×4) 。中断号为16H(即 22),中断向量首地址为(16H×4 = 64H)。读取服务程序地址:从 64H 开始,连续读 4 字节 → 前 2 字节是 IP,后 2 字节是 CS 。 跳转执行:CPU 把 CS、IP 设为刚读的值,跳转到中断服务程序执行。
-
8086 中,中断类型码 0 对应除法出错中断(执行除法指令除数为 0 时触发 ),单步(1 )、溢出(4 )、断点(3 )中断类型码不同。
-
8086 堆栈入栈规则是 SP 先减(指向空单元 ),再压入数据(保证数据存在正确栈地址 ),出栈则相反(先弹数据,SP 再加 )。
-
8259 中,IMR(中断屏蔽寄存器 ) 用于屏蔽特定中断请求,IRR 是中断请求寄存器、ISR 是中断服务寄存器
-
总线周期:CPU 经外部总线对存储器 / I/O 端口一次输入输出的时间,定义为 总线周期
指令周期定义为 CPU 从主存取出一条指令并执行该指令的时间,包含取指、执行等阶段
-
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 寄存器状态
-
-
LEA
是 “解析内存寻址的偏移地址”,哪怕这个偏移地址来自寄存器;所以SI就是把BX的地址1000H拿到,所以选择C。-
8086 中断优先级:除法出错(内部中断 )> 不可屏蔽中断(NMI )> 可屏蔽中断(INTR )> 单步中断
内部中断并非全最高优先级(单步中断例外 ),常见类型覆盖 “运算错误、调试辅助、系统调用、程序异常” 等场景,是程序与硬件交互、调试排错的核心机制~
-
汇编语言语句包含 指令语句(对应机器码 )、伪指令语句(给汇编器用,无机器码 )、宏指令语句(自定义宏 ) ;伪指令无机器码,格式与指令不同
-
响应 NMI(不可屏蔽中断 )的必要条件是 当前指令执行结束 ,IF 是可屏蔽中断(INTR )的控制位,与 NMI 无关。
IF
是 CPU 标志寄存器里的 1 位,专门控制 “是否响应外部可屏蔽中断(INTR )” :-
IF=1
→ 允许响应INTR
中断(可屏蔽中断开 ) -
IF=0
→ 禁止响应INTR
中断(可屏蔽中断关 )
-
-
DOS 功能调用里,
AH
是 “功能选单编号”,程序通过给AH
赋值选功能,执行INT 21H
让 DOS 干活~ 这是 DOS 时代程序和操作系统交互的 “标准对话方式”,AH
就是对话里的 “指令代号”! -
8086 的栈是 “向下生长” 的:
-
栈底在高地址,栈顶(
SP
)往低地址移动; -
压栈(
PUSH
)时,数据要存在 “栈顶下方”(更低地址 ),所以SP
必须先减 2(因为 16 位寄存器占 2 字节 ),再存数据。
-
-
8086 中,外设通过
HOLD
线请求总线控制权(DMA 场景常用 ),NMI
是不可屏蔽中断、INTR
是可屏蔽中断、TEST
是测试线 -
OCW1(中断屏蔽命令字)
位 D7 D6 D5 D4 D3 D2 D1 D0 含义 M7 M6 M5 M4 M3 M2 M1 M0 功能 对应 IR7 引脚中断屏蔽位,1 表示屏蔽,0 表示允许 对应 IR6 引脚中断屏蔽位 对应 IR5 引脚中断屏蔽位 对应 IR4 引脚中断屏蔽位 对应 IR3 引脚中断屏蔽位 对应 IR2 引脚中断屏蔽位 对应 IR1 引脚中断屏蔽位 对应 IR0 引脚中断屏蔽位 OCW2(优先级与中断结束命令字)
位 D7 D6 D5 D4 D3 D2 D1 D0 含义 R SL EOI 0 0 0 L2 L1 L0 功能 优先级循环控制位,1 为自动循环模式,0 为固定模式 指定级别有效位,1 时 L2 - L0 定义的中断级别有效,0 时无效 中断结束位,1 用于非自动结束中断,0 为自动结束中断 固定为 0 固定为 0 固定为 0 中断级别指定位,与 SL 配合指定要操作的中断优先级 OCW3(特殊屏蔽、查询与状态读取命令字)
位 D7 D6 D5 D4 D3 D2 D1 D0 含义 0 0 ESMM SMM 0 RR RIS 0 功能 固定为 0 固定为 0 特殊屏蔽模式允许位,1 时 SMM 有效 特殊屏蔽模式位,1 表示进入特殊屏蔽,0 表示退出 固定为 0 读寄存器命令,1 表示允许读寄存器 读中断寄存器选择,0 表示读 IRR,1 表示读 ISR 固定为 0 8259A 的初始化命令字(ICW)和操作命令字(OCW)主要有以下区别:
-
功能用途:
-
初始化命令字(ICW):用于系统启动时对 8259A 进行初始化设置,确定其基本工作模式,如中断触发方式、中断类型号、级联方式、工作方式等,通常由 BIOS 或操作系统内核在系统启动阶段完成,一旦设置,在系统工作过程中一般保持不变。
-
操作命令字(OCW):用于系统运行时,动态控制 8259A 的工作状态,如中断屏蔽、优先级循环、中断结束、查询等操作,可在初始化后任何时间根据需求写入 。
-
-
包含种类:
-
初始化命令字(ICW):有 ICW1(芯片控制初始化命令字 )、ICW2(中断类型码初始化命令字 )、ICW3(主从片初始化命令字 ,级联时用 )、ICW4(工作方式命令字 )。
-
操作命令字(OCW):有 OCW1(中断屏蔽操作命令字 )、OCW2(优先级与中断结束命令字 )、OCW3(特殊屏蔽、查询与状态读取命令字 ) 。
-
-
写入时机与顺序:
-
初始化命令字(ICW):必须按严格顺序写入,ICW1 写偶地址端口,ICW2 - ICW4 写奇地址端口,且依赖于系统配置(如是否级联、是否需要特定工作方式等 )决定是否需要写入全部 ICW 。
-
操作命令字(OCW):写入次序无严格要求,但端口地址有规定(OCW1 写奇地址,OCW2、OCW3 写偶地址 ),可在程序运行中反复设置,灵活调整 8259A 工作状态 。
-
-
作用持续性:
-
初始化命令字(ICW):初始化完成后,设置的参数持续影响 8259A 工作,除非系统重启重新初始化 。
-
操作命令字(OCW):每次设置后生效,操作完成(如中断结束、查询完成 )后,若需再次进行对应操作,需重新设置 。
-
-
-
8086 指令系统中,不允许源和目的操作数同时为存储单元(需用寄存器中转 )
-
(8259 中断触发方式为电平触发(高电平有效 )和边沿触发(上升沿有效 ) )
-
(I/O 端口编址方式有统一编址(与内存统一地址 )和独立编址(单独地址空间 );8086 用独立编址 )
如有问题,请大家在评论区中指正,有疑问的可以在评论区中提出来。