go汇编

作者: 呦丶耍脾气 | 来源:发表于2024-05-23 11:47 被阅读0次

运行输出汇编指令

go tool compile -S -N -l main.go

常用指令

指令 解释
MOVQ: 将数据从源操作数移动到目标操作数。
ADDQ、SUBQ、MULQ、DIVQ: 对整数进行加、减、乘、除运算。
ANDQ、ORQ、XORQ: 对整数进行按位与、或、异或运算。
XORPS 对两个浮点寄存器中的值执行异或操作
CMPQ: 比较两个整数。
JMP: 无条件跳转。
Jcc: 根据条件跳转,例如 JZ(等于零时跳转)、JNZ(不等于零时跳转)。
JLS(jump if less than or equal to) 比较两个操作数的大小,并根据比较结果进行跳转
LEAQ: 将有效地址加载到寄存器。
MOVSB、MOVSL、MOVSD: 将字节、字或双字从源操作数移动到目标操作数。
FUNCDATA 将函数数据加载到内存中
TESTB 测试一个字节的值,将一个字节的值与0xFF(255)进行按位与运算,然后将结果存储回原来的寄存器
HALT: 停止程序执行。
NOP: 空操作。
SWI: 软件中断。
TRAP: 陷阱指令。

关键字

关键字 解释
AX 寄存器,用于临时存储数据、计算结果或作为函数调用的返回值
AL 处理器的寄存器,存储操作数的低 8 位
BP 基指针寄存器(Base Pointer Register),BP寄存器被用来保存当前函数的栈帧的起始位置
CX 寄存器,通常用于在循环和分支指令中计数
SP 指栈指针(Stack Pointer)
TEXT: 定义程序入口点(运行时的函数)。
DATA: 定义全局数据。
GLOBL: 使符号在链接程序中全局可见。
SIZE: 为符号或函数指定大小。
LOCAL: 定义函数内部局部变量。
TLS(Thread-Local Storage) 用于存储线程局部变量
PCDATA(Procedure Call Data) 指一个数据类型,指示函数调用中传递的参数数据,通常用于指示这些参数在内存中的位置和大小
ABIInternal 描述Go运行时的内部实现和ABI的接口

寄存器

  • PC 寄存器(程序计数器):
    作用: 用于存储将要执行的下一条指令的地址。
    功能: PC 寄存器的值在程序执行过程中持续增加,指向下一条即将被执行的指令的地址。当发生分支、跳转或函数调用时,PC 寄存器的值会相应地更新。这是控制流程的关键寄存器。
  • SP 寄存器(栈指针寄存器):
    作用: 用于存储栈的顶部地址。
    功能: SP 寄存器的值指示了当前栈帧的顶部,即栈中最新的数据所在的位置。当进行函数调用时,一个新的栈帧被压入栈中,SP 寄存器的值会相应地减小;当函数返回时,栈帧被弹出,SP 寄存器的值会相应地增加。

相关文章

  • go 的汇编代码

    plan9汇编 Go汇编语言实际上来源于plan9汇编语言,而plan9汇编语言最初来源于Go语言作者之一的Ken...

  • 2018-08-08

    go 汇编 编译一个最简单的go执行程序 go build -gcflags "-N -l" test.go 使用...

  • 将Go代码转换成汇编代码

    先编译成可执行文件 go build mutil_assign.go 然后转化为汇编代码 go tool objd...

  • 读懂go汇编

    go的汇编感觉比较抽象,和之前接触的masm或者nasm,亦或是arm下的汇编指令都有一些不同,而且和语言本身的一...

  • PHP、Java、Python、C、C++ 这几种编程语言都各有

    汇编: C: Java: C#: PHP: Python: Go: Haskell: Lisp: C++: Jav...

  • GO语言汇编调试

    阅读 bufio 源码的时候,对内置函数 len 产生了很大兴趣,想知道 len 函数的性能如果。 翻阅了 bui...

  • go plan 9汇编

    本文将简单介绍一下go语言的汇编。主要的内容如下: plan 9 是什么?为什么学习plan9?plan9 的常见...

  • go 看懂汇编代码

    硬核知识点 什么是plan9汇编 我们知道,CPU是只认二进制指令的,也就是一串的0101;人类无法记住这些二进制...

  • 再探 go 汇编

    五一假期在家没事逛论坛的时候,发现了一个宝藏网站,传送门[https://godbolt.org/] 这个网站可...

  • go语言汇编(学习笔记)

    GO语言汇编:plan9(贝尔操作系统) go开发者与plan 9开发者同一人,Rob Pike 寄存器: 数据寄...

网友评论

      本文标题:go汇编

      本文链接:https://www.haomeiwen.com/subject/yxrkbdtx.html