| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3074 人关注过本帖
标题:linux & masm
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
结帖率:99.34%
收藏
已结贴  问题点数:20 回复次数:8 
linux & masm
我想在linux下搞汇编的工作 目前虚拟的ubuntu里已经安装好了 vim和emacs
曾经在里面写了个简单的正确的assembly程序 但是不会编译运行
问一下大牛们 还要下载安装什么软件吗?
搜索更多相关主题的帖子: 下载安装 ubuntu linux 
2012-09-04 21:56
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
网上推荐GAS和NASM 不过GAS使用的是AT&T语法 NASM要区分大小写~~

梅尚程荀
马谭杨奚







                                                       
2012-09-04 22:17
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用pangding在2012-9-5 00:10:37的发言:

有容最好去 software center 把 gcc 呀 g++ 之类的都先装好。默认带不带我也不记得了,反正肯定是必备工具。
恩 这个主意好。

梅尚程荀
马谭杨奚







                                                       
2012-09-05 09:36
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 14楼 zklhp
如果GAS支持intel语法 就先用它了

梅尚程荀
马谭杨奚







                                                       
2012-09-05 09:37
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
网上说 在intel语法里的代码前加上.intel_syntax就可以用AS编译这个汇编源文件
但是 我试了下不行啊  改成 intel syntax / intel_syntax 都不行
yrjd@yrjd-virtual-machine:~/c$ as 11.s -o 11.o
11.s: Assembler messages:
11.s: Warning: end of file not at end of a line; newline inserted
11.s:1: Error: unknown pseudo-op: `.intel'
11.s:2: Error: no such instruction: `assume cs:code,ds:data'
11.s:4: Error: no such instruction: `data segment'
11.s:5: Error: no such instruction: `s db 72ello world!4410h,13h,36'
11.s:6: Error: no such instruction: `data ends'
11.s:8: Error: no such instruction: `code segment'
11.s:9: Error: too many memory references for `mov'
11.s:10: Error: too many memory references for `mov'
11.s:11: Error: junk `h' after expression
11.s:11: Error: operand size mismatch for `int'
11.s:13: Error: too many memory references for `mov'
11.s:14: Error: junk `h' after expression
11.s:14: Error: operand size mismatch for `int'
11.s:15: Error: too many memory references for `mov'
11.s:16: Error: junk `h' after expression
11.s:16: Error: operand size mismatch for `int'
11.s:17: Error: no such instruction: `code ends'
11.s:18: Error: no such instruction: `end start'
然后按照Z版给的那个方法去试 也不行
yrjd@yrjd-virtual-machine:~/c$ -msyntax=[intel]
-msyntax=[intel]: command not found
yrjd@yrjd-virtual-machine:~/c$ -msyntax=[att|intel]
intel]: command not found
-msyntax=[att: command not found
怎么弄 ?
直接学at&t 语法算来?



梅尚程荀
马谭杨奚







                                                       
2012-09-05 11:46
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 18楼 madfrogme
为了免去各种麻烦,感觉用intel语法, 就用nasm 编译
AT&T 语法,就用 gas编译。

好吧 就听你的

不过我在网上看到个AT&T写的Hello world的代码 直接调用的系统内核  代码很短啊 没有跳转。

梅尚程荀
马谭杨奚







                                                       
2012-09-05 12:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 21楼 newdos
好的 去搞搞nasm先


梅尚程荀
马谭杨奚







                                                       
2012-09-05 13:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 21楼 newdos
nasm 结合 gcc编译 还不错 直接ld有点问题 估计masm和nasm虽然都遵循intel语法 但是源程序应该还是不会一模一样吧

梅尚程荀
马谭杨奚







                                                       
2012-09-05 15:40
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 24楼 pangding
嘿嘿 这个nasm和masm的书写还是很多不一样啊
P版用的是AT&T语法的Gas吧 貌似AT&T更难学啊

梅尚程荀
马谭杨奚







                                                       
2012-09-06 00:38
快速回复:linux & masm
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.107960 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved