网站首页 > 文章精选 正文
汇编语言和CPU息息相关,但是不能把汇编语言完全等同于CPU的机器指令。不同架构的CPU指令并不相同,如x86,powerpc,arm各有各的指令系统;甚至同一种架构的CPU有几套指令集,典型的如arm除了有32位的指令集外,还有一套16位的thumb指令集。但是作为开发语言的汇编,本质上是一套语法规则和助记符的集合,它可以包容不同的指令集。
CPU体系
按CPU体系来划分,常见的汇编有两种:
- IBM PC汇编
- ARM汇编
IBM PC汇编也就是Intel的汇编,因为IBM 最早推出PC机,后来的体系很多都要和它兼容,所以也使用了相同的汇编语言。
ARM没考虑过兼容,它的指令集和x86完全是两个体系,所以汇编语言也独立发展出一套。
汇编语言编译器
CPU只是限定了机器码,作为开发语言的汇编,其实还和编译器息息相关。汇编语言出现的早,没有像C语言一样定义出标准,所以编译器的厂商各搞一套。到现在,最有名的也是两家:
- MASM
- GNU ASM
MASM是微软的,只支持x86,用在DOS/Windows平台中;
GNU ASM是开源产品,主要用在Linux中,基本上支持大部分的CPU架构。这两者的区别在于伪指令的不同,伪指令是用来告诉编译器如何工作的,和编译器相关,和CPU无关。其实汇编的编译相当简单,这两套伪指令只是符号不相同,含义是大同小异,明白了一种,看另一种就很容易了。
汇编格式
从汇编格式
- Intel格式
- AT&T格式
前者是Intel的,windows平台常见,AT&T最早由美国贝尔实验室推出,用于Unix中,GUN汇编器的缺省格式就是AT&T。不过GNU的汇编器和调试器gdb对这两种格式都支持,可以随便切换。MASM只支持Intel格式。Intel格式和AT&T格式的区别只是符号系统的区别,这与x86和arm的区别可不一样,后者是CPU体系的区别。
内嵌汇编
内嵌汇编,是用于C语言和汇编语言混合编程的,所以和编译器也关系紧密,目前也是有两种,GNU的内嵌汇编和MASM的内嵌汇编,它们的语法和普通汇编是有区别的,特别是GNU的内嵌汇编不是很容易看懂,需要专门学习才行。MASM的内嵌汇编和普通汇编的区别则不大。
- 上一篇: 懂汇编的才是好程序员
- 下一篇: 学汇编必须下苦工,汇编必记指令#分享编程技巧# 汇...
猜你喜欢
- 2025-01-02 什么是C语言?
- 2025-01-02 我们一起学RISC-V——10-C和汇编语言混合编程
- 2025-01-02 世界上最著名的操作系统是用什么语言编写的?
- 2025-01-02 支持PLC编程的5大电气语言
- 2025-01-02 支持PLC编程的5大电气语言,全部会用的才是大神!
- 2025-01-02 知识地图—编程语言相互影响的关联图
- 2025-01-02 简单说说什么是MLIR
- 2025-01-02 学指令集(汇编语言)的重点是寻址方式(一)
- 2025-01-02 零基础五步掌握,PLC学习方法
- 2025-01-02 CPU眼里的:汇编语言
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)