汇编语言(Assembly)
机器语言
机器语言是机器指令的集合,机器指令是一列二进制数字,计算机把机器指令转换成高低电平来驱动硬件进行计算运行。
每一种CPU的硬件设计、内部结构不同,需要不同的高低电平来控制,所以每种CPU都有自己的机器指令集,也就是机器语言。
汇编语言
汇编语言是一种底层编程语言,它基于CPU指令集,使用助记符号和符号标签来表示机器语言的指令操作。相对于高级语言,汇编语言更加贴近计算机底层的操作,能够直接操控CPU、内存、IO等硬件资源,具有高性能和灵活性的特点。
在汇编语言中,每条指令都对应着一条机器指令,这些指令可以直接操作CPU寄存器和内存单元,实现数据的计算、移动、比较、跳转等操作。同时,汇编语言还提供了宏指令和过程调用等高级特性,使得代码的可读性和可维护性得到一定程度的提高。
机器语言缺点:不方便记忆、辨别、生产效率低,于是有了汇编语言
汇编语言的主体是汇编指令,只是和机器语言的表示方式不一样,更方便记忆、编程。
汇编指令就是机器码的助记符,每个助记符都有对应的机器码,汇编代码通过编译器编译成二进制可执行文件运行。
Hello World
Go
package main import "fmt" func main() { fmt.Println("Hello, World!") }
汇编
用x86汇编语言(Intel语法)编写的一个简单的Hello World程序:
section .data hello db 'Hello, World!', 0 section .text global _start _start: ; 将字符串地址存储到寄存器 ebx 中 mov ebx, hello ; 调用系统调用,输出字符串 mov eax, 4 ; 系统调用号 4 表示 write mov ecx, ebx ; 字符串地址 mov edx, 13 ; 字符串长度 int 0x80 ; 调用系统调用 ; 退出程序 mov eax, 1 ; 系统调用号 1 表示 exit xor ebx, ebx ; 返回值 0 int 0x80 ; 调用系统调用