基础知识
汇编 关于汇编的知识。 基础知识 汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。 汇编语言是直接在硬件之上工作的编程语言。 机器语言 机器语言是机器指令的集合 机器指令展开来讲就是一台机器可以正确执行的命令 电子计算机的机器指令是一列二进制数字,计算...
汇编 关于汇编的知识。 基础知识 汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。 汇编语言是直接在硬件之上工作的编程语言。 机器语言 机器语言是机器指令的集合 机器指令展开来讲就是一台机器可以正确执行的命令 电子计算机的机器指令是一列二进制数字,计算...
通用寄存器 RAX 是一个 64 位寄存器,可以存储 64 位的数据。 RAX 寄存器在 x86 架构中广泛用于存储操作数、函数返回值以及执行算术和逻辑操作。它是通用寄存器,可以用于多种目的。 调用约定: 在函数调用中,RAX 寄存器通常用于存储函数的返回值。 根据不同的调用约定...
GNU 汇编器语法 示例 定义数据 nasm数据操作 GNU汇编器操作 使用直接操作数,要用$ 获取部分内存时,例如 64 寄存器的第一个字节 不在操作数中定义大小,而是在指令中定义 GNU汇编器操作后缀 b:1个字节操作数 w:2个字节操作数 l:4个字节操作数 q:8个字节操...
汇编 寄存器和内存访问部分。 字的存储 CPU中,用16位的寄存器来存储一个字 寄存器的高8位(高位单元)存放字的高位字节,寄存器的低8位(低位单元)存储字的低位字节 由于内存单元是字节单元(一个单元存放一个字节),则一个字要用两个地址连续的内存单元来存放 字单元,即存放一个字型...
寄存器 问题 寄存器在写汇编的时候是随便用的吗 寄存器的使用有严格的规则和约定,违反这些规则会导致程序崩溃或出现难以调试的 bug 32位-常见调用约定对比 特性 GCC cdecl MSVC __cdecl MSVC __stdcall MSVC/GCC __fastcall ...
窗口 反汇编窗口 显示程序的反汇编代码(机器码 → 汇编指令),直观展示程序执行流程 支持设置断点:点击指令行左侧按 F2 可设置软件断点(显示为红色背景) 高亮关键指令(如跳转、调用),并通过颜色区分代码类型(如系统API调用为绿色) 寄存器窗口 实时显示 CPU 寄存器的当前...
汇编 寄存器部分。 寄存器 一个典型的CPU由运算器、控制器、寄存器等器件组成 这些器件靠内部总线相连,之前所说的地址总线、数据总线、控制总线相对CPU内部而言,是外部总线 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系 CPU内部器件 运算器...
基础 NASM 开源、跨平台汇编器(支持 Windows、Linux、macOS) 特点 语法简洁严格(如内存访问必须用 [ ] 包裹) 无自动类型推断(需显式指定操作数大小,如 mov word [var], 1) 支持直接生成纯二进制文件(如引导扇区程序) 应用 操作系统开发...
关于比较与跳转 cmp eax,ebx会比较两个寄存器,然后根据两个比较结果来来设置处理器标志位(例如“大于”标志) 执行到jg .L2时,这条指令会检查处理器中“大于”的标志位 如果“大于”标志位被设置了,则跳转到标签.L2所在到位置继续执行后续指令 如果“大于”标志位没有被设...
字符串 反转字符串 4个常量 解析 从_start开始 把INPUT地址放入rsi寄存器 通过异或将rcx清零 用cld清除方向标志位,让后续字符串操作从低地址向高地址进行。 保存返回地址,当exitFromRoutine结束后,正确返回 calculateStrLen 先判断r...
搜索当前标签