win10 下搭建汇编语言环境及hello world程序

栏目: 编程语言 · 发布时间: 5年前

内容简介:这学期汇编已经学了一大半了,可到现在为止只会一堆寄存器的名字,指令和各种寻址方式,这个语言到底是什么基本毫无概念。上次潘老师推荐了清华大学出版社王爽编的《汇编语言》这本书,在第一章就开始用汇编指令编程,内容讲得非常详细完善,解决了很多学习上的困惑。网上直接搜索下载Debug,解压后如下

前言

这学期汇编已经学了一大半了,可到现在为止只会一堆寄存器的名字,指令和各种寻址方式,这个语言到底是什么基本毫无概念。上次潘老师推荐了清华大学出版社王爽编的《汇编语言》这本书,在第一章就开始用汇编指令编程,内容讲得非常详细完善,解决了很多学习上的困惑。

一、准备环境

1. 准备Debug

网上直接搜索下载Debug,解压后如下

win10 下搭建汇编语言环境及hello world程序

在命令行运行DEBUG.EXE会提示如下信息:

win10 下搭建汇编语言环境及hello world程序

原因:win7以上64位系统是不能通过命令行进入debug的,但是可以通过虚拟机或者dosBox来解决这个问题。

2. 准备DOSBox

win10 下搭建汇编语言环境及hello world程序

DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、 Linux 、Mac OS X、BeOS 、palmOS、Android 、webOS、os/2等系统中运行。

吐个槽:这个软件最初的作用并不是为了汇编语言的学习,而是为了玩以前dos环境下的各种游戏,甚至现在还有人基于dosBox开发此类游戏

下载安装打开后界面如下:

win10 下搭建汇编语言环境及hello world程序

每次开始都需要挂载一下磁盘,我的Debug.exe在E://software/Debug下,则将我的计算机的E盘挂载到dosBox的C盘

win10 下搭建汇编语言环境及hello world程序

mount c E:\

然后进入dosBox的c盘,即我的计算机的E盘下的Debug文件夹,运行Debug.exe

win10 下搭建汇编语言环境及hello world程序

c:
.\SOFTWA~1\DEBUG\DEBUG.EXE

此时已经进入debug程序,使用r指令查看cup寄存器内容

win10 下搭建汇编语言环境及hello world程序

二、hello word

1、准备一份helloWorld程序源代码

来源: 汇编语言下的Hello world

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文件下

win10 下搭建汇编语言环境及hello world程序

2. 编译

还是在Debug文件下,运行masm.exe

win10 下搭建汇编语言环境及hello world程序

执行完以后会生成一个TEST.OBJ文件

win10 下搭建汇编语言环境及hello world程序

  • source filename:源文件的路径与名称,如果是在本目录下,直接输入文件名
  • Object fileName: 目标文件的路径与名称,默认直接enter

剩下source listening(列表文件)和Cross-reference(交叉引用文件)是从源文件编译为目标文件过程中产生的中间结果,可以直接enter不生成。

上述过程的示意图如下:

win10 下搭建汇编语言环境及hello world程序

也可以使用更为简洁的形式编译,效果同上:

win10 下搭建汇编语言环境及hello world程序

masm test;

3. 连接

操作与上面类似,执行LINK.EXE程序

win10 下搭建汇编语言环境及hello world程序

  • Object Modules:输入上一步生成的目标文件(.obj)
  • Run File: 可执行文件,连接后生成的exe文件,默认enter
  • List File: 映像文件,是连接过程中将目标文件连接为可执行文件过程中产生的中间文件,同样地,直接enter忽略
  • Libraries: 库文件,如果一个程序调用了某一个库的子程序,就需要在连接的时候,将这个库文件与目标文件连接在一起,生成可执行文件,但是我准备的这段程序没有调用任何子程序,所以直接enter忽略。

连接结束后输出的最后一行 Link: warning L4021: no stack sement, 没有栈段 ,可以不用理会。

上述过程示意图:

win10 下搭建汇编语言环境及hello world程序

简化的连接:

win10 下搭建汇编语言环境及hello world程序

link test;

4. 执行exe

还是在debug目录下,使用dos执行test.exe文件

win10 下搭建汇编语言环境及hello world程序

即可看到 helloWorld!

三、 错误总结

  1. unable to open file: XX

    win10 下搭建汇编语言环境及hello world程序

    可能原因:

    masm C:\STUDY\TEST
    文件名长度最长为8
    
  2. server Errors

    win10 下搭建汇编语言环境及hello world程序

    可能原因:源文件存在语法错误,如上,源文件中使用了未定义的data

总结

  1. 通过这次学习,对编译-连接-运行,源文件,目标文件,可执行文件这些以前模糊的概念有了比较清晰的认识。
  2. 不管学什么语言,如果不上手跑一段代码,干看书,根本学不会。
  3. 选择一本合适的书学习太重要了,有时候学不会一门课程,书占了很大因素。

以上所述就是小编给大家介绍的《win10 下搭建汇编语言环境及hello world程序》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

R语言编程艺术

R语言编程艺术

(美)Norman Matloff / 陈堰平、邱怡轩、潘岚锋 等 / 机械工业出版社 / 2013-5 / 69.00

【编辑推荐】 这本书涵盖了R语言编程的诸多方面,尤其在面向对象编程、程序调试、提升程序运行速度以及并行计算等方面,填补了同类图书的空白。关于程序调试的章节更是作者多年经验的总结。不管是初学者还是有一定编程经验的读者,阅读这本书都会有所收获。 ——统计之都 【内容简介】 R语言是世界上最流行的用于数据处理和统计分析的脚本语言。考古学家用它来跟踪古代文明的传播,医药公司用它来探......一起来看看 《R语言编程艺术》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具