win10c语言编程环境搭建,win10 下搭建汇编语言环境及hello world程序
前言
这学期汇编已经学了一大半了,可到现在为止只会一堆寄存器的名字,指令和各种寻址方式,这个语言到底是什么基本毫无概念。上次潘老师推荐了清华大学出版社王爽编的《汇编语言》这本书,在第一章就开始用汇编指令编程,内容讲得非常详细完善,解决了很多学习上的困惑。
一、准备环境
1. 准备Debug
网上直接搜索下载Debug,解压后如下
在命令行运行DEBUG.EXE会提示如下信息:
原因:win7以上64位系统是不能通过命令行进入debug的,但是可以通过虚拟机或者dosBox来解决这个问题。
2. 准备DOSBox
DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。
吐个槽:这个软件最初的作用并不是为了汇编语言的学习,而是为了玩以前dos环境下的各种游戏,甚至现在还有人基于dosBox开发此类游戏
下载安装打开后界面如下:
每次开始都需要挂载一下磁盘,我的Debug.exe在E://software/Debug下,则将我的计算机的E盘挂载到dosBox的C盘
mount c E:\
然后进入dosBox的c盘,即我的计算机的E盘下的Debug文件夹,运行Debug.exe
c:
.\SOFTWA~1\DEBUG\DEBUG.EXE
此时已经进入debug程序,使用r指令查看cup寄存器内容
二、hello word
1、准备一份helloWorld程序源代码
assume cs:code,ds:datas
datas segment
str db 'helloWorld!','$'
datas ends
code segment
mov ax,datas
mov ds,ax
lea dx,str ; 获取str的偏移地址
mov ah,9 ; 调用9号功能输出字符串
int 21h
mov ah,4ch
int 21h
code ends
end
将源码粘贴到记事本中保存,后缀改为ASM,存放路径我为了方便放在了Debug文件下
2. 编译
还是在Debug文件下,运行masm.exe
执行完以后会生成一个TEST.OBJ文件
source filename:源文件的路径与名称,如果是在本目录下,直接输入文件名
Object fileName: 目标文件的路径与名称,默认直接enter
剩下source listening(列表文件)和Cross-reference(交叉引用文件)是从源文件编译为目标文件过程中产生的中间结果,可以直接enter不生成。
上述过程的示意图如下:
也可以使用更为简洁的形式编译,效果同上:
masm test;
3. 连接
操作与上面类似,执行LINK.EXE程序
Object Modules:输入上一步生成的目标文件(.obj)
Run File: 可执行文件,连接后生成的exe文件,默认enter
List File: 映像文件,是连接过程中将目标文件连接为可执行文件过程中产生的中间文件,同样地,直接enter忽略
Libraries: 库文件,如果一个程序调用了某一个库的子程序,就需要在连接的时候,将这个库文件与目标文件连接在一起,生成可执行文件,但是我准备的这段程序没有调用任何子程序,所以直接enter忽略。
连接结束后输出的最后一行Link: warning L4021: no stack sement, 没有栈段,可以不用理会。
上述过程示意图:
简化的连接:
link test;
4. 执行exe
还是在debug目录下,使用dos执行test.exe文件
即可看到 helloWorld!
三、 错误总结
unable to open file: XX
可能原因:
文件名或路径名不对,例如源文件在c盘study下,则执行masm C:\STUDY\TEST
dos环境下文件名长度最长为8,将源文件名字改成长度为8以内
源文件后缀为ASM可省略后缀,当后缀为其他的则需要补全名字
server Errors
可能原因:源文件存在语法错误,如上,源文件中使用了未定义的data
总结
通过这次学习,对编译-连接-运行,源文件,目标文件,可执行文件这些以前模糊的概念有了比较清晰的认识。
不管学什么语言,如果不上手跑一段代码,干看书,根本学不会。
选择一本合适的书学习太重要了,有时候学不会一门课程,书占了很大因素。
win10c语言编程环境搭建,win10 下搭建汇编语言环境及hello world程序相关推荐
- win10下搭建zipline python3.5量化回测平台环境
win10下搭建zipline python3.5量化回测平台 1.安装 Anaconda 1.1 下载Anconda 1.2 安装 1.3 Anaconda Prompt 1.4 检查安装 1.5 ...
- Win10下搭建旷视YOLOX(新一代anchor-free目标检测网络)并训练自定义CoCo格式数据集
注意:原始的YOLOX只支持乌班图系统,因此以下所有操作均需要依赖博主自己的安装包.链接:https://pan.baidu.com/s/1CoQa8WjJ89gNfexK59Ewrw 提取码:qhi ...
- 基于WSL2和Clion搭建Win下C开发环境
系列文章目录 一.基于WSL2和Clion搭建Win下C开发环境 二.make.makeFile.CMake.CMakeLists的使用 三.全面.详细.通俗易懂的C语言语法和标准库 文章目录 系列文 ...
- 在Win10下搭建web服务器,使用本机IP不能访问,但是使用localhos或127.0.0.1可以正常访问的解决办法...
最近在在Win10下搭建web服务器,发现通过windows自带的浏览器win10 edge浏览器使用本机IP不能放问,但是使用localhos或127.0.0.1可以正常访问, 后来无意发现,使用w ...
- Windows 10下MASM汇编语言环境搭建
Windows 10下MASM汇编语言环境搭建 另有MASM汇编语言教程: https://download.csdn.net/download/xjzdr/12692694 1.下载插件:DOSBo ...
- Win10下Eclipse运行环境的安装
本文记录Win10下Eclipse运行环境的安装过程. 一.软件下载 软件下载网址:https://www.eclipse.org/downloads/.打开该网址后显示界面如下: 该界面中,点击右面 ...
- JAVA——jdk8的下载与安装,win10下配置JDK环境变量
JAVA--jdk8的下载与安装,win10下配置JDK环境变量 JDK下载和安装 下载JDK 安装JDK JDK环境变量配置(win10下配置JDK8) 配置步骤 检验JDK配置是否成功 JDK下载 ...
- Win10下的Python环境配置
Win10下的Python环境配置 原料 64位Windows10 专业版 安装Python 访问python的官方网站www.python.org,点击download,如图一 选择2.7版本,如图 ...
- win10下的cajviewer 安装后 提示应用程序无法正常启动(0xc0000018)
这里写自定义目录标题 win10下的cajviewer 安装后 提示应用程序无法正常启动(0xc0000018) 一.常规安装 二.解决无法打开的问题 win10下的cajviewer 安装后 提示应 ...
最新文章
- 一文搞懂RNN(循环神经网络)
- FACEBOOK’S CALIBRA
- MySQL INSERT INTO...ON DUPLICATE KEY UPDATE的使用
- 《高性能JavaScript》第七章 Ajax
- C#数组和集合专题4(Hashtable类)
- 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则
- SAP 电商云 Spartacus UI shipping method 切换时的 spinner 显示
- 玩转u-boot之【初探环境变量env/bootcmd/bootargs】
- 什么MySQL语句在存储过程体中是合法的
- 做数据产品经理要学习那些东西?
- 安装RHEL 7.5 Server版本(RedHat 7.5 Server) 图文教程
- why do we use process keys
- 2014年国际IT外包10大事件
- python 下载图片到内存卡_python-23:将图片下载到本地
- 《JavaScript忍者秘籍》——2.4 测试套件基础知识
- android移动应用技术,Android移动开发技术与应用.pdf
- 计算机应用有关的论文,关于计算机应用毕业论文范文精选
- 解决前端做excel下载的文件打不开
- Python实现rosbag转换成video
- 敏捷已死:一场程序员们历经20年的失败反叛
热门文章
- 原生Javascript实现表格行上下拖拽
- 2021-05-08 js数组 截取 查找 拼接 二维数组
- java抖音字符视频_抖音流行的字符视频如何实现
- 解除安卓车机禁止安装软件_赫兹app下载安装-赫兹交友软件下载v3.5.7 安卓官方版...
- AI 如何替换图像,替换元素
- 把 umi 的 useModel 抽离到其他项目中使用
- ansys用什么cpu_ansys多cpu并行计算设置
- 一个刚毕业前端的年度总结
- 怎么把visio 2010中的框中的字变成竖排以及如何将visio图插入word
- Windows 本地安全策略和本地组策略