基于x86平台的windows和linux是否使用统一汇编语言呀?

如题所述

并不统一。Windows下的汇编语法是Intel汇编格式,Linux下的汇编语法是AT&T汇编格式。

Linux是Unix家族的一员,尽管Linux的历史不长,但与其相关的很多事情都发源于Unix。就Linux所使用的386汇编语言而言,它也是起源于Unix。Unix最初是为PDP-11开发的,曾先后被移植到VAX及68000系列的处理器上,这些处理器上的汇编语言都采用的是AT&T的指令格式。当Unix被移植到i386时,自然也就采用了AT&T的汇编语言格式,而不是Intel的格式。尽管这两种汇编语言在语法上有一定的差异,但所基于的硬件知识是相同的。

在Intel的语法中,寄存器和和立即数都没有前缀。但是在AT&T中,寄存器前冠以“%”,而立即数前冠以“$”。在Intel的语法中,十六进制和二进制立即数后缀分别冠以“h”和“b”,而在AT&T中,十六进制立即数前冠以“0x”。

Intel语法
mov eax,8
mov ebx,0ffffh
movl $8,%eax
movl $0xffff,%ebx

AT&T语法
int 80h
int $0x80

操作数的方向

Intel与AT&T操作数的方向正好相反。在Intel语法中,第一个操作数是目的操作数,第二个操作数源操作数。而在AT&T中,第一个数是源操作数,第二个数是目的操作数。
例如:在Intel中, mov eax,[ecx]
在AT&T中,movl (%ecx),%eax
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-24
windows 跟linux 都有intel 汇编语法的汇编器,比如nasm 既可用于windows 也可工作在linux下,这种情况下,它们的cpu指令是一样的,但是涉及到系统调用,就不同了。各个系统都有各自的系统调用。
第2个回答  2011-06-23
一、汇编语言属于低级语言,它和计算机的硬件组织有关,CUP的型号不同,汇编语言的指令集可能也就不同,向下兼容。
首先,掌握CPU、存储器、外设的工作原理;其次,掌握汇编语言的指令和伪指令的格式、功能、使用方法;最后,掌握程序设计结构、设计方法。
二、汇编工具也有很多
1、MASM(我以前用的,分步的,初学者不易掌握)
2、VISUALASM(我一直在用,感觉比较好,集成环境的,软件下载地址:) (强烈推荐)
3、win32汇编的masm32软件包(Windows环境下的)
4、nasm(linux平台)
5、RadASM下载地址
三、汇编上机过程
1、编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM),如:LX.ASM;
2、汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM LX.ASM;
3、连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK LX.OBJ;
4、执行:如果结果在屏幕在显示,则直接执行可执行文件。
5、调试:用调试程序(DEBUG.EXE)对可执行文件进行调试,格式如下:DEBUG LX.EXE
本回答被网友采纳
第3个回答  2011-06-27
no!
相似回答