汇编编译器
64位安装和使用方法:
首先在D盘或其他盘(最好不要在C盘)新建一个名为 masm 的文件夹(名字可以任意,建议用masm).
从https://pan.baidu.com/s/1xaMIR-QBJx0jUcotEsT6oA下载实验软件-微机原理,并解压,打开文件如下图所示:
打开64bit,再打开64bit目录下的masm(注意:不是我们新建的masm)
接着我们选中DEBUG.EXE, DOSXNT.EXE , LINK.EXE ,MASM.EXE ,ML.EXE复制到我们刚新建的文件夹中:
完成上述步骤后安装DOSBox0.74-win32-installer,在微机原理64bit 目录下masm中,安装完后桌面会出现该软件的图标:
打开该软件,这里需要设置一下路径以模拟DOS模式:
其中mount是必写单词,然后空格,接着c:也是必写字段,空格,后面则设置我们刚刚新建的(用于存放编译链接程序的)文件夹,我这里是d:\masm 输入完成后按下ENTER键,接着下一行出现Z:\> 输出c:回车即可。
我们先debug一下看下模拟得怎样
可以看出模拟的还是比较好的。
说了那么多,我们写一个小程序,并且编译链接生成exe文件后用debug跟踪一下看看效果如何
该程序将改写内存中的数据,将会引起死机(注意:不是真的电脑死机,而死DOSBox模拟器死机)
我们用Notepad++这个软件来编写汇编程序(也可以用记事本,后缀名改为asm即可)
在语言那里选择汇编语言即可(Assembly)这里我们将源程序保存到刚刚新建的masm目录下
可以看到我们的源程序test.asm,接着就是编译链接的步骤了,首先win+R打开运行,并且输入cmd后回车
接着输入刚刚新建masm文件夹所在的盘,我这里是D盘,所以输入D: 然后回车
接着打开masm 输入cd masm (cd 是打开文件夹指令)
然后进行编译
编译的格式是 masm 源程序文件名.asm 所以我这里是masm test.asm 按下ENTER键完成编译,编译后我们可以看到刚刚新建的masm目录下多了test.obj文件
编译就算完成了,我们还要进行连接工作才能生成exe文件
连接步骤如下:
win+R打开运行,输入cmd,并打开masm目录(步骤与上述相同,这里不再详细)
接着输入link
这里输入我们刚刚生成的obj文件,注意:后缀和名字一起输入,接着输入生成exe文件的文件名,我们还是用test
然后下面一直按ENTER键就ok了,下面都是生成中间产物,我们没必要关心
然后在新建的masm目录下我们可以看到我们可爱的exe文件了
直接运行是不可以的(应该是版本过老问题)我们必须用debug跟踪,可是64位系统在win+R里debug不是指令,不能跟踪,这时我们强大的DOSBox 0.74发挥作用了
打开DOSBox,按以上步骤完成设置后输入debug test.exe
用r命令查看寄存器的值,u命令查看汇编程序的指令
我们用t命令进行执行
执行两次t命令后可以看到下一个汇编语言是MOV [0026],AX 即修改内存单元0026的单元的值,该单元因为存放着重要的机器指令,修改后将会导致DOSBox软件死机,继续执行t命令
此时DOSBox已经死机,想再次运行请关掉该软件再次打开即可,可见DOSBox模拟得挺真实的,连死机也不放过
以上就是基本的使用方法!
用汇编语言写一个大程序相比于高级语言是相当麻烦的,我们学汇编的目的并不是为了写出大程序,而是为了更好的理解计算机的底层工作,接触最接近机器语言的编程语言,探索它的原理,发现它的奥秘,有兴趣的同学或正在学汇编语言的同学可以试下这款模拟器,它模拟得恨到位,能有效地帮助汇编学习
相关阅读
转自:知乎链接:https://www.zhihu.com/question/24696366/answer/29189700首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式
什么是阻抗匹配以及为什么要阻抗匹配...阻抗匹配在高频设计中是一个常用的概念,这篇文章对这个“阻抗匹配”进行了比较好的解析。
spring默认启动位置以及contextConfigLocation设置源
spring默认启动位置以及contextConfigLocation设置源码解析 这几天在看spring的源码,涉及到spring启动位置的部分,下面就看看sprin
呆呆导读:对于从事互联网的人来说,了解了互联网公司的各个岗位职责是非常重要的。你只有清晰认识到整个架构是怎么运转的,才能知道平
微信公众账号如何赚钱?由于主要交通在线,主要公共账户的交通量约为每月1万元左右,并且只有主要广告收入流量超过5万元的单日公共号码