导航:首页 > 操作系统 > linux汇编代码

linux汇编代码

发布时间:2022-10-04 01:41:00

‘壹’ 怎样在linux系统下查看汇编语言

linux下将C语言编译为汇编代码,需用-S参数:
编译命令为:
$ gcc -S s1.c
如下代码:
void fun(int a,int b)
{
/*这个函数什么也不做*/
}

int main(void)
{
fun(100,200);
return 0;
}

‘贰’ LINUX下面进行8086汇编

linux的内核中有很多汇编语言,但gcc是linux的唯一指定编译器,说明汇编的编译同样使用gcc,只是命令参数不一样

我美编写过8086汇编,但我编译过内核,确实不需要其他编译器

回答补充:

原来是编辑器的问题,我还以为你找的全套流程呢。

我连vim都没碰过,平时都是gedit,只有自动缩进一项功能,还很弱智,帮不上你了

这儿一点参考资料,贴出来,虽然有可能用不上

http://www.ibm.com/developerworks/cn/linux/l-assembly/

‘叁’ LINUX下面进行8086汇编

编辑器就是普通的编辑器,vim,emacs,gedit,kate...都可以
源文件类型为ascii码的plain
text
c/c++,asm,perl,python,vhdl...我所接触过的编程语言都是以plain
text作为源文件的
编译用gcc或者nasm,前者编译AT&T汇编,后者编译intel汇编
8086的教材上一般都是用intel,不过区别不大,可以相互转化
链接就是ld,属于gcc工具集
nasm如何链接,没试过
和C一样也是使用VIM(或者其他编辑器),不用加参数,不用配置环境(如果你不想让vim和emacs使用起来更舒服的话,根本不用配置,配置一下仅仅是为了提高打字效率)
编译器会自动根据plain
text的文件内容来编译
这和windows下的编程没有区别,只不过visual为了"用户友好"把编译的本质隐藏起来了
如果实在不爽,装dosemu,dos虚拟机,一般8086汇编都是用dos的吧,debug,masm都有

‘肆’ 如何定位 linux源代码 汇编语言 符号

linux下将C语言编译为汇编代码,需用-S参数:编译命令为:$ gcc -S s1.c如下代码:<pre t="code" l="cpp">void fun(int a,int b)
{
/*这个函数什么也不做*/
}

int main(void)
{
fun(100,200);
return 0;
}

‘伍’ 有没有懂linux内核源码中的汇编代码的#define switch_to(n){struct {long a, b;}__tmp; __asm__("cmpl "

用的at&t汇编,也就是Linux下的汇编语言,跟Intel x86汇编翻译成i386指令是一样的,就是写法和符号不同。
里面应该是__asm__()后面跟的是一个字符串,包含大量转义字符,你把转移字符翻译成对于的格式再看.

‘陆’ Linux系统里如何编译汇编程序。

linux 编译汇编程序常用的有两种,一种是A&T方式的,你gcc 就可以编译了。还有一种是80X86方式,一般是用NASM,NASM你要在安装LINUX时就要添加软件包,或者你进入图型界面,增加NASM软件包,就可以编译了。

‘柒’ 电脑装了虚拟机linux如何写汇编代码,纯小白提问

linux可以使用shell来编写代码
当你登录至shell之后。
可以使用输入vim XXX.sh或者为XXX(XXX代表名字)。当你输完之后你就会进入编写代码的界面,进入之后必须按个小a才能编写(⊙o⊙)哦(左下角有提示的)。
当你编写完后按键盘左上角的ESC退出编辑模式,随后在按shift+:键,在输入wq就是保存退出咯(w是保存,q是退出)
如果想运行编写的代码在shell界面输入命令:
bash XXX或者XXX.sh

‘捌’ 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内核代码 汇编部分 疑问

没研究过。

不过我记得 Linux 内核其实是两部分,真正的内核本体是在内核文件的后部,一般都是压缩的。之前是一个这个架构通用的启动代码,应该就是你这个汇编。
bootloader 的作用是把内核读取到指定地址,之后运行这个内核,这样运行的恰恰就是这段汇编写的启动代码,这个启动代码的作用就是初始化环境,之后把后面本体的内核解压缩并且写到内存开始部分(忘了叫什么名字)正好盖掉 bootloader ,并且继续运行。这样这个运行的内核才是最终的 Linux 内核。(至少 x86 是这样)

但每个 CPU 架构的启动过程又有不同的地方。应该每个 CPU 都有自己特定的头部启动代码。
你说这三个文件应该是有不同目的的。compressed 应该是解压用的,kernel 里面的应该是执行主要启动过程的。那个 common.s 应该是“通用”部分代码模块。我的 comperssed 里面还有很多 lzma 、gzip 、lzo 以及一些设备名称的东西,应该都是“模块”一类的吧。

你看看 Makefile 的编译过程应该就能开除编译调用的文件都是什么了。

还有,你看源代码最好看原版的,如果使用,那就去用针对性的。不然赶上找抽的人,可能针对某个开发板的代码,会因为太过针对而不符合通用的一些规定或者习惯。

阅读全文

与linux汇编代码相关的资料

热点内容
php基础编程教程pdf 浏览:215
穿越之命令与征服将军 浏览:351
android广播重复 浏览:832
像阿里云一样的服务器 浏览:318
水冷空调有压缩机吗 浏览:478
访问日本服务器可以做什么 浏览:432
bytejava详解 浏览:448
androidjava7 浏览:384
服务器在山洞里为什么还有油 浏览:885
天天基金app在哪里下载 浏览:974
服务器软路由怎么做 浏览:291
冰箱压缩机出口 浏览:227
OPT最佳页面置换算法 浏览:644
网盘忘记解压码怎么办 浏览:852
文件加密看不到里面的内容 浏览:653
程序员脑子里都想什么 浏览:434
oppp手机信任app在哪里设置 浏览:189
java地址重定向 浏览:272
一年级下册摘苹果的算法是怎样的 浏览:448
程序员出轨电视剧 浏览:90