寄存器

寄存器

汇编 寄存器部分。 寄存器 一个典型的CPU由运算器、控制器、寄存器等器件组成 这些器件靠内部总线相连,之前所说的地址总线、数据总线、控制总线相对CPU内部而言,是外部总线 内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系 CPU内部器件 运算器...

基础知识

基础知识

汇编 关于汇编的知识。 基础知识 汇编语言是人和计算机沟通的最直接的方式,它描述了机器最终所要执行的指令序列。 汇编语言是直接在硬件之上工作的编程语言。 机器语言 机器语言是机器指令的集合 机器指令展开来讲就是一台机器可以正确执行的命令 电子计算机的机器指令是一列二进制数字,计算...

汇编记述一

汇编记述一

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

x86_64汇编学习记述一

x86_64汇编学习记述一

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

汇编记述二

汇编记述二

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

汇编记述三

汇编记述三

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

扫一扫二维码分享