LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1430|回复: 9

[求助] 问几个关于Linux下汇编语言和汇编工具的问题。。(已经解决了)

[复制链接]
发表于 2005-11-4 00:08:53 | 显示全部楼层 |阅读模式
小弟平时上课要学汇编语言(intel语法,MASM那种),可是到了Linux下,不能用 MASM编译
搜索了一下,很多都是关于 gas和 nasm的编译的工具,用 nasm或gcc编译写的文件却出错,
但又不能用 AT&T语法写些课件交给老师。。。

01> nasm是针对intel语法的吗,可以编译86系列汇编语言吗
02> gcc可以直接编译纯汇编的文件吗
03> 用什么开源的工具可以象masm编译

不想为了个汇编而用 XP,
请大家指点一下。。。
谢谢。。。
发表于 2005-11-4 00:51:44 | 显示全部楼层
一定要用 masm 的话
可以试试 dosbox 或 dosemu

dosemu - The Linux DOS Emulator
dosemu-freedos - FreeDOS package for DOSEMU
xfonts-dosemu - VGA font for the DOS Emulator
dosbox - A x86 emulator with Tandy/Herc/CGA/EGA/VGA graphics, sound and DOS
这些都是速度很快的



不管你在 Linux 下用的汇编器是 Intel 语法或是 AT&T 语法 , 对你在学校的课程大概都没多少直接用处
学校课程中的 IBM PC 汇编一般都是用 BIOS 例程 和 DOS 例程
而 Linux 下的汇编一般都是用 Linux 系统调用,比 IBM PC  汇编 “不底层”
回复 支持 反对

使用道具 举报

发表于 2005-11-4 16:41:02 | 显示全部楼层
按照huahua说的,还有如果 你不想物理安win的话
vmware装个win吧,那样就能用了,bios例程也能调用,不知道qemu行不行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-5 01:01:08 | 显示全部楼层
谢谢。。。
aptitude装来试一下先。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-6 15:06:27 | 显示全部楼层
装了个dosemu。。不知到知么用,
C: HD1 Pri:1 CHS=    0-1-1 start =     0MB,size =  392
D: = LINUX\FS/HOME/EULER  attrib = READ/WRITE
E: = LINUX\FS/TMP/DOSEMU.MR7BAU/TMP  attrib = READ/WRITE
C盘应该指向那里的。。
应该怎么用的,man了一下dosemu,还是不懂。。
怎么编译一个asm的问件呢,我用 masm却没用这个东东?
运行了一下exe的文件和 debug 某个文件可以的
还有,有处理缩进的命令的吗,我试过 indent ,对汇编好像不行的

问一下 huahua ,你应该用个的,搜到你的一个贴 http://www.linuxsir.cn/bbs/showt ... mp;page=1&pp=15
谢谢。。。


  1. (C) Copyright 1995-2002 Pasquale J. Villani and The FreeDOS Project.
  2. All Rights Reserved. This is free software and comes with ABSOLUTELY NO
  3. WARRANTY; you can redistribute it and/or modify it under the terms of the
  4. GNU General Public License as published by the Free Software Foundation;
  5. either version 2, or (at your option) any later version.
  6. C: HD1 Pri:1 CHS=    0-1-1 start =     0MB,size =  392
  7. Kernel: allocated 41 Diskbuffers = 21812 Bytes in HMA
  8. [dosemu EMS 4.0 driver installed]
  9. D: = LINUX\FS/HOME/EULER  attrib = READ/WRITE
  10. E: = LINUX\FS/TMP/DOSEMU.MR7BAU/TMP  attrib = READ/WRITE
  11. Welcome to dosemu 1.2.1.0!


  12. DOSEMU built-in command.com version  1.0

  13. C:\>ls
  14. autoexec.bat  config.sys    gnu           nls
  15. bin           doc           help          tmp
  16. command.com   dosemu        kernel.sys

  17. C:\>d:
  18. D:\>masm

  19. masm: file not found

  20. D:\>  
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-11-6 16:19:04 | 显示全部楼层
dosemu这个东西只是一个dos环境,你要自己去下masm阿,
编译好像是
masm XXX
link XXX
回复 支持 反对

使用道具 举报

发表于 2005-11-6 22:25:22 | 显示全部楼层
那,可能用 dosbox 会简单些了

安装 , aptitude install dosbox

用  dosbox 命令执行,或到 Debian 菜单-》程序-》模拟器-》DOSBOX


在 dosbox 里用 mount 命令挂载装有 汇编工具的分区

然后就像在平常的  DOS 下那样用汇编里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-6 22:52:24 | 显示全部楼层
Post by zlbruce
dosemu这个东西只是一个dos环境,你要自己去下masm阿,
编译好像是
masm XXX
link XXX


用dosemu解决了。。。要把 masm.exe  和  link.exe 这两个文件拷贝到编译的目录下,
用  xdosemu  或 dosemu 启动后,像用 dos那样,masm文件可以了
以后不用到跑到 XP 下了。。。
谢谢。。。
回复 支持 反对

使用道具 举报

发表于 2005-11-7 14:06:56 | 显示全部楼层
可以用qemu装一个dos,:)我电脑里还有一个呢,设置显示模式的中断也是可以用的
回复 支持 反对

使用道具 举报

发表于 2005-11-7 15:46:13 | 显示全部楼层
nasm-0.98.38-3.i386.rpm 下个这rpm就ok了把?


http://www.linuxfans.org/nuke/mo ... eninfo&did=3080
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表