VisualStudio写x86
1.环境搭建
- 首先创建一个空项目
- 然后在源文件下创建
cpp
文件,这个时候命名可以把后缀改为asm
- 对工程进行配置
工程属性->链接器->入口点
写下main
,这个意思是这个工程从main
开始进入。这个属性可以帮助你后面选择哪一个文件进行调试而不用为了写一个文件又新建一个工程 - 右键项目,选择
生成依赖项->生成自定义
,然后选择masm
- 然后设置你写的那个文件,右键属性,
常规->项类型
选择Microsoft Macro Assembler
- 上方菜单栏debug旁边选择
x86
看其他教程还要其它设置,但其实都是默认设置,而且好像无关紧要可以不用在意。至此你的VS便可以写x86汇编。
建议安装AsmDude,又汇编代码提示和高亮
2.生成list文件
右键工程属性->Microsoft Macro Assembler
Generate Preprocessed Source listing
选择是
List All Avaliable Information
选择是
Assembled Code Listing File
填$(ProjectName).lst
生成解决方案后再调试就可以在项目的文件夹里面找到list文件,一般是在项目名\\项目名\\项目名.lst
但是我自己试过后续再改动调试文件会出问题,建议就不开这个,需要的时候再开。这个就是把你的代码翻译成对应的数字形式。
3.源文件下多个文件如何指定某个文件运行
很简单就上面部分说的,你的入口是main,要么你改变你其它的源文件入口名字(对应END那些地方也要跟着改),这个是没关系的入口不一定必须为main,然后对应的你要执行哪个asm文件你就把入口设置成main
当然入口可以自定义
比如定义start为入口
;AddTwo.asm - 两个32位整数相加
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
.data
sum DWORD 0
.code
start PROC
mov eax,5;数字5送入eax寄存器
add eax,6;eax寄存器加6
mov sum,eax
INVOKE ExitProcess,0
start ENDP
END start
反正道理就是这么个道理
4.写64位的
基本上都一样,就是在设置入口为main的时候把上面的平台换成x64
,同时菜单栏上debug旁边换成x64