Plan 9汇编寄存器:数据寄存器:R0-R7,地址寄存器:A0-A7,浮点寄存器:F0-F7。伪栈寄存器:FP, SP, TOS。FP是frame pointer,0(FP)是第一个参数,4(FP)是第二个。SP是local stack pointer,保存自动变量。0(SP)是第一个。TOS是top of stack寄存器,用来保存过程的参数,保存局部变量。汇编器可以有一个变量名,比如p+0(
转载 2023-10-16 12:06:08
149阅读
Go语言中的GC1. GC的简介2. 标记的开始:GC的root set (根集合)3 串行GC(STW)4.并发GC4.1 三色标记法4.2 插入屏障4.3 删除屏障4.4 混合屏障5. GC的触发时机6. GC的优化原则7. GC的分析工具8. 总结 1. GC的简介GC(Garbage Collection),垃圾回收,分配在堆上的内存不会再使用时,Go语言将会自动回收分配在堆上的内存,从
转载 2023-06-07 12:39:22
121阅读
常见占位符含义%b 一个二进制整数,将一个整数格式转化为二进制的表达方式%c 一个Unicode的字符%d 十进制整数%o 八进制整数%x 小写的十六进制数值%X 大写的十六进制数值%U 一个Unicode表示法表示的整型码值%s 输出以原生的UTF8字节表示的字符,如果console不支持utf8编码,则会乱码%t 以true或者false的方式输出布尔值%v 使用默认格式输出值,或者如果方法存
转载 2023-06-07 17:19:26
160阅读
https://mp.weixin.qq.com/s/B577CdUkWCp_XgUc1VVvSQ asmshare/layout.md at master · cch123/asmshare https://github.com/cch123/asmshare/blob/master/layout
转载 2020-10-27 16:36:00
134阅读
2评论
Go汇编器继承自Plan9的汇编器,但与Plan9汇编器仍有很多不同之处。 Plan9并不是Go语言中特有的东西,而是指贝尔实验室中开发的一个操作系统。 贝尔实验室九号项目(英语:Plan 9 from Bell Labs,常简称为Plan 9)是一个分布式操作系统,由贝尔实验室的计算科学研究中心 ...
转载 2021-07-03 01:05:00
797阅读
2评论
       将可执行程序用gdb program_name调用到内存中后,就可以利用gdb的反汇编命令调试程序了。常用命令如下:       (1)设置反汇编的代码为intel格式       gdb默认反汇编为att格式的指令。可以通过show disassembly-fla
汇编,也有人称为“逆向工程”,就是把 DLL 或者 EXE 程序逆向为程序员可读的汇编代码,方便我们理解程序。有时候我们需要分析别人的DLL或者程序,想看看它做了什么或者实现方案(请不要干坏事!),可能需要反汇编知识。我们首先需要借助一些反汇编利器。我强烈推荐的是IDA Pro,它的功能异常强大,对某些程序的反汇编,可以达到伪代码级别的反汇编——当然,这需要你具有扎实的汇编功底。IDA Pro
转载 2024-08-09 12:17:32
127阅读
简介Go语言(Golang)是由Google公司的Robert Griesemer、Rob Pike、Ken Thompson三位工程师开发的一种静态强类型、编译型、并发型、快速运行的编程语言。Go语言诞生于2007年,旨在创造一种具有现代特性的编程语言,可以替代C++和Java等语言,解决其中的一些问题。Go语言于2009年发布,并且一直在快速发展。Go语言以其简单易学、快速运行和高效编译等优点
转载 2023-07-11 23:37:01
88阅读
Go 语言的工具链非常丰富,从获取源码、编译、文档、测试、性能分析,到源码格式化、源码提示、重构工具等应有尽有。在 Go 语言中可以使用测试框架编写单元测试,使用统一的命令行即可测试及输出测试的。基准测试提供可自定义的计时器和一套基准测试算法,能方便快速地分析一段代码可能存在的 CPU 耗用和内存分配问题。性能分析工具可以将程序的 CPU 耗用、内存分配、竞态问题以图形化方式展现出来。go
转载 2023-09-05 09:43:02
69阅读
Golang 的编译器是用什么语言写的?看起来像是个“鸡生蛋,蛋生鸡”的问题,实际上不是的。 (推荐学习:go)这个问题的关键在于理解,编译器本身就是一个程序,它的功能就是把源代码翻译为计算机可执行的程序。对于 C/C++、Go、Rust 这样的本地语言,它们编译生成后的目标程序就是目标平台的本地可执行程序。比如你用这三种语言写个 Hello World,在 Windows 平台下用编译的结果一定
Go中runtime(包括调度器)源码有部分代码使用的是汇编语言,而这些汇编代码并非针对特殊体系结构的汇编语言,它是Go引入的一种伪汇编,其同样需要经过汇编器转换为机器指令才能被CPU执行。需要关注的是,Go中伪汇编汇编代码一旦经过汇编器的转换,之后再调用调试工具反汇编出来的代码,就再也不是Go中伪汇编代码了,而是跟平台相关的汇编代码。Go汇编格式跟AT&T汇编大体相似,本文就具有部分
转载 2024-01-26 07:36:55
56阅读
 在深入阅读runtime和标准库的源码时候,发现底层有大片代码都会与汇编打交道,所以这篇文章主要是介绍golang使用到的汇编go汇编语言是一个不可忽视的技术。因为哪怕只懂一点点汇编,也便于更好地理解计算机原理,也更容易理解Go语言中动态栈/接口等高级特性的实现原理。本文涉及到计算机架构体系相关的情况时,请假设我们是运行在 linux/amd64 平台上。伪汇编Go 编译器会输出一种
转载 2024-06-21 20:44:03
333阅读
MSP430汇编: 1、MOV,MOVX,MOVC区别和用法 MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM ...
转载 2013-01-11 15:09:00
120阅读
2评论
MSP430汇编:1、MOV,MOVX,MOVC区别和用法MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM  MOV: 单片机内部的寄存器或者存储器之间相互传递数据(内部RAM);    MOVX: 单片机内部的A累加器与片外的数据存储器...
原创 2021-09-29 11:41:21
481阅读
一、and和or指令and指令:逻辑与指令,按位进行与运算。通过该指令可以将操作对象的相应位设为0,其他位不变。or指令:逻辑或指令,按位进行或运算。通过该指令可以将操作对象的相应位设为1,其他位不变。二、关于ASCII码三、以字符形式给出的数据 在汇编程序中,用'......'的形式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。四、大小写和数字字符与数字间的转
转载 2023-06-07 17:25:47
163阅读
汇编In,Out IN AL,21H  从21H端口读取一字节数据到ALIN AX,21H  从端口地址21H读取1字节数据到AL,从端口地址22H读取1字节到AHMOV DX,379HIN AL,DX   从端口379H读取1字节到ALOUT 21H,AL  将AL的值写入21H端口OUT 21H,AX  将AX的值写入端口地址21H开始的连续两个字节
转载 2023-06-06 16:59:50
93阅读
6月3日Apple发布了swift发现里面竟然也有许多Go语言的影子,截至现在每天都在感觉到Go语言的强大。确实值得一学,今天在这里给园友们推荐一些Go语言的学习资料
原创 2014-06-17 09:50:19
1318阅读
1. bic BIC指令的格式为: BIC{条件}{S}  目的寄存器,操作数1,操作数2BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。操作数1应是一个寄存器, 操作数2可以是一个寄存器、被移位的寄存器、或一个立即数。操作数2为32位的掩码,如果在 掩码中置了某一位1,则清除这一位。未设置的掩码位保持不变。bic r0,r0,#0x1f0x1f=11111b其含义:清除
转载 2023-06-08 11:00:28
394阅读
宏意思是源程序中的一段有独立功能的程序代码 宏指令,用户自定义的指令。编程序时候,将多次使用的功能用一条宏指令来代替。 汇编包括指令 ,伪指令,宏指令。前两个都是规定的,最后一个是你自己设计的。 好处是用起来方便,::))定义就是为了使用,但是要先定义,后调用。 (这一点和子程序可是不一样啊) 例如,宏定义,两个字相乘 multiply MACRO opr1, opr2,
转载 精选 2011-12-03 16:39:00
497阅读
操作系统的内核是一个elf文件。加载内核,需要从存在于内存中的内核文件数据中读取所有的程序段,并把这些程序段复制到规划好的内存位置(内核指令应该占据的内存位置),然后将CPU的控制权移交给这些内核指令。操作系统就正式运行起来了。 把内核放入内存,究竟需做什么写满实现内核功能的代码的文件会被编译成一个ELF文件。这个ELF文件不同于LOADER BIN文件
转载 2024-05-06 17:13:03
302阅读
  • 1
  • 2
  • 3
  • 4
  • 5