当前位置: 代码迷 >> 汇编语言 >> linux_windows的汇编差别大么解决方案
  详细解决方案

linux_windows的汇编差别大么解决方案

热度:1373   发布时间:2013-02-26 00:00:00.0
linux_windows的汇编差别大么
我书菜鸟,我最近想学习汇编,买了一本王爽的《汇编语言》但是此书是dos环境下的,我想在linux环境下编写汇编,不知道这本书可不可用,如果不可以,能给本linux下的关于intel的汇编书么,请各位大侠给我点宝贵提示吧!!!!

------解决方案--------------------------------------------------------
说大可大,说小可小.在windows下使用的是intel的汇编格式,而在linux下用的是AT&T格式,不过也可以用nasm,它的语法是intel格式的(nasm也可以在windows下使用).用mov来举例:
intel下为:
mov ax,bx
作用是将bx的数据放入ax中.
linux下:
mov %ax,%bx
作用是将ax的数据放入bx中.
也就是说,他们的方向是相反的.
------解决方案--------------------------------------------------------
那你用nasm好了,windows跟Linux都一样的(我说的是PC机)。至于他们说的windows的mov eax,ebx linux的 mov %eax,%ebx 正确也不正确,他们只是两者格式而已,一种是Intel格式,一种是AT&T格式,在windows下我见到的都是Intel格式的,但在Linux下有Intel格式也有AT&T格式的,这个随你喜欢了,不过gcc好像只支持AT&T的,你想要编译Intel的就用nasm好了。

你说你学习的是DOS汇编,那个没关系的拉,反正在nasm中语法是差不多的,学完后看下nasm文档就好了,很快就能写出来,不过win用的是中断int 21H 、API,而linux用的就是中断,在哪个文件里面有定义(太久没用linux了,忘记在哪个文件了,你百度下应该有的)。
------解决方案--------------------------------------------------------
刚学应该站在最基础的,最容易感受汇编语言的环境下。

------解决方案--------------------------------------------------------
最大的差别是系统调用不一样,语法不是问题,gnu as也可以用masm语法
有一个书叫professional assembly language是linux+x86环境下的汇编基础
------解决方案--------------------------------------------------------
刚刚学的时候学8086的,也就是纯实模式下的!
然后熟悉了再进阶学习保护模式的!!!

刚刚入门最好选一个《汇编语言》这类的书!进个门!!虽然我没看过这本书。但是网上的评论有不少是说这本书值得用来做为入门!

如果LZ是要用LINUX做为学习环境的! 也行! LZ喜欢就行了! 

我总觉学汇编总有一个目的最好!!编写汇编也要确定是编什么,如果是学习语言,体会汇编语言的组合式编程的话!

还是选一个最简单的好一点!!
  相关解决方案