这学期开的有<微机原理与接口技术>这门课,前一半基本上都是讲汇编语言程序设计的,而不管是老师及书本上讲的,还有上机时所使用的环境,都是使用masm汇编器。前面那么长一段时间,我都是打定主意用最适合Linux的方式来解决一切问题的,所以想同时另学使用GAS汇编器的at&t风格的汇编,但是发现至少在短期内这样的做法不太现实。比如一句mov ds:[0020h],bx的改写我就花了几天的时间搜索,上论坛但还是没有解决,无论什么程序只要我使用了内存操作数运行起来必出段错误,至于究竟是实模式与保护模式的处理方式不同还是什么其它原因仍是不清楚。在这样的状况下我的课掉了不少了,不能再这样下去了,先得把这学期的考试过了再说。
于是今天我想在Linux下实现用masm汇编器来写程序。有句话很有道理:Linux的好处就是,只要有人可能用得到的,就必定有人会开发出相应的解决方案。
很快我就找到了方法,那即是通过dosemu。它的功能即实现在Linux下的dos,至于dos的版本你可以自己选择吧,我的选择是GPL到底--用freedos,据称能完美兼容MS-DOS,嗯至少我小用了一段没发现有什么不同的地方。我是用rpm包安装的,直接dosemu-1.4.0-1.i386.rpm,下载链接是

http://dosemu.sourceforge.net/stable/

在这个包里包含了dosemu以及freedos和自带debug。省心省事。
$su root
$rpm -ivh dosemu-1.4.0-1.i386.rpm
将软件安装好,就可以使用dosemu命令唤出dos了
如果想shell关闭的时候dos窗口仍在,可以把/usr/bin里对应的dosemu.bin改改权限然后用xdosemu启动就好了。
linux下使用masm--通过dosemu及freedos
$_ems = (4096) 或$_xms=(4096)将Dos扩展程序内存大小


终于可以和同学们一样的学微机原理了,at&t的语法我也不会放弃,以后有时间了再捡起来。

相关文章:

  • 2021-11-01
  • 2022-12-23
  • 2021-05-11
  • 2021-05-19
  • 2021-05-31
  • 2022-12-23
  • 2021-08-22
猜你喜欢
  • 2021-09-02
  • 2021-11-23
  • 2022-01-14
  • 2022-12-23
  • 2021-08-26
  • 2022-01-07
相关资源
相似解决方案