04 2024 档案
摘要:汇编语言简易教程(15):End 写到这里, 就告一段落了. 前面的内容写起来还是比较认真的, 到后面的系统调用, 栈缓存, 中断 这些内容已经快要昏迷过去了 但是我认为这篇教程能够达到预期的目标: 对于汇编代码的基本阅读 了解汇编的基本机制 我强烈建议各位有时间能够去阅读原书, 难易适中, 非常适
阅读全文
摘要:本文介绍了计算机中断的概念及处理过程,包括异步和同步中断、硬件和软件中断等内容。讨论了中断类型和权限等级,以及中断处理的一般步骤,包括暂停当前进程、获取ISR地址等。重点强调了中断服务例程(ISR)的重要性和处理中断时需注意的事项。
阅读全文
摘要:栈缓存溢出是指当程序使用基于堆栈的本地数组时,如果数组元素超出分配大小,可能导致堆栈溢出。溢出会破坏重要数据,可能使程序崩溃,调试困难。示例中的函数读取用户输入到数组,若未检查字符计数,覆写缓冲区将损害栈内容,导致返回错误。测试漏洞方法是输入超出预期字符,如输入200个字符后程序崩溃。
阅读全文
摘要:汇编语言简易教程(12):系统服务 应用程序必须使用操作系统执行许多操作。 此类操作包括控制台输出、键盘输入、文件服务(打开、读取、写入、关闭等)、获取时间或日期、请求内存分配等 访问系统服务是应用程序请求操作系统执行某些特定操作(代表进程)的方式。 更具体地说,系统调用是执行进程和操作系统之间的接
阅读全文
摘要:MySQL事务状态判断 前置 MySQL的默认隔离级别是: 可重复读(REPEATABLE READ) 可重复读隔离级别下,事务中的SELECT操作会看到快照数据,也就是事务开始时刻的数据状态。此隔离级别可以防止脏读和不可重复读,但可能会有幻读的问题出现。 问题描述 表结构 create table
阅读全文
摘要:汇编语言中的函数和栈帧技术,通过设置栈帧基址便于访问局部变量和参数。函数定义、标准调用约定(如cdecl和stdcall)是实现函数间参数传递和返回值处理的关键。
阅读全文
摘要:介绍了汇编语言中的宏,包括单行宏和多行宏的定义和使用方式。单行宏可简化代码,例如将寄存器内容乘以4;多行宏可以包含不同数量的行,通过%
阅读全文
摘要:本文介绍了程序栈的基本概念和操作,包括入栈(push)和出栈(pop)操作。讨论了栈在计算机内存中的实现、rsp寄存器指向堆栈顶部、堆与栈的布局关系等原理,并提供了一个简单的反转数组的示例程序。
阅读全文
摘要:汇编语言简易教程(8):寻址模式 寻址模式是使用正在访问(读取或写入)的数据项的地址来访问内存中的值的受支持方法。这可能包括变量的名称或数组中的位置。 基本的寻址模式包含: 寄存器 立即数 内存 寻址注意事项 使用[] 需要注意: 访问内存的唯一方法是使用方括号([]'s)。省略括号将不会访问内存,
阅读全文
摘要:本文介绍了汇编语言中的移动指令和转换操作。通过mov指令可以在寄存器和内存之间传递数据,同时讨论了缩小和扩大转换的过程,包括有符号和无符号转换。程序员需要谨慎处理数据大小和类型,以确保正确执行。
阅读全文
摘要:汇编语言简易教程(6):工具链以及调试器 通常,用于创建程序的编程工具集称为工具链。 就本文而言,工具链包括以下内容 汇编器 Assembler 连接器 Linker 加载器 Loader 调试器 Debugger 虽然工具链有很多选项,但本文使用了一组相当标准的开源工具,这些工具可以很好地协
阅读全文
摘要:汇编语言简易教程(5):环境构建 最近在学习assembly64 时, 需要对程序进行编写 -> 生成汇编代码 -> 调试 -> 执行. 本文聚焦于如果在Windows环境下, 尽可能精简并且完整的构建一个汇编环境. 基于 Windows11, WSL Ubuntu22.04, vscode, 其他
阅读全文
摘要:汇编语言简易教程(4):基本语法 以yasm语法为主 注释 ; 分号之后的所有内容全都是注释, 没有实际作用. 数值 数值必须是 10进制 / 16进制 / 八进制 最终都会被转为16进制的数字, 以0x开头, 例如 127 ->0x7f 当使用8进制的时候: 511 -> 777q
阅读全文
摘要:汇编语言简易教程(3):编码表示 '表示'指的是计算机如何在内存中表示/存储. 计算机使用二进制 ( 1/0 )进行存储, 但是由于空间的限制, 任何表示方式只能表达一定范围, 一定精度的数据. 本章简要总结了整数、浮点和 ASCII 表示方案。 假设读者已经普遍熟悉二进制、十进制和十六进制编号系统
阅读全文
摘要:汇编语言简易教程(2): 计算机体系概览 架构 CPU RAM BUS DEVICE Secondary Storage (SSD / Disk Drive) 通常来说程序被存储在硬盘中, 在实际需要运行时从硬盘加载到内存. 主存通常来说是易失性存储, 所以在断电时, 存储内容会丢失. 二级内
阅读全文
摘要:本文介绍了汇编语言的定义、学习目的和使用场景,包括理解计算机底层运行逻辑、使用汇编工具链、提高算法开发能力、函数栈帧调用等。
阅读全文
摘要:Windows系统下汇编环境的搭建 最近在学习assembly64 时, 需要对程序进行编写 -> 生成汇编代码 -> 调试 -> 执行. 本文聚焦于如果在Windows环境下, 尽可能精简并且完整的构建一个汇编环境. 基于 Windows11, WSL Ubuntu22.04, vscode, 其
阅读全文
摘要:介绍了在Windows 11下更好用的截图工具PixPin和FlameShot,以及禁用Snipping Tool的方法。通过安装PixPin或FlameShot替代原生截图工具,同时关闭PrtScr映射、修改注册表和策略组来禁用Snipping Tool。提供了详细步骤和验证方法。
阅读全文
摘要:常见的Hash函数包括crc、md5、sha等,在字符串长度较小时性能相近,推荐使用内置的crc。对于文件摘要需求,建议选择非可逆Hash函数以确保安全性。
阅读全文
摘要:Sync.Pool提供了对象池的功能,通过复用对象减少内存分配和垃圾回收压力。
Pool结构包含local数组存储P对应的本地对象池,New函数生成对象。
poolLocal与每个P绑定,private用于快速处理,shared作为大容量存储和窃取。Put方法将对象放回池中。
阅读全文