汇编记述三

汇编记述三

bingliaolong 2年前 15 0

关于栈空间大小 反汇编代码中的栈大小 栈帧的大小通常是由编译器在编译阶段计算出来的。 编译器在编译源代码时会分析函数的局部变量、函数参数、寄存器的使用情况等信息,然后根据这些信息计算出每个函数所需的栈帧大小。 自己写汇编 需要自己计算栈帧的大小,并为局部变量、参数、寄存器保存等分...

汇编记述二

汇编记述二

bingliaolong 2年前 11 0

关于比较与跳转 cmp eax,ebx会比较两个寄存器,然后根据两个比较结果来来设置处理器标志位(例如“大于”标志) 执行到jg .L2时,这条指令会检查处理器中“大于”的标志位 如果“大于”标志位被设置了,则跳转到标签.L2所在到位置继续执行后续指令 如果“大于”标志位没有被设...

x86_64汇编学习记述一

x86_64汇编学习记述一

bingliaolong 2年前 7 0

数据部分 数据部分用于声明常量。 该数据在运行时不会改变。 代码部分 文本部分用于代码。 该部分必须以声明 global _start 开始,它告诉内核程序执行的开始位置。 注释 hello,world 前面两行定义了数据,并在其中放置了具有hello, world值的msg常量...

汇编记述一

汇编记述一

bingliaolong 2年前 12 0

通用寄存器 RAX 是一个 64 位寄存器,可以存储 64 位的数据。 RAX 寄存器在 x86 架构中广泛用于存储操作数、函数返回值以及执行算术和逻辑操作。它是通用寄存器,可以用于多种目的。 调用约定: 在函数调用中,RAX 寄存器通常用于存储函数的返回值。 根据不同的调用约定...

Spdlog记述:三

Spdlog记述:三

bingliaolong 2年前 19 0

类图 对象的引用 获取静态对象的引用 构造目标对象 formatter 基类 default_formatter 派生类:消息构造 pattern_formatter 派生类 wincolor_sink GetConsoleMode可以帮助获取控制台的输入模式和输出模式的信息 G...

预处理指令记录:一

预处理指令记录:一

bingliaolong 2年前 2 0

Windows 检查编译器 _MSC_VER 预处理指令 用于检查是否正在使用 Microsoft Visual C++ 编译器,并根据编译器的类型或版本执行相应的代码 __cplusplus_winrt 预处理指令 用于根据正在编译的代码是否为 Windows 运行时组件执行不...

Spdlog记述:二

Spdlog记述:二

bingliaolong 2年前 38 0

接收器 接收器是实际将日志写入其目标的对象 每个接收器应该只负责单个目标(例如文件、控制台、数据库) 并且每个接收器都有自己的格式化程序对象的私有实例 spdlog的接收器有_mt(多线程)或_st(单线程)后缀来指示线程安全 旋转接收器 当达到最大文件大小时,关闭文件,重命名它...

Spdlog记述:一

Spdlog记述:一

bingliaolong 2年前 11 0

使用介绍 默认的 创建一个多线程日志记录器 创建的日志记录器是多线程的,这意味着它可以被多个线程同时使用,而不会发生竞争条件或数据损坏 用于创建多线程的循环日志记录器 循环日志记录器是指在达到指定大小后,会自动循环覆盖旧的日志文件并创建新的日志文件来存储日志消息 循环日志记录器还...

编译器扩展语法:一

编译器扩展语法:一

bingliaolong 2年前 8 0

Gcc 和 Clang __attribute__ ((__visibility__("hidden"))) 用于设置符号的可见性(visibility)属性 __visibility__("default") 默认可见性,符号在链接过程中...

关于创建文件以及umask的问题

关于创建文件以及umask的问题

bingliaolong 2年前 12 0

权限 r 可读权限 4(8进制) w 可写权限 2(8进制) x 可执行权限 1(8进制) 创建文件夹 这里以777权限创建了一个文件夹 就是上面的读写可执行权限都有 文件相关 函数 mode “r” :以只读方式打开文件,该文件必须存在。 “w” :打开只写文件,若文件存在则文...

扫一扫二维码分享