linux汇编编译器
㈠ 在linux系统中怎么使C程序变成Intel的汇编程序而不是AT&T的,gcc编译后默认的是AT&T的
gcc编译的程序码是没有“Intel”、“at&t”之分的⋯⋯就是二进制而已。所谓的“Intel”、“at&t”是指汇编语言的写作格式。
如果你用yum软件包管理器,sudo yum install nasm。
如果你用apt-get,sudo apt-get install nasm。
如果不行,就到sourceforge下载nasm的rpm(如果是yum)或deb(apt-get),然后安装。
如果还不行,下载源码,然后终端里(在解压出的目录下):
./configure
make
sudo make install
最后,ndisasm -b 32 文件名。
顺便一说安装的这个nasm是intel格式的汇编编译器。相当好。然后ndisasm是它附带的反汇编器。
不好意思没法放网址。网络会把这个回答给删掉。
star特530的是ARM汇编的。
㈡ linux 系统下as命令是什么意思 怎么用
as命令是gcc套件中的汇编器,它采用的是AT/T的汇编语法,和windows下的MASM不太一样
㈢ 0.11版的linux内核中bootsect.s用的是什么汇编
这是以前比较古老的一种汇编编译器....
Begdata begbss这些都是一些标记,名字可以随便改,标志着代码段的起始位置....
㈣ Linux系统里如何编译汇编程序。
linux 编译汇编程序常用的有两种,一种是A&T方式的,你gcc 就可以编译了。还有一种是80X86方式,一般是用NASM,NASM你要在安装LINUX时就要添加软件包,或者你进入图型界面,增加NASM软件包,就可以编译了。
㈤ 汇编语言用什么软件写的后缀名是什么
汇编语言不是用什么软件写的,是由字母、单词来代替一个特定的指令来编辑的,后缀名是.asm。
汇编语言是用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。
汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。
(5)linux汇编编译器扩展阅读
汇编语言表达式常量:
1>数值常量1010H
2>符号常量
伪指令:<符号名>EQU<表达式>
功能:定义所指符号常量所代表的常量的值
说明:表达式可以是常数、指令助记符、伪指令助记符、寄存器名字或其他自定义的符号
例子:VAEQU100;表达式为常数
NUMEQUVA+100;表达式为数值表达式
OPEEQUADD;表达式为指令助记符
伪指令:<符号名>=<常数表达式>
功能:定义所指符号常量所代表的常量的值
说明:“=”之后只能是常数,对于字符和字符串汇编时按照整数处理
例子:VA=100
NUM=3*100
NUM=VA+500
㈥ Windows、Linux、Mac等系统是用什么编程语言汇编的
它们的系统
多是用C语言加汇编语言制作的。。C语言的运行速度比较快。。开发效率也快,一般多是用来做系统开发的。。。而汇编语言是用来做底层硬件接口的,使个硬件相互传递数据的。。。一般的软件开发平台多是将代码转换成汇编语言的。。在通过汇编器转换成相应的二进制数据的(电脑唯一识别的代码)
㈦ 如何在64位的linux系统上使用汇编和C语言混合编程
C51与汇编语言混合编程(1).C51语言中调用汇编语言程序1、在文件中选中FILEGROUP和C51程序原文件,在配置文件选项中激活“i”产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含“三个选项。2、根据选择的编译模式,把相应的库文件(如SMALL模式,库文件为KEIL\C51\LIB\C51S.LIB)加入到工程中。3、在C51语言中必须声明需要调用的函数为外部函数。externvoidDELAY(void);4、在汇编语言程序中必须声明被调用子程序为公共子程序,在被调用的文件中还需要声明此文件是新定位的。PUBLICDELAY,实例如下:#include"reg51.h"externvoidDELAY(void);externvoidDEL(void);voidmain(void){P1=0x00;DELAY();DEL();P!=0xff;}汇编语言文件:PUBLICDELAY,DELAY:MOVR2,#3HDJNZR2,$RETDEL:MOVR3,#3HDJNZR3,$RETEND(2)、C51语言中嵌入汇编程序:在C51语言中嵌套使用汇编语言程序要注意以下几个问题:1、在文件中选中FILEGROUP和C51程序原文件,在配置文件选项中激活“i”产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含“三个选项。2、根据选择的编译模式,把相应的库文件(如SMALL模式,库文件为KEIL\C51\LIB\C51S.LIB)加入到工程中。3、用#pragmaasm.和#pragmaendasm语句包含嵌入的汇编语言程序。实例如下:#include"reg51.h"voiddelay(void);voidmain(void){voiddelay(void);P1=0x00;#pragmaasmMOVR3,#08HDINZR3,$#pragmaendasmP1=0xff;}voiddelay(void){#pragmaasmMOVR4,#08HDJNZR4,$#pragmaendasm}
㈧ linux 汇编工具以及调试
当然是
gcc
+
gdb
不过gcc/gdb
用
AT&T
风格的汇编,和
dos/win32
下的
Intel
风格不太一样,你要去了解一下具体区别。
.s
文件表示汇编源码文件,
可以用gcc
编译,比如
gcc
-g
a.s
-o
a.exe
然后就可以用
gdb
a.exe
来调试了,用
print
$eax
来显示
eax
寄存器,等等。
具体
gdb
命令自己搜索了解一下。
下面给个入门例子,把下面代码存入
a.s
,
就可以在
linux
下用我上面说的方法编译和调试了:
hello:
.string
"Hello
world\n"
.globl
main
main:
movl
$4,
%eax
movl
$1,
%ebx
movl
$hello,
%ecx
movl
$12,
%edx
int
$0x80
ret
㈨ LINUX下面进行8086汇编
linux的内核中有很多汇编语言,但gcc是linux的唯一指定编译器,说明汇编的编译同样使用gcc,只是命令参数不一样
我美编写过8086汇编,但我编译过内核,确实不需要其他编译器
回答补充:
原来是编辑器的问题,我还以为你找的全套流程呢。
我连vim都没碰过,平时都是gedit,只有自动缩进一项功能,还很弱智,帮不上你了
这儿一点参考资料,贴出来,虽然有可能用不上
http://www.ibm.com/developerworks/cn/linux/l-assembly/
㈩ Windows、Linux、Mac等系统是用什么编程语言汇编的
Windows系统的话XP和以前 核心部分是用汇编和C写的,外层以BASIC为主,部分用C++写的
从VISTA开始的话,底层是C,外层是用.net写的
LINUX的话你可以下载到它的源代码,当然内核都是用C写的,部分汇编
后面的问题的话,比如最早都是用二进制的,后来才出来汇编语言,当然汇编语言也要转换成二进制机器代码才能执行,这就是由汇编语言的编译器做的,而后来出来了高级语言,比如C也算,说到底还是要转换成机器代码才能执行,这都是由编译器做的。