手动编译连接汇编程序遇到的问题

最近刚刚在学汇编,刚刚开始学写第一个程序,编译连接出现了好多问题。。。

在此总结一下:

法一:

64位的需要下载一个dosbox,下载masm 5.0或者masm615 (加入我把1.asm,link.exe masm.exe ml.exe放在d盘的try文件下)

1.进入dosbox,输入 mount c d:\try\

2. c:

3.masm 1.asm

在进行到这步时,我出现了

c:\try>masm 1.asm
This program requires DOSXNT.EXE to be in you path
This program requires DOSXNT.EXE to be in you path

run-time error R6000
- stack over low

run-time error R6001
-null pointer assignment 
这样的错误,弄了好久。

原来我用的是masm615的,后来我下了个masm5.0的,就可以了

总结:要是这个版本的masm不行,那就换一个版本试试!!

4.下了maxm5.0,成功生成了1.obj

5.link 1.obj

6.生成了1.exe

7.运行程序   输入1.exe

上面很自然地完成了


法二:

但是看视频,我们可以用ml.exe直接生成1.obj,1.exe

步骤:

1,2步与上面一样

3.直接输入ml 1.asm

但是我还是遇到了问题

出现了

This program cannot be run in DOS mode

然后我查了一下,说把1.asm拖到ml.exe就可以直接生成1.obj跟1.exe文件,但是不知道为什么,我的只能生成1.obj,但是比起前面来少了一步了。


看起来很容易的事情,跟着做就好了,但还是会因为环境等问题遇到这样那样的问题,折腾一下,总会有收获!

你可能感兴趣的:(MOOC,数据结构,汇编)