汇编语言(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          ; 调用系统调用

 

 

 

 

 

posted @ 2019-05-26 20:54  GJH-  阅读(109)  评论(0)    收藏  举报