
X86_64汇编学习记述四
GNU 汇编器语法 示例 #include <unistd.h> int main(void) { write(1, "Hello World\n", 15); return 0; }...
GNU 汇编器语法 示例 #include <unistd.h> int main(void) { write(1, "Hello World\n", 15); return 0; }...
字符串 反转字符串 4个常量 section .data SYS_WRITE equ 1 STD_OUT equ 1 SYS_EXIT equ 60 EXIT_CODE equ 0 NEW_LINE db 0xa I...
实体机 虚拟机 环境 kylin虚拟机 kylin基于ubuntu 所以ubuntu和debian可能都可以使用这个方法 忘记密码 root用户的密码忘记了是找不回的,只能想办法重置 后续文档记录了成功重置了root...
大小端 可以将内存想象为一个大数组。它包含字节。 每个地址存储内存“数组”的一个元素。每个元素都是一个字节。 例如我们有 4 个字节:AA 56 AB FF 小端字节序 低地址存低位字节 0 FF 1 AB 2 56...
关于栈空间大小 反汇编代码中的栈大小 栈帧的大小通常是由编译器在编译阶段计算出来的。 编译器在编译源代码时会分析函数的局部变量、函数参数、寄存器的使用情况等信息,然后根据这些信息计算出每个函数所需的栈帧大小。 自己写...
关于比较与跳转 cmp eax,ebx会比较两个寄存器,然后根据两个比较结果来来设置处理器标志位(例如“大于”标志) 执行到jg .L2时,这条指令会检查处理器中“大于”的标志位 如果“大于”标志位被设置了,则跳转到...
数据部分 数据部分用于声明常量。 该数据在运行时不会改变。 section .data 代码部分 文本部分用于代码。 该部分必须以声明 global _start 开始,它告诉内核程序执行的开始位置。 section...
环境 当前linux环境是debian,安装软件如下: gcc make nasm sudo apt install gcc make nasm IDE clion CLion插件 NASM Assembly Lan...
开发工具 CLion gcc g++ lua golang 开发辅助 git make 调试工具 gdb 调试 lldb 调试 汇编相关 nasm 终端相关 ohmyzsh Powerlevel10k主题 jonat...
通用寄存器 RAX 是一个 64 位寄存器,可以存储 64 位的数据。 RAX 寄存器在 x86 架构中广泛用于存储操作数、函数返回值以及执行算术和逻辑操作。它是通用寄存器,可以用于多种目的。 调用约定: 在函数调用...