汇编环境配置及 Hello World。DOSBox,debug.exe,VisualStudio
▶ 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
汇编环境配置及 Hello World。DOSBox,debug.exe,VisualStudio的更多相关文章
- windows汇编环境配置
原文地址 软件下载 需要的软件已经打包,包括dosbox和MASM.如果没有这两个软件可以在下面的地址下载. http://hjwblog.com/game/汇编环境.zip 点击下载 安装dosbo ...
- 汇编环境的搭建(windows 10 + debug)
1. debug.exe 安装 win10 版本过高,不再提供 debug.exe,甚至从别处获取的 debug.exe 的也无法运行. 汇编语言学习所需的各种执行文件(debug.exe.link. ...
- Win32汇编环境配置
放假了,发现自己知识面窄,趁有时间就打算折腾下Win32汇编.其实在学校也上过汇编课,是基于dos的.那时老师不务正业,老跟我们讲政治经济文化,唯独不怎么讲课;再加上自己的问题,导致了dos汇编学得好 ...
- 对VS2019进行32位汇编环境配置
1.库文件(很重要) 用我这一份就行:https://www.lanzous.com/i6364hg 2.VS依赖库 打开VS2019,选择桌面向导 配置项目时,选择新项目. 选择生成依赖项 选中ma ...
- 视频+图文教程 | Java之安装JDK与环境配置
演示所用软件JDK 8与Eclipse(Java开发工具)软件下载链接: 链接:https://pan.baidu.com/s/1Vg9ulrQH8WlGRAE89Y02UA提取码:swwl 视频介绍 ...
- 使用DOSBox在Win7_x64下搭建汇编环境
1. 软件安装 1. debug.exe,masm.exe,link.exe,edit.com等汇编工具,一般32位的windows系统有自带,但64位系统下并没有,而且将32位系统下的工具拷贝到64 ...
- Mac OS环境下DOSBox汇编环境的搭建
平台: mac 工具: DOSBox(点击下载DOSBox官网) debug.edit.link.masm等等(点击下载masm汇编开发工具,提取码: skc8) 步骤: 1 .安装DOSBox: 解 ...
- MS-DOS 系统汇编环境之DOSBOX+vim
经过虚拟机的体验,我发现还是dosbox里汇编比较方便..... 一.下载安装 dosbox DOSBOX 准备好 masm.exe.link.exe.debug.exe,放在~/dos下(文件夹名字 ...
- win7 64位环境下配置汇编环境和程序设计
下载dosbox,并解压安装 下载地址: http://pan.baidu.com/s/1eRJbJAq 默认安装到C:\Program Files (x86)\DOSBox-0.74 安装成功后,双 ...
随机推荐
- 网络流--最大流dinic模板
标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...
- Descriptor&web.xml
Deployment Descriptor部署描述符: - 部署描述符是要部署到Web容器或EJB容器的Web应用程序或EJB应用程序的配置文件. - 部署描述符应包含EJB应用程序中所有企业bean ...
- TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点
TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...
- CGI之C语言篇
为什么要进行CGI编程? 在HTML中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理,或者是把它们 ...
- 查看Linq to Sql生成的sql语句(转)
查看Linq to Sql生成的sql语句 在控制台项目中,比较简单,直接db.Log = Console.Out;就OK了 但是在其他项目中,需要处理如下: StreamWriter sw = ...
- Microsoft Dynamics CRM4.0 创建单据的时候,自动生成单据编号的通用方法
一.新建两个实体,具体如下: 单据流水号(new_maxbillcode) 显示名称 名称 类型 格式 最大长度 需求级别 IME模式 备注 名称 new_name nvarchar 文本 100 业 ...
- go http client, http server
Go语言中的HTTP client, server非常简单.具体如下. HTTP Server package main import ( "fmt" "html&quo ...
- gitlab配合walle搭建发布系统
理解walle实现发布代码的原理: 宿主机:walle系统搭建的服务器以及拉取gitlab代码的服务器,这个时候gitlab一般都是另外一台服务器. 目标机器:版本最终发布的目的机器,或者目的机群 ...
- 禁止HTML页面缓存
head标签里增加: <meta http-equiv="X-UA-Compatible" content="IE=8"> <meta htt ...
- python中hashlib md5
如下两种方法,结果相同 import hashlib import time m = hashlib.md5() m.update(str(time.time()).encode('utf-8')) ...