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

 我来答
欲將心事付瑶琴
2011-06-23 · TA获得超过335个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:222万
展开全部
并不统一。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
缘来是客
2011-06-24 · 超过32用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:102万
展开全部
windows 跟linux 都有intel 汇编语法的汇编器,比如nasm 既可用于windows 也可工作在linux下,这种情况下,它们的cpu指令是一样的,但是涉及到系统调用,就不同了。各个系统都有各自的系统调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉能小美
2011-06-23 · TA获得超过2358个赞
知道小有建树答主
回答量:1433
采纳率:0%
帮助的人:273万
展开全部
一、汇编语言属于低级语言,它和计算机的硬件组织有关,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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adgy1
2011-06-27
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
no!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式