【汇编语言】标志寄存器(二) —— 标志位驱动的计算:ADC、SBB 和 CMP 的巧妙应用
前言 文章目录 前言1. abc 指令1.1 功能介绍1.2 举例说明1.3 为什么要提供这样的指令?1.3.1 CF值的含义1.3.2 示例演示1.3.3 得出结论 1.4 例1——对大的数据进行相加1.4.1 问题描述1.4.2 问题的分析与解答 1.5 例2——对更大的数据进行相加1.5.1 问题描述1.5.2 问题的分析与解答 1.6 例3——对更大更大的数据进行相加1.6.1 题目描述1.6....
【汇编语言】标志寄存器(一) —— 标志寄存器中的标志位: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 借位...
【汇编语言】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 分析与解决问题...
【汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用
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,则转移到标号处执行。) ...
【汇编语言】内中断(二) —— 安装自己的中断处理程序:你也能控制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....
【汇编语言】内中断(三) —— 中断探险:从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 ...
【汇编语言】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...
【汇编语言】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 理解指令...