前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Win8下用DOSBox编写汇编语言

Win8下用DOSBox编写汇编语言

作者头像
全栈程序员站长
发布于 2022-07-23 05:53:41
发布于 2022-07-23 05:53:41
78400
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

Win8下用DOSBox编写汇编语言

DOSBox 是一个 DOS模拟程序,可以很方便的移植到其他的平台,因此可以使用它在Win8系统中编写汇编语言。下面提供相关下载链接:

DOSBox下载: http://pan.baidu.com/s/1qWwkss0

汇编工具下载: http://pan.baidu.com/s/1i3taKmT

DOSBox使用指南:

(1)在你的磁盘上新建一个存放自己代码的目录,如:我在E盘下新建一个目录DOS,那么我的工作目录即为:E:\DOS,以后我写的汇编代码就会存放在这个目录下。

(2)选中上面汇编工具的链接(按下Ctrl,鼠标左键单击即可),下载汇编工具。将下载后的压缩包文件解压到刚才你自己刚才新建的工作目录下,如下图:

“确定”之后进入文件目录查看,目录中文件如下图:

我们实际会用到的有以下程序:“debug.exe”“edit.com”“link.exe”“masm.exe”。

(3)下载并安装DOSBox后打开程序,会出现如图所示的两个界面,

我们只需关心红色框选中的界面即可,另外一个界面无需关注,可以最小化但是不能关闭它

(4)在上面红框选中界面依次输入以下命令(命令行不区分大小写):

第一步: MOUNT C E:\DOS(回车)

;注意这里E:\DOS是你之前创建的工作目录,根据自己的目录输入

第二步: C:(回车)

前两步执行结果如下图,

这样我们就进入了类似win7下DOS的环境,在这里就可以编写汇编程序了。

为了避免每一次进入界面都要输入上面的命令(尤其是经常使用的情况下这会是很烦人的事情),我们进行下面的简单配置,使得以后使用时可以直接进入我们想要的命令行:

首先,进入DOSBox的安装目录,像我的目录是下图红线标注的路径:

其次,找到上图红圈中的文件,双击它,会出现一个可编辑文本(如果不能进入,那么你可以右击它 –> 打开方式 –> 记事本)如下图:

然后,在文本中找到[autoexec](可以直接用快捷键Ctrl+F,输入autoexec后回车即可):

见上图第二步,找到autoexec之后在下面输入

MOUNT C E:\DOS

C:

最后再次运行DOSBox之时就可以看到直接进入了图1所示界面

环境准备好了,下面进行正式的代码编写阶段:

(1)在命令行输入edit test.asm(test.asm为文件名,asm是汇编代码的后缀名,test可以自拟),这样在你的工作目录下会新建一个名为test.asm的文件;

(2)进入下图所示界面,这是一个编写代码的Edit环境:

(3)在Edit中可以使用 Alt+F 激活File菜单,然后可以使用上下左右键,选择你要用的功能。

(4)编写代码时要记得每次写完要保存(最好是边写边保存),方法为先按下Alt+F组合键,再用键盘下键选择Save回车即可。

如果编辑之后未保存文件,会出现下图提示框:

选择“Yes”即可。

当然这里也可以新建完文件之后直接退出,在工作目录下用记事本打开文件在记事本中编辑完毕,然后到命令行直接编译运行。(自我感觉这样更方便一点)

下面是代码的编译调试过程:

(1)输入示例代码,如下图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
code segment
        assume cs:code
    start:
        mov ax,5h
        mov bx,6h
        add ax,bx
 
        mov ah,4ch
        int 21h
code ends
    end start

记住在Edit中输入的话,编写完毕要先Save再Exit

(2)回到命令行,输入masm test.asm,显示结果见下图部分一:

图中masm命令生成的是Obj文件,图中test.obj之后可以输入以更改文件名,默认文件名与原文件名相同。一般情况直接回车即可

(3)输入link test.obj (如果改了文件名就要使用更改后的文件名),显示结果如图部分二。link命令生成的是Exe文件

同样,这里也可以更改文件名,但是一般情况直接回车即可,不用更改文件名。

(4)输入debug test.exe(debug命令调试的是可执行程序,也就是exe文件),会出现‘-’提示符,在这里就要输入debug命令了。

在上图可以看到,单步执行之后,首先是AX值为05h,然后是BX值为06h,最后AX的值变为0Bh,为05h和06h的和。

(5)大功告成之后,输入exit退出DOS界面。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126452.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
微服务基础入门
第一点就是我们的项目会很庞大,可能会有几十张表。如果团队有新人加入进来了。她看到这些表的时候也是比较懵逼的,因为她可能也不知道这个表是怎么关联的,有什么含义,数据量怎么怎么样。她都需要花很长时间去理解。所以单体应用可能就会存在这样一个问题,表和表之间到项目越来越大的时候,很多表是废弃的,同时很难去维护。
害恶细君
2022/11/22
3760
微服务基础入门
五分钟了解微服务和springcloud
所谓单体应用就是把所有的功能和模块全部都堆积到一起,这种模式也是传统项目中最经常使用的一种模式,我们熟知的有MVC这种架构模式,在单体应用中这三个模块是全部放在一起的,不会存在网络之间程序相互进行调用的情况。更通俗的理解就是项目只会打包成一个jar包或war包,所有的功能全部在一块,优点就是部署很方便,不用考虑分布式事务和分布式锁的问题,因为他们都跑在一个进程里面,缺点就是1.团队协作不方便,2.很难单独去更新某一个服务,只能进行全量更新部署。
AI码师
2020/11/19
4030
五分钟了解微服务和springcloud
为什么我们放弃了微服务?
最近我们开发团队在开发计划中有一个小停顿,技术部门认为现在是将应用从单体架构迁移到微服务的最佳时机。经过一个月的准备和调查,我们取消了迁移,仍然使用单体模式。对我们而言,微服务不仅帮不上忙,反而会影响到开发计划。我们了解微服务大约是在一年前,但是很惊讶地发现它并不适合我们。
Bug开发工程师
2020/02/14
1.5K0
Java面试——微服务
就目前而言,对于微服务业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。
Java架构师必看
2021/04/25
1.1K0
Github标星67.9k的微服务架构以及架构设计模式笔记,我爱了!
我们都知道微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
烂猪皮
2021/03/16
1.3K0
Github标星67.9k的微服务架构以及架构设计模式笔记,我爱了!
关于使用微服务架构的一些思考
在单体应用时代,我们把所有的业务模块都写在一个系统内,随着新功能的增加,系统的代码库会越来越大,以至于想要知道该在什么地方做修改都很困难。虽然系统内划分了模块,但事实上这些模块的界限可能很难维护,相似的代码随处可见,使得修复bug或实现更加困难。
会跳舞的机器人
2020/06/12
3890
关于使用微服务架构的一些思考
微服务 | 资深架构师解读如何使用微服务架构
备注:本文7000多字,可先收藏在阅读,精心总结,切勿盗权,认真读后,定会受益匪浅
码神联盟
2018/12/26
1.4K0
微服务之SpringCloud基础
SpringCloud微服务基础 微服务架构--SpringCloud 网站架构模式 单点应用/分布式系统面向于服务架构(SOA) /微服务架构 web项目 三层架构 1.控制层 2.业务逻辑层 3.数据访问层 传统项目:代码全部在一个项目中,使用包名来区分 com.controller--控制 com.service--业务逻辑层 com.dao--数据访问层 面向服务架构 公司 (如果互联网公司,如果使用传统架构技术开发代码冲突,拆分项目) 1.分布式开发:将一个大的公司,拆分成n个子项目。 会员系
用户1112962
2018/07/04
8520
如果有一天,你的领导说“我们也搞微服务吧”
微服务被认为是一种理想的架构模式,因此,Steven Lemon 所在公司的领导层决定从单体架构向微服务架构迁移,这让整个开发团队在随后的的日子里苦不堪言,七大现实问题摆在面前无法解决,微服务架构的好处也没有享受到,并发现这不单单是一个技术问题。最终,整个团队决定放弃。
吃草的罗汉
2020/01/15
3330
初步了解SpringCloud微服务架构
针对上述问题,传统的单体结构已经不再适用于复杂度日益渐增的产品,因此一种新的软件架构提供了解决方案 —— 微服务 。
程序员Leo
2023/08/07
1.1K0
初步了解SpringCloud微服务架构
分布式任务调度框架和微服务的区别
分布式大行其下的时代,让大家彻底的抛弃了传统陈旧的技术框架。几乎每一个技术人都知道和掌握了微服务架构,微服务自然有它的美,但是所以技术框架都必须服务于业务,结合自身业务选取甚至自研适合自身的技术框架也是技术人必须首先考虑的事情。分布式作业调度框架,是一个开发迅速、学习简单、轻量级、易扩展、高可用分布式任务调度框架。
程序大视界
2022/09/22
8850
分布式任务调度框架和微服务的区别
SpringCloud——微服务介绍+系统架构
* 全部功能集成在一个工程中,对于大型项目来讲不易开发和维护* 项目模块之间紧密耦合,单点容错率低* 无法针对不同模块进行针对性能优化和水平扩展
用户10196776
2022/11/22
1.1K0
SpringCloud——微服务介绍+系统架构
SpringCloud-微服务项目架构
在当今软件开发领域,微服务架构正成为构建灵活、可伸缩、独立部署的应用的首选,微服务架构作为一种灵活而强大的设计模式,通过将系统拆分为独立的、自治的服务,使得应用更容易维护、扩展和升级。本文将探讨微服务项目架构的关键特征和设计原则,帮助读者更好地理解和应用这一先进的软件设计范式。
Damon小智
2024/02/07
7271
SpringCloud-微服务项目架构
阿里前P8高级架构师讲述微服务架构
微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比较著名的有Dubbo、SpringCloud、thrift 、grpc等。
用户1667431
2018/07/26
1.1K0
阿里前P8高级架构师讲述微服务架构
快速学习-微服务简介
随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。
cwl_java
2020/08/28
6630
快速学习-微服务简介
什么是微服务?
当我们提到微服务,很多人第一反应就是SpringCloud,但是微服务技术并不能与SpringCloud完全划等号:
十八岁讨厌编程
2022/12/10
5940
应用技术架构 —— 微服务架构
在 2010s 进入移动互联网(web3.0)时代,互联网用户规模再次迎来井喷式增长,面向服务的技术架构在服务海量规模用户时显得力不从心。SOA 架构中 ESB 存在单点以及 RPC 中缺少服务的治理能力,ESB 和 RPC 架构都很难满足移动互联网海量用户的要求,微服务开始出现,并成为今天技术架构的主流。
腾讯云 CODING
2022/03/16
1.9K0
应用技术架构 —— 微服务架构
趣谈微服务之点-线-面关系
可能你觉得这很扯吧,开始我也觉得这样描述不够恰当,但是后面思来想去,点-线-面简单且形象生动地说明这三者的概念及关系,也有助于读者理解和消化。
IT技术小咖
2020/04/02
4420
趣谈微服务之点-线-面关系
微服务架构体系
分布式关注的是服务分开部署,也就是如何将单一服务部署,变为多服务部署(垂直+水平拆分)。 微服务关注的是服务拆分力度,即:一个服务要拆分到多大的维度合适
架构之家
2022/07/12
9010
微服务架构体系
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。每个微服务通常聚焦于某一个特定的业务功能或领域,能够通过轻量级的通信协议(如 HTTP/REST、消息队列等)与其他微服务进行交互。
用户7954602
2024/12/07
6540
微服务架构解析:跨越传统架构的技术革命
推荐阅读
相关推荐
微服务基础入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档