*现在王爽老师的《汇编语言》已经看到4.5了,想把接下来看书过程中遇到的所学所想记下来。
正在安装masm,感觉这个工具的安装界面就很有年代感(忘记截图了),而且安装真的很慢。
这本书太老了,我翻看了一下是2003年出的,导致书中说的masm 5.0都变成了masm 11……
安装完毕后发现根本找不到一个叫masm.exe的程序,不知道masm32这个文件夹中哪一个才是编译器……
查了很多资料发现一个叫qeditor的程序,应该是这个版本11把编译器做成了eclipse那种图形界面。
结果在link的时候就出现了问题:
我怀疑是这样的:
因为我的系统是64位的,按理来说应该在Dosbox中编译才能成功,但这个图形界面的编译器又不能在Dos方式下打开,导致只能在本机64位的环境下编译,就无法成功(?)
又找资料找啊找,找到了这篇文章:DOSBox0.74以及汇编编译器的安装使用(虚拟)64位
其实是使用了文章中给的资源(主要是masm和link),之后在cmd中就可以实现4.4和4.5中写道的编译连接了。
需要注意的是因为我们用的是8086的汇编语言,编译形成的exe也是16位的,并不能在64位系统上直接执行:
试了一下在Dos中运行,没有反应……当然没有反应,因为asm文件中的内容是这样的:
1 assume cs:codesg 2 3 codesg segment 4 5 mov ax,123h 6 mov bx,456h 7 add ax,bx 8 add ax,ax 9 10 mov ax,4c00h 11 int 21h 12 13 codesg ends 14 15 end
只是做了一些寄存器的处理,并没有什么要显示出来的(真可恶我看了4.7才反应过来这一点,之前先入为主地以为在Dos中也无法运行……)
看到说“存有机器码的目标文件”想起来把obj放到010editor看看是什么情况:
原文:https://www.cnblogs.com/ctf-love/p/12973291.html