▶ DOSBOX 相关
● 下载 DOSBox(http://www.dosbox.com/download.php?main=1),安装到文件夹 DOSBox 。
● 下载 debug.exe(Win10 没有自带,随手找的),放到目录 DOSBox 下。
● 打开配置文件 C:\Users\cuan\AppData\Local\DOSBox\dosbox-0.74.conf,拉到末尾,添加 mount C D:\Program\DOSBox (启动时自动挂载 DOSBox 为 C 分区)
● 启动 DOSBox.exe,这时可以使用 debug 命令(即运行 debug.exe)进入调试模式。
▶ Visual Studio 2015 相关
● 原文地址:http://blog.csdn.net/sinat_27382047/article/details/70339455
● Visual Studio 汇编高亮插件 AsmHighlighter(http://asmhighlighter.codeplex.com/),双击安装。
● VS 工具栏中,工具,选项,环境,扩展和更新,自动检查更新。
● VS 工具栏中,工具,扩展和更新,启用 AsmHighlighter,可能需要在左边点击更新,重启 VS 以后才能生效。
● 建项目。建一个 “Win32 控制台应用程序” 项目,如下选择。
● 项目属性右键,生成依赖项,生成自定义,如下选择。
● 向项目中添加源文件,使用C++文件,但是后缀名改为 .asm,如下选择。
● 项目属性右键,属性,链接器,系统,子系统,选择 “控制台 (SUBSYSTEM:CONSOLE)”
● 项目右键,属性,链接器,高级,入口点,填 "main"
▶ 测试代码
COMMENT !&
块段注释
!& . ; 32 位程序,使用 32 位寄存器和地址
.model flat, stdcall ; 内存模式 flat,子程序调用规范 stdcall
.stack ; 伪指令,使用堆栈大小,一个内存页为 4096 Byte ExitProcess PROTO, dwExitCode:DWORD ; 声明 Windows 函数原形,用于与操作系统交互 .code ; 伪指令,程序区段
main PROC ; 过程起点,程序入口
mov eax,
add eax,
INVOKE ExitProcess, ; 过程向操作系统返回 0,表正常结束
main ENDP ; 过程结束 END main ; 程序结束 后面的内容被自动忽略,不用写成注释
● 64位版本
; 不用平台,内存指定 ExitProcess PROTO ; 不用参数 .data
sum DWORD .code
main PROC
mov eax,
add eax,
mov sum, eax
mov ecx, 0 ; ecx 寄存器作为 ExitProcess 的返回值,设为 0
call ExitProcess ; 使用 call 来调用函数,不再写返回值
main ENDP ; 过程结束 END ; 不表明入口点
● 输出结果:没有显示输出,正常返回 0
▶ 相关链接
● 最老的说明:http://kipirvine.com/asm/gettingStartedVS2015/index.htm#tutorial32
● 看SB“坐而论道”:http://tieba.baidu.com/p/4827889049#99426928136l
● 微软64位汇编器 ml64.exe:https://msdn.microsoft.com/en-us/library/hb5z4sxd.aspx
● 包含了一些VS高级配置说明:的http://blog.csdn.net/natepan/article/details/6781439
● 一个包括 16 位工程的说明:http://kipirvine.com/asm/gettingstartedvs2010/#syntax