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

第13章 int指令

本章在第12章内中断基础上,深入讲解由 int指令引发的软中断。这是汇编语言主动调用系统功能(如BIOS、DOS服务)的核心机制。


13.1 int指令的本质

int n 是显式触发中断的指令,n为中断类型码(0~255)。

执行过程(CPU自动完成):

  1. 获取中断类型码n
  2. 标志寄存器入栈
  3. 设置IF=0TF=0(屏蔽其他中断)
  4. CSIP依次入栈(保存断点)
  5. 从中断向量表(n*4)处读取新IPCS,跳转执行

本质理解int类似call,都是调用子程序。区别在于int通过中断向量表间接寻址,且CPU自动处理标志寄存器的保存与恢复。


13.2 编写自定义中断例程

三步法

  1. 编写:中断处理程序(必须用iret返回)
  2. 安装:将程序复制到安全内存(如0:200
  3. 注册:修改中断向量表,将入口地址填入对应表项

中断例程的特点

  • 必须用iret返回(恢复断点和标志寄存器)
  • 应保存和恢复用到的寄存器
  • 可被任何程序通过int n调用

13.3 深入理解栈与程序流程控制

本章最核心的技巧:通过修改栈中的返回地址改变程序执行流程

中断发生时的栈状态(从栈顶向下):

  • 标志寄存器
  • CS
  • IPint指令下一条指令的地址

关键原理:中断例程可以修改栈中保存的IP值,当执行iret返回时,CPU会将修改后的IP弹出,从而跳转到指定位置继续执行。

典型应用:用int 7ch模拟loop指令

  • 原理:在中断例程中修改返回地址(加上位移量),实现循环跳转
  • 位移范围:由16位寄存器决定(-32768~32767)

13.4 BIOS和DOS中断例程

BIOS中断

  • 存放位置:主板ROM中(FFFF:0处)
  • 特点只读,开机时自动可用
  • 作用:硬件检测、初始化、基本I/O操作
  • 开机过程:CPU从FFFF:0执行→进入BIOS→初始化硬件→建立中断向量表→引导操作系统

DOS中断

  • 典型代表int 21h(DOS功能调用)
  • 特点:操作系统加载后装入内存
  • 调用方式:通过ah指定子功能号
  • 常见功能
    • 程序返回(ah=4ch
    • 显示字符串(ah=9,字符串以$结尾)
    • 读取键盘输入等

BIOS与DOS的关系

  • BIOS提供最底层的硬件接口
  • DOS在BIOS基础上封装,提供更高级的系统功能
  • 两者共同构成完整的中断服务体系

13.5 核心要点对比

概念 说明
int n 软中断指令,通过中断向量表调用例程
中断例程 必须用iret返回,可被任何程序调用
中断向量表 存放中断例程入口地址(0:0开始,每项4字节)
栈中的返回地址 可通过修改它改变程序流程(模拟loop的核心)
BIOS中断 ROM只读,提供基础硬件服务
DOS中断 内存中,提供操作系统级服务

总结

本章完成了从被动响应中断(第12章)到主动调用中断的转变:

  1. 编程层面:学会编写可复用的中断例程
  2. 机制层面:深入理解intiret和栈的关系
  3. 技巧层面:掌握通过修改返回地址控制程序流程的方法
  4. 系统层面:了解BIOS和DOS中断的体系结构
http://www.jsqmd.com/news/466817/

相关文章:

  • ClearerVoice-Studio语音增强进阶:VAD阈值调节+后滤波参数优化指南
  • Dify报错日志里藏着的5个关键信号:ConnectionResetError / EmptyContextError / ScoreThresholdMismatch——精准定位RAG召回失效源头
  • UDOP-large文档理解模型实测:上传图片+输入问题,秒级提取关键信息
  • Lingyuxiu MXJ LoRA多场景落地:教育行业教师形象生成/教材插图定制化输出
  • SteamDeck_rEFInd:让掌机多系统切换不再繁琐
  • **OpenClaw小白福利:从1.3万+技能里,强烈推荐这9个先装!(2026最新,纯聊天安装版)**
  • FireRedASR Pro Python入门实战:10行代码实现你的第一个语音识别应用
  • 金融客服语音分析:SenseVoice-Small ONNX模型情感+语种联合识别
  • 实战应用:基于快马平台构建从安装到配置一体化的msi软件部署工具
  • 2026年湖北缸筒服务商厂家盘点,怎么选择靠谱的 - 工业推荐榜
  • Beyond Compare 5 本地授权解决方案:从问题诊断到高级应用
  • 深度学习入门实践:使用Qwen1.5-1.8B GPTQ理解卷积神经网络(CNN)
  • RVC模型服务器选型与配置建议:平衡成本与性能
  • 3步打通跨平台壁垒:BotW Save Manager让塞尔达存档自由穿梭
  • 题解:P15705 [2018 KAIST RUN Spring] Zigzag
  • DeepSeek-R1-Distill-Qwen-1.5B镜像测评:Ollama集成实现开箱即用体验
  • 第五篇:IIoT 核心设备与万能配方架构设计
  • 4个专业步骤:acbDecrypter游戏音频提取完全指南
  • SD-PPP:突破AI绘画效率瓶颈的无缝协作解决方案
  • 颠覆式EFI生成工具:OpCore Simplify为黑苹果爱好者打造的自动化配置解决方案
  • 3步解锁鸣潮120帧流畅体验:WaveTools配置全指南
  • 打破次元壁的动漫聚合神器:Kazumi让跨平台追番体验焕然一新
  • 3个强力步骤:用OpenCore Legacy Patcher让旧Mac焕发第二春
  • BetterNCM 插件管理器安装实战:解决4类常见问题的高效指南
  • Beyond Compare 5 本地授权激活技术指南
  • 龙虾狂欢背后:生产力重塑与社会心理折射
  • Clawdbot消息推送:WebSocket实时通信实现
  • 探讨天津枳强税务师事务所靠不靠谱,在天津和平区口碑咋样 - 工业设备
  • Stable-Diffusion-V1-5 不同版本模型对比:V1-5、V2-1、XL的性能与风格差异
  • 2026年湖南、上海等地热门的不锈钢全屋定制服务商排名,哪家更靠谱? - 工业品牌热点