就是要努力呀 发表于 2020-3-19 12:15:27

linux下如何搭建汇编学习环境

最近在学汇编,系统用的ubuntu18.04,求问怎样在linux里搭建汇编学习环境{:10_266:}

人造人 发表于 2020-3-19 16:31:23

的确可以用linux学8086汇编语言,不过还是不建议折腾这个,建议使用教程中的环境,也就是xp系统,现在可以是虚拟机 + xp
实在不行就用dosbox

如果你确实要在linux下折腾,那你可以试试qemu,bochs + dos系统,或者在linux下装一个xp虚拟机
当然也可以直接用gas(as)编译16位汇编语言程序

雪球丶 发表于 2020-3-19 17:54:49

可以尝试用wine运行dosbox{:10_277:}

就是要努力呀 发表于 2020-3-19 18:45:20

雪球丶 发表于 2020-3-19 17:54
可以尝试用wine运行dosbox

就没有类似gcc那种在命令行就能编译运行的吗{:10_306:}

雪球丶 发表于 2020-3-19 19:03:27

就是要努力呀 发表于 2020-3-19 18:45
就没有类似gcc那种在命令行就能编译运行的吗

不晓得啊,你找到了通知我一下{:10_279:}

就是要努力呀 发表于 2020-3-19 19:12:53

雪球丶 发表于 2020-3-19 19:03
不晓得啊,你找到了通知我一下

。。。{:10_324:}你找到了也通知我一下{:10_281:}

雪球丶 发表于 2020-3-19 20:49:05

就是要努力呀 发表于 2020-3-19 19:12
。。。你找到了也通知我一下

https://www.japheth.de/JWasm.html#jwdownload
你看看这个,我的surface硬盘太小了没法装虚拟机帮你试,不靠谱别怨我{:10_254:}
不过建议如果是初学还是用跟教程一样的工具,免得出问题难解决耽误正事

人造人 发表于 2020-3-19 23:13:25

一条make命令搞定
这里是使用nasm编译器,语法和masm有些不一样

main.asm
segment .code
..start:
      mov   ax, data
      mov   ds, ax
      mov   es, ax
      mov   ax, stack
      mov   ss, ax
      mov   sp, 128

      mov   dx, msg
      mov   ah, 0x09
      int   0x21            ; 显示字符串
      mov   ax, 0x4c00
      int   0x21

segment .data
msg:    db 'hello world!', 0x0d, 0x0a, '

Makefile
main.exe: main.obj
        alink -c -oEXE $<

main.obj: main.asm
        nasm -f obj -o $@ $<

run: Image
        qemu-system-i386 -hda $<

Image: main.exe
        sudo kpartx -av $@
        sudo mount /dev/mapper/loop0p1 mnt
        sudo cp $< mnt/SHARE
        sudo umount mnt
        sudo kpartx -dv $@

clean:
        rm -f main.exe main.obj




segment .stack stack
      resb 128


Makefile
[        DISCUZ_CODE_1        ]

人造人 发表于 2020-3-19 23:18:00


页: [1]
查看完整版本: linux下如何搭建汇编学习环境