【汇编语言】[BX]和loop指令(四)—— 汇编语言中的段前缀与内存保护:原理与应用解析
元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在cs中。 1.2 总结 这些出现在访问内存单元的指令中,用于显式地指明内存单元的段地址的“ds:”、“cs:”、“ss:”或“es:”,在汇编语言中称为。 2. 一段安全的空间 2.1 存在的问题 在8086式中,随意向一段内存空间写入内容是的,因为这段空间中可能存放着重要的系统数据或代码。比如下面的指令: mov ax,1000hmov d...
【汇编语言】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 分析与解决问题...
【汇编语言】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 理解指令...
【汇编语言】转移指令的原理(三) —— 汇编跳转指南: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,则转移到标号处执行。) ...
【汇编语言】数据处理的两个基本问题(三) —— 汇编语言的艺术:从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 什...
【汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用
1 分析要修改的数据2.3.2 确定修改方法 2.4 程序的实现2.5 用C语言来描述这个程序2.6 根据C语言风格修改汇编程序2.7 总结 结语 前言 1. 指令要处理的数据有多长? 对于这个问题,汇编语言中用以下方法处理。 1.1 通过寄存器指明数据的尺寸 通过使用8位寄存器还是16位寄存器,来进行字操作还是字节操作。 1.1.1 字操作 下面的指令中,寄存器指明了指令进行的是字操作: mov ax,...
【汇编语言】标志寄存器(一) —— 标志寄存器中的标志位: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 借位...
【汇编语言】标志寄存器(二) —— 标志位驱动的计算: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....
【汇编语言】更灵活的定位内存地址的方法(一)—— 字符操作:and与or指令、ASCII码及大小写转换
文章目录 前言1. and和or指令1.1 and指令1.2 or指令 2. 关于ASCII码3. 以字符形式给出的数据3.1 示例代码3.2 分析代码3.2.1 相关代码的含义3.2.2 查看代码段中的内容 4. 大小写转换的问题4.1 问题引入4.2 问题代码4.3 分析与解决问题4.3.1 对比ASCII码值寻找规律4.3.2 探讨程序流程4.3.3 面临的问题4.3.4 重新思考问题,寻找解决方...
【汇编语言】数据处理的两个基本问题 —— 汇编语言中的数据奥秘:数据位置与寻址方式总结
述性符号 2. bx、si、di和bp2.1 通过"[...]"来寻址,只有这四种寄存器2.2 四种寄存器寻址时的组合方式2.3 使用bp时,默认段地址为ss 3.机器指令处理的数据在什么地方?4. 汇编语言中数据位置的表达4.1 立即数(idata)4.2 寄存器4.3 段地址(SA)和偏移地址(EA) 5. 寻址方式结语 前言 1. 引言 1.1 两个基本问题 本章对前面的所有内容是具有总结性的。我们...