关于在win8.1(64位)上编写汇编教学

首先,声明一下博主是一个刚学汇编的萌新,一个人摸索也感觉有点费时间,所以写下这种快速实现的方法。当然在高手眼里肯定显得稚嫩,各位看官见谅。

First 你要下载一个DOSBOX(因为入门一般学的是WIN32汇编是无法直接在64位上得出的,所以得借助虚拟机,博主下的是DOSBox 0.74)

下载完以后,安装,博主放在了C盘(安装路径在我看来不太重要默认就可以)

然后跳出z:\>(这里是重点)
输入mount c d:\dos ,这里的C是虚拟C盘(关于虚拟C盘的用法我还在摸索,以及和实体的区别我将在下一篇博文中说明)
d:\dos的意思是要虚拟的文件夹的位置(把相应的文件放在这里面然后通过虚拟机运行,就是把实体和虚拟连接起来,功能上给我的感觉有点像VM的共享文件夹)

致此开始下一步,下载安装masm615,然后在你要虚拟的文件夹(博主的话就是上面那个d:\dos中新建一个文件夹命名位MASM615,然后把masm615的压缩文件解压到这个MASM615当中)

至此,准备工作算是完成了,接下来就是用自带的记事本在你虚拟的文件夹中写汇编代码,然后编译连接,运行。这里给出一个示范

先给出汇编代码:

stack segment stack
byte 64 dup(0)
stack ends
data segment
msg byte 'hello world!$'
data ends
code segment
assume cs:code,ss:stack,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start

复制到记事本中后另存为ASM文件,然后打开DOSBOX

输入C:(切换到虚拟C盘,也就是上面你设置的那个虚拟文件夹)

切换到你写ASM文件的那个目录(用CD命令具体是cd 文件夹名)

如果你有疑问的话输入dir(查看当前文件夹内容)看看你的文件是不是在这里

然后ML.EXE /C XXX.ASM(感觉DOSBOX是不区分大小写的因为WIN8系统你如果对一个文件采取大小写不同字母相同的命名会造成覆盖(当然要你同意))

这时候编译就完成了,你用dir查看当前文件夹会发现你多了一个XXX.onj文件(当然也有编译失败的)

编译成功显示Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved. 
  Assembling: XXX.asm

编译失败在最后一行会有error出现你再看看你的代码或者是你MASM615文件的缺失

接着就是连接

输入link16(这个是你link程序的名字可能不是这个你要自己看) XXX.obj,,,,, 回车 (这里我不太理解逗号的含义然后看到一位前辈这么解释,5个逗号,用户是默认运行。你也可以不打5个逗号,然后连续敲5个回车,这样就会以默认名运行,读者可不敲回车,根据提示,自己命名,建议采用默认)

这时连接就完成了

如果连接成功了dir会出现一个exe文件,如果失败会出现error,博主第一次连接ERROR报错,肯定不是代码的问题,于是我又下了一个MASM615不同地方下的,然后把里面的LINK.exe放到MASM615文明夹里用他去连接发现可以了,也算是个意外之喜。

到最后你dir出现exe文件之后,输入XXX.exe

控制台就输出hello world!了。(以后打开直接找到exe所在文件夹然后输入XXX.exe就可以运行了)


如果有需要资源的或者想要一起探讨的可以加我企鹅754572491

至此谢谢各位看我这一知半解的博文,希望对同为新手的人有所帮助!(汇编之路漫漫,望与诸君共勉)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值