【笔记】汇编语言

 

*如今王爽老师的《汇编语言》已经看到4.5了,想把接下来看书过程当中遇到的所学所想记下来。eclipse

 

和masm奋战了一下午

正在安装masm,感受这个工具的安装界面就颇有年代感(忘记截图了),并且安装真的很慢。工具

这本书太老了,我翻看了一下是2003年出的,致使书中说的masm 5.0都变成了masm 11……spa

安装完毕后发现根本找不到一个叫masm.exe的程序,不知道masm32这个文件夹中哪个才是编译器…….net

查了不少资料发现一个叫qeditor的程序,应该是这个版本11把编译器作成了eclipse那种图形界面。3d

结果在link的时候就出现了问题:code

我怀疑是这样的:blog

由于个人系统是64位的,按理来讲应该在Dosbox中编译才能成功,但这个图形界面的编译器又不能在Dos方式下打开,致使只能在本机64位的环境下编译,就没法成功(?)ip

又找资料找啊找,找到了这篇文章:DOSBox0.74以及汇编编译器的安装使用(虚拟)64位资源

实际上是使用了文章中给的资源(主要是masm和link),以后在cmd中就能够实现4.4和4.5中写道的编译链接了。get

须要注意的是由于咱们用的是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看看是什么状况:

 

obj文件内容要比本来的asm文件少,标注出的部分是汇编指令的机器码。再对比一下exe:

中间全是零,代码段在最后。

相关文章
相关标签/搜索