汇编语言】int指令(一)—— 中断与栈的联动机制:透视int与iret的核心原理

文章目录 前言1. int 指令1.1 格式以及功能1.2 举例说明1.2.1 源程序1.2.2 分析源程序 1.3 总结 2. 编写供应用程序调用的中断例程2.1 实例一2.1.1 问题2.1.2 分析与解答 2.2 实例二2.2.1 问题2.2.2 分析与解答 3. 对int、iret和栈的深入理解3.1 问题引入3.2 分析3.2.1 中断例程应该具备的功能3.2.2 如何实现目标地址的转移? 3...

汇编语言】内中断(三) —— 中断探险:从do0到特殊响应的奇妙旅程

文章目录 前言1. do01.1 do0程序1.2 存放字符串,得到完整的程序1.3 分析初步完成的程序1.4 正确的完整程序1.5 分析正确的完整程序 2. 设置中断向量3. 单步中断3.1 什么是单步中断?3.2 CPU为什么要提供单步中断3.2.1 思考一下Debug功能3.2.2 Debug是如何利用单步中断的3.2.3 可能的问题以及如何解决的 4. 响应中断的特殊情况4.1 说明情况4.2 ...

汇编语言】内中断(二) —— 安装自己的中断处理程序:你也能控制0号中断

文章目录 前言1. 编程处理0号中断1.1 效果演示1.2 分析所要编写的中断处理程序1.2.1 引发中断1.2.2 中断处理程序1.2.3 中断处理程序do0应该存放的位置1.2.4 中断向量表的修改1.2.5 总结 1.3 程序框架1.4 注意事项1.5 从CPU的角度看中断处理程序1.6 一些问题的思考与解答 2. 安装2.1 使用movsb指令2.2 明确执行rep movsb前所设置的信息2....

汇编语言】call 和 ret 指令(三) —— 深度解析汇编语言中的批量数据传递与寄存器冲突

文章目录 前言1. 批量数据的传递1.1 存在的问题1.2 如何解决这个问题1.3 示例演示1.3.1 问题说明1.3.2 程序实现 2. 寄存器冲突问题的引入2.1 问题引入2.2 分析与解决问题2.2.1 字符串定义方式2.2.2 分析子程序功能2.2.3 得到子程序代码 2.3 子程序的应用2.3.1 示例12.3.2 示例2 3. 寄存器冲突问题的发现与解决3.1 重看代码3.2 分析与解决问题...

汇编语言】标志寄存器(一) —— 标志寄存器中的标志位:ZF、PF、SF、CF、OF 一网打尽

前言 文章目录 前言1. 标志寄存器1.1 功能概述1.2 8086CPU中的标志寄存器 2. ZF 标志2.1 功能介绍2.2 举例说明2.3 注意事项 3. PF 标志3.1 功能介绍3.2 举例说明 4. SF 标志4.1 功能介绍4.2 举例说明4.3 有/无符号数和补码4.4 补充说明 5. CF 标志5.1 功能介绍5.2 什么是更高位?5.3 举例说明5.3.1 进位的情况5.3.2 借位...

汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用

1 分析要修改的数据2.3.2 确定修改方法 2.4 程序的实现2.5 用C语言来描述这个程序2.6 根据C语言风格修改汇编程序2.7 总结 结语 前言 1. 指令要处理的数据有多长? 对于这个问题,汇编语言中用以下方法处理。 1.1 通过寄存器指明数据的尺寸 通过使用8位寄存器还是16位寄存器,来进行字操作还是字节操作。 1.1.1 字操作 下面的指令中,寄存器指明了指令进行的是字操作: mov ax,...

汇编语言】数据处理的两个基本问题(三) —— 汇编语言的艺术:从div,dd,dup到结构化数据的访问

文章目录 前言1. div指令1.1 使用div时的注意事项1.2 使用格式1.3 多种内存单元表示方法进行举例1.4 问题一1.5 问题一的分析与求解1.5.1 分析1.5.2 程序实现 1.6 问题二1.7 问题二的分析与求解1.7.1 分析1.7.2 程序实现 2. 伪指令 dd2.1 什么是dd?2.2 问题三2.3 问题三的分析与求解2.3.1 分析2.3.2 程序实现 3. dup3.1 什...

汇编语言】转移指令的原理(三) —— 汇编跳转指南:jcxz、loop与位移的深度解读

文章目录 前言1. jcxz 指令1.1 什么是jcxz指令1.2 如何操作 2. loop 指令2.1 什么是loop指令2.2 如何操作 3. 根据位移进行转移的意义3.1 为什么?3.2 举例说明 4. 编译器对转移位移超界的检测结语 前言 1. jcxz 指令 1.1 什么是jcxz指令 对IP的修改范围都为-128~127。 指令格式:jcxz 标号(如果(cx)=0,则转移到标号处执行。) ...

汇编语言】call 和 ret 指令(一) —— 探讨汇编中的ret和retf指令以及call指令及其多种转移方式

文章目录 前言1. ret 和 retf1.1 ret 指令1.1.1 功能与理解1.1.2 程序演示 1.2 retf 指令1.2.1 功能与理解1.2.2 程序演示 2. call 指令3. 依据位移进行转移的call指令3.1 格式与功能3.1.1 格式3.1.2 功能 3.2 理解指令 4. 转移的目的地址在指令中的call指令4.1 格式与功能4.1.1 格式4.1.2 功能 4.2 理解指令...

汇编语言】包含多个段的程序(一)—— 在代码段中使用数据和栈

文章目录 前言1. 引言2. 在代码段中使用数据2.1 问题引入2.2 代码实现2.3 代码分析2.3.1 提出问题2.3.2 编译、链接、加载、查看程序2.3.3 查看内存内容2.3.4 正确的执行程序 2.4 面临的问题2.5 改进代码2.5.1 程序的执行过程2.5.2 CPU如何知道第一条执行什么指令? 2.6 程序的框架 3. 在代码段中使用栈3.1 问题引入3.2 代码实现3.3 重要说明 ...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.005325(s)
2024-12-25 13:10:17 1735103417