配置8086汇编环境
终于放假了,花了大约一星期的时间来学习王爽老师的《汇编语言》一书,以此提升自己对底层知识的理解,当然,阅读的过程是择重进行的,一些内容不敢说完全掌握。
由于王爽老师的这本书时间比较久了,本文就介绍如何使用dosbox配置8086汇编学习环境
本人的环境:maxOS Catalina 10.15.7
当然了如果是学习汇编现有机器的性能是绝对够的
下载Dosbox
首先搜索dosbox,去官网下一个匹配版本:
https://www.dosbox.com/
由于是dos系统模拟器,所以只有11MB,安装过程可以说没有难点。
修改配置文件
安装完成后,其实就可以启动Dosbox了,不过此时模拟器还没有找到本地的硬盘,显示Z:
我们需要把想要挂载的位置挂载到dosbox上面
比如:~/assembly目录挂载到C盘,这样我们就可以使用了
dos系统下挂载命令如下:
> mount c /Users/dzzhyk/assembly
> c:
这样就把本地的/Users/dzzhyk/assembly目录挂载到了dosbox上的C盘,就可以在dosbox模拟器里面访问本地内容了。
每次启动dosbox都需要执行这两行代码,比较麻烦,因此将这两句话添加到dosbox的启动命令里面,Mac上的具体方法如下:
找到 /Users/dzzhyk/Library/Preferences/DOSBox 0.74-3-3 Preferences 文件,在文件最后添加如下内容:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c ~/assembly
c:
这样就不用每次都挂载目录到C盘了
获取8086汇编工具
8086汇编工具主要有2个:编译器masm和链接器link,这就是汇编语言从源代码到运行所需要的全部内容。
当然,为了学习方便,还需要一个调试器debug.exe,如果想体验在dos系统下编程的话,还有一个编辑器软件edit.com供你选择,以上共计4件工具,足够我们学习8086汇编知识了。
这些工具的下载,网上各处都是,在此不赘述,也可以使用博主本人提供的下载:
https://download.csdn.net/download/weixin_43826242/14504821
需要知道的dos命令
既然我们要使用dos系统来学习8086汇编,所以需要掌握一点dos系统的基本命令
博主在这里总结一下自己常用到的命令:
命令 | 作用 |
---|---|
dir | 列出目录内容,类似于ls |
del | 删除内容,类似于rm,支持通配符 |
cd | 切换目录 |
md | 建立文件夹 |
rd | 删除文件夹 |
cls | 清屏 |
copy | 复制内容 |
对于Dos命令,大家只要参考记住就好,毕竟重点不是学习dos系统的使用。
有用的Dosbox快捷键
下面是本人学习过程中用到的的dosbox快捷键,熟练使用会比较方便:
快捷键 | 作用 |
---|---|
Alt + Enter | 全屏dosbox,复古的感觉让人年轻了20岁 |
Ctrl + F4 | 刷新dosbox挂载的本地目录,用于同步更新(常用) |
Ctrl + F10 | 捕捉/释放鼠标 |
尝试第一个汇编程序
最后,一起尝试一个简单的汇编程序生命过程,以此验证环境配置:
编辑汇编源文件
无论是使用edit,还是自己新建文件也好,创建测试汇编文件test.asm
内容如下:
assume cs:code
code segment
start: mov ax,01234Hmov bx,0abcdHadd ax,bx
code ends
end start
编译汇编asm文件
使用编译器masm.exe编译刚创建的汇编文件:
> masm.exe test.asm;
注意,最后有个分号,告诉编译器不产生中间文件,执行快速编译,编译结果如下:
链接汇编obj对象
使用链接器连接生成的OBJ对象:
> link.exe test.obj;
注意,最后有个分号,告诉链接器不产生中间文件,链接完成后就生成了可执行的exe文件:
这里会警告没有设置栈段,对于现在无须理会
使用debug调试exe
执行如下命令,使用debug调试一个汇编程序:
> debug.exe test.exe
回车之后就会进入debug里面,开始对test.exe进行调试:
这里输入r,展示寄存器状态:
可以看到,当前指令停在了我们编写的第一条mov指令上面
输入t单步执行指令,观察AX寄存器变化,可以看到指令正确执行:
继续使用t执行指令,最终得到add指令结果,存放在AX寄存器中:
使用q,退出debug
到此,成功运行了一个简单的汇编程序,也证明我们的8086汇编环境搭建成功了。
常用的debug命令
博主本人总结的debug常用命令:
指令 | 作用 | 实例 |
---|---|---|
d | 查看内存单元内容 | -d 1000:0 |
r | 查看各个寄存器的内容,修改寄存器的值 | -r ax 1000 |
e | 修改内存的值 | -e 1000:0 41 42 43 44 45 |
u | 以汇编指令的形式查看内存区域 | -e 1000:0 |
t | 执行CS:IP指向的指令 | -t |
a | 以汇编指令的形式填充内存区域 | -a 1000:0 |
p | 执行通过当前程序段,可以跳出循环 | -p |
q | 退出debug.exe | -q |
g | 执行到某一个内存位置的指令处 | -g 0016 |
配置8086汇编环境相关推荐
- VScode配置8086汇编环境
目录 0.感慨 1.VScode的安装 2.下载MASM/TASM插件 3.测试汇编环境 新建文件 汇编文件配置 汇编代码的运行 0.感慨 搭配一个简单些的环境,对于我们汇编的学习很有帮助,在这里又不 ...
- linux8086汇编环境配置,LINUX下面进行8086汇编
LINUX下面进行8086汇编 我想问的是:LINUX下面使用什么编辑器来编辑汇编源代码?VIM? 编辑完毕之后使用什么来编译和链接? 链接完毕后如何运行? 这里举个例子 比如LINUX下面怎么写C程 ...
- 配置汇编环境(王爽)
配置汇编环境(王爽) 学习王爽的汇编预言时需要用到Debug查看各个寄存器的内容,但是我的是Windos10操作系统没办法在命令行下直接执行Debug命令,后来查找到需要可以通过安装DOSBox来实现 ...
- 嵌入式linux运行dosbox,Ubuntu18.04/Linux下安装DosBox进行8086汇编
在windowsXP等32位系统会自带有debug等汇编调试工具,但是到之后的win7等64位系统之后移除了这个功能,其他系统诸如linux,Mac OS等等则没有,学习汇编,需要用到一些工具及软件, ...
- 8086汇编实验(十题可用)
一.前言 1.这学期学8086汇编,所做的四次实验十个题目(前8手写,后2摘录后修改,时间久远未找到原文链接,愿理解),亲测可用,码住,希望能对将来的读者有所帮助. 2.有的需要在debug中根据段地 ...
- window10下搭建汇编环境(软件+资料)
window10下搭建汇编环境 0x00 软件和资料 软件包含: dosbox debug masm link exe2bin(这个暂时可以忽略) 资料包含: 王爽老师的<汇编语言>第二版 ...
- c++ 模板类实现堆栈实验报告_编译原理——小型类C编译器的设计和实现(生成8086汇编代码)之1:问题定义以及总体功能...
前面花了两篇文章来介绍词法分析和语法分析,接下来才是比较有意思的部分--一个小型类C编译器的设计和实现(其实是编译原理的课程设计啦!~)我用的是python2.7.13+PyQt来做的...事实上,正 ...
- DOSBOX搭建汇编环境
DOSBOX搭建汇编环境 下载安装(自行寻找,很多百度网盘有) 按转完成后: 这两个点一个运行即可(区别是前者会打开两个console窗体) 本地安装盘与虚拟c盘挂载 点击之后,进入了txt文本编辑界 ...
- 【汇编笔记】win10如何搭建汇编环境(dosbox)
文章目录 前言 一.下载工具包 二.开始搭建 1.安装DosBox 2.配置工作目录 总结 参考文章 前言 网上教程多且繁杂,且看我一文教会你如何搭建汇编环境. 一.下载工具包 DosBox工具包下载 ...
- 《在Win10下使用DOSBox+MASM32工具包搭建汇编环境》
最近学习汇编需要搭建汇编环境,无奈使用的是Win10平台,搭建过程踩了一些坑,遂将完整的搭建过程在此mark一下,也希望能帮助到需要的人儿~~ 学习汇编其实直接在Win10上搭建个Win XP的虚拟机 ...
最新文章
- 2016年软考网络工程师考试命题范围变化之网络设备配置与复习技巧
- mybatis学习(十一)——springmvc++spring+mybatis整合
- mysql 命令行执行存储过程_mysql 命令行执行存储过程
- vc只能调用matlab子函数,Vc++6.0调用matlab的数学库函数
- FFmpeg之获取音视频信息(二十八)
- Ubuntu下远程访问MySQL数据库
- ajax 循环php数组,使用Jquery,AJAX,PHP和数组进行实时更新
- 基于Html5组态软件的竞品分析
- CSS3浏览器前缀,背景大小,位置,渐变以及过渡效果
- UE4镜头抖动CameraShake
- 转胡一虎Blog:父亲是我生命中的永恒
- 2021-06-27 cocos2d-x lua 4.0环境搭建
- 鸢尾花决策树分类及可视化
- 025 导数的四则求导法则之u+v、uv、u/v求导
- windows路由表完全掌握(内容:路由表解析,读懂路由表)
- 桌面上的IE图标不见了——解决方法
- 【python绘图】——删除多余的图例【图示说明】
- MS6212可替换TI PCA9306、SGM4553用于开漏模式和推拉模式的 2bit 双向电平转换器
- Ubuntu18.04(Bionic)安装CM6.3.1+CDH6.3.2
- 华硕n54u mysql_改版华硕[N14U N54U]5G 2G的7620老毛子Padavan固件开启frp教程