摘要1、课程目标 1. 掌握汇编中数组的定义和访问方式 2. 理解串指令的工作原理 3. 学会REP前缀的使用 4. 掌握内存块操作技术 2、名词解释 3、使用工具 4、技术原理 4.1、串指令概览 4.2、REP前缀变体 5、代码实现 5.1、示例1:数组定义与访问 5.2、示例2:MOVS内存复制 5.3、示例3:STOS内存填充 5.4、示例4:SCAS字符串查找 5.5、示例5:CMPS字符串比较 6、课后作业 1. 基础练习:用汇编实现memcpy函数,尽可能优化性能 2. 字符串操作:实现strcmp和strncpy函数 3. 数组操作:实现数组求最大值、最小值、平均值 4. 逆向操作:编写字符串反转函数,理解方向标志的作用
摘要1、课程目标 1. 掌握函数调用的汇编实现机制 2. 理解堆栈帧的结构和管理 3. 学会参数传递和返回值处理 4. 掌握调用约定(Calling Convention) 5. 理解局部变量的栈分配 2、名词解释 3、使用工具 4、技术原理 4.1、堆栈基础 栈是向低地址增长的内存区域: - PUSH操作:ESP/RSP减少,数据写入 - POP操作:数据读出,ESP/RSP增加 4.2、函数调用流程 1. 调用者压入参数(cdecl从右到左) 2. CALL指令压入返回地址 3. 被调用者建立栈帧(序言) 4. 执行函数体 5. 清理栈帧(尾声) 6. RET返回,调用者清理参数 5、代码实现 5.1、示例1:基本函数调用(MASM) 5.2、示例2:栈帧结构详解 5.3、示例3:不同调用约定…
摘要1、课程目标 - 理解继承的概念和作用 - 掌握访问控制在继承中的作用 - 理解构造和析构的调用顺序 - 了解多重继承 2、名词解释 3、代码实现 1. 基础继承 2. 访问控制 3. 多重继承 4、课后作业 4.1、作业1:实现图形类层次 实现Shape基类和Circle、Rectangle子类。 4.2、作业2:模拟插件系统 使用继承实现可扩展的插件系统。
摘要1、课程目标 - 掌握无条件跳转指令 - 掌握条件跳转指令 - 理解CMP指令与跳转的关系 - 能够实现if/else和循环逻辑 2、名词解释 3、代码实现 1. if-else实现 2. 循环实现 3. C语言示例 4、课后作业 4.1、作业1:实现查找 用汇编实现数组中查找指定元素。 4.2、作业2:实现排序 用汇编实现冒泡排序。
摘要1、课程目标 - 理解EFLAGS寄存器的结构 - 掌握常用标志位的含义 - 理解标志位如何影响条件跳转 - 掌握标志位操作指令 2、名词解释 3、代码实现 1. 标志位查看 2. 标志位操作 3、课后作业 3.1、作业1:检测溢出 实现加法并通过OF检测有符号溢出。 3.2、作业2:结果分类 根据运算结果的标志位判断正数/负数/零。
摘要1、课程目标 - 理解实模式与保护模式的区别 - 掌握各种内存寻址方式 - 理解段寄存器的作用 - 掌握有效地址计算 2、名词解释 3、代码实现 1. 寻址方式 2. 有效地址计算 3. 结构体访问 4、课后作业 4.1、作业1:数组遍历 用汇编实现数组求和。 4.2、作业2:结构体操作 定义一个结构体并用汇编访问其成员。
摘要1、课程目标 - 掌握汇编中的位运算指令 - 理解移位指令和循环移位 - 掌握TEST和BT系列指令 - 了解位操作在安全编程中的应用 2、名词解释 3、代码实现 1. 基本位运算 2. 移位指令 3. 位测试指令 4. C语言示例 5、课后作业 5.1、作业1:实现位操作宏 用汇编实现SETBIT/CLEARBIT/TOGGLE_BIT。 5.2、作业2:XOR加密 实现一个完整的XOR字符串加密解密函数。
摘要1、课程目标 - 掌握汇编中的数据类型 - 理解有符号和无符号整数 - 掌握加减乘除指令 - 了解溢出和进位 2、名词解释 3、代码实现 1. 数据定义 2. 加法和减法 3. 乘法和除法 4. C语言验证 5、课后作业 5.1、作业1:计算平均值 用汇编实现数组平均值计算。 5.2、作业2:检测溢出 实现加法并检测溢出(检查CF/OF标志)。
摘要1、课程目标 - 掌握x86汇编程序的基本结构 - 理解数据段和代码段 - 掌握基础汇编指令 - 能够编写简单的汇编程序 2、名词解释 3、代码实现 1. MASM基础框架 2. 基础数据移动指令 3. 完整示例:简单加法 4. 内联汇编在C中使用 5、课后作业 5.1、作业1:编写Hello World 编写一个纯汇编的Hello World程序。 5.2、作业2:实现乘法 用汇编实现两个整数相乘并打印结果。
摘要1、课程目标 - 理解汇编语言的基本概念 - 掌握x86/x64架构的寄存器体系 - 理解通用寄存器的用途 - 了解特殊寄存器的功能 2、名词解释 3、使用工具 4、技术原理 4.1、x86通用寄存器 (32位) 4.2、x64寄存器扩展 (64位) 5、代码实现 1. 查看寄存器(内联汇编) 2. 寄存器的子寄存器访问 3、课后作业 3.1、作业1:寄存器记忆 背诵所有通用寄存器的名称和传统用途。 3.2、作业2:调试器观察 使用x64dbg观察计算器程序的寄存器变化。 3.3、作业3:调用约定 编写一个程序,在函数调用前后打印寄存器变化。