汇编-16位汇编环境搭建

news2024/10/5 15:33:07
16位汇编环境

在学习16位汇编时,我选择的环境是在VMware中安装Windows XP虚拟机来学习;因为Windows XP提供了兼容的DOS环境,可以直接运行和调试16位汇编程序;在win10,win11环境中原生不支持直接运行 16 位程序,如果要在win10或者win11中运行和调试16位汇编程序则需要通过如安装DOS环境模拟器等通过一些工具和方法来支持16位汇编程序运行。

①安装Windows XP:使用的虚拟化软件为VM workstation16(VM以及XP镜像有需要的兄弟私聊)

创建虚拟机:

进入创建虚拟机向导,选择典型安装:

选择稍后安装操作系统

接着选择操作系统类型为Windows XP professional

设置虚拟机名称和虚拟机存放位置(不推荐将虚拟机存放在C盘):根据自己需要来

设置虚拟机空间大小

设置虚拟机相关硬件:

导入WindowsXP镜像:(内存、处理器也可以在这个界面上设置,如果需要的话);导入完成后点击右下角的关闭,退出该设置界面。

最后点击完成,即可开启虚拟机进行系统安装。

接着按enter键进行Windows XP系统安装:

F8同意:

无需进行分区,enter安装:

按下enter继续:

等待格式化:

等待Windows安装:

此处跳出安装程序,直接点击下一步:

公司或者单位名称可随便输:

接着直接点击下一步,不进行激活(随着VMware的更新迭代可能出现Windows XP虚拟机激活出现错误无限激活的情况);不激活也能用。

选择否;

设置administrator用户密码,点击下一步;

日期与时间无需设置:

安装网络软件,选择典型设置,下一步;

不加入域,下一步;

等待安装;

安装完成,下一步;

选择不自动更新,下一步;

下一步;

不激活XP系统:

根据自己的需要设置账户:

完成;

出现经典XP系统:

安装VMTools;

②将汇编语言开发工具MASM(有需要的可以私聊我)拖入XP系统中;

至此16位汇编环境搭建完成。

环境测试代码:一个简单的汇编代码,它将从键盘读取一个字符并显示在屏幕上
.MODEL SMALL
.STACK 100H
​
.DATA
CHAR_MSG DB "Enter a character: $"
CHAR_INPUT DB ?
CHAR_OUTPUT DB "You entered: $"
​
.CODE
MAIN PROC
    MOV AX, @DATA
    MOV DS, AX
​
    ; Display message
    MOV AH, 09H
    MOV DX, OFFSET CHAR_MSG
    INT 21H
​
    ; Read character from keyboard
    MOV AH, 01H
    INT 21H
    MOV CHAR_INPUT, AL
​
    ; Display input character
    MOV AH, 09H
    MOV DX, OFFSET CHAR_OUTPUT
    INT 21H
​
    ; Display input character
    MOV AH, 02H
    MOV DL, CHAR_INPUT
    INT 21H
​
    ; Exit program
    MOV AH, 4CH
    INT 21H
MAIN ENDP
​
END MAIN

在MASM文件夹中创建一个.txt文件,并将上述代码复制进该.txt文件中;

修改.txt文件后缀名为.asm:

win+r,输入cmd进入命令行窗口,接着进入文件所在目录(不熟悉的话直接从文件资源管理器中复制即可)

目录跳转:

cd C:\Documents and Settings\wolven\桌面\MASM 6.x\MASM 6.x

接着在cmd窗口中使用ML.exe程序将汇编代码汇编成目标文件(.obj),并链接生成可执行文件(.exe);

ML.exe 1.asm

直接运行该可执行文件,查看功能;

功能正常执行,汇编环境测试完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为鸿蒙认证培训 | 讯方技术成为首批鸿蒙原生应用开发及培训服务商

5月20日,鸿蒙原生应用合作交流推介会-深圳站在深圳中洲万豪酒店隆重举行。讯方技术作为鸿蒙钻石服务商受邀参与此次活动,活动由讯方技术总裁刘国锋、执行副总裁刘铭皓、教学资源部部长张俊豪共同出席。 本次活动由深圳政府指导,鸿蒙生态官方…

微服务项目收获和总结---第4天(文章审核和保存)

文章审核以及APP端保存文章 业务流程: App端保存接口: 数据库表详情 文章的基本信息表:id,标题,作者id,频道id...... 文章的权限/配置表:存储文章是否可以评论,是否上架&#xff…

eclipse配置JDK和Tomcat

eclipse配置JDK jdk配置 配置JDK: 首先,确保JDK已经安装并配置了环境变量。这包括设置JAVA_HOME环境变量,指向JDK的安装目录,以及更新CLASSPATH和PATH环境变量以包含JDK的bin目录。 在Eclipse中,通过Window > Pre…

【设计模式深度剖析】【4】【创建型】【建造者模式】| 类比选购汽车的过程,加深理解

👈️上一篇:抽象工厂模式 | 下一篇:原型模式👉️ 目录 建造者模式概览定义英文原话直译如何理解呢?建造者模式将对象的建造过程给抽象出来了类比选购汽车 4个角色UML类图1. 抽象建造者(Builder)角色2. 具体建造者…

02.爬虫---HTTP基本原理

02.HTTP基本原理 1.URI 和 URL 的区别2.HTTP 和 HTTPS 的区别3.请求过程 1.URI 和 URL 的区别 URL(Uniform Resource Locator)即-统一资源定位符 URL是用来定位和访问互联网上资源的独特标识,它包括了资源的位置(如IP地址或域名&a…

Docker-制作镜像的两种方式=》基于容器制作基于Dockerfile制作

本文主要是基于Docker如何制作一个Java镜像,而一个Java镜像想要运行需要系统环境,JDK。所以我们要先有一个系统环境,本文使用的是centos7,JDK选择版本是8,而我使用的Java程序是一个简易的springBoot项目,你…

详细分析Vue按钮间距的优化方式(附Demo)

目录 前言1. 按钮间距2. 垂直间距 前言 正常间距如下&#xff1a; 其Demo如下&#xff1a; <el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"openFor…

Node.js —— 前后端的身份认证 之用 express 实现 JWT 身份认证

JWT的认识 什么是 JWT JWT&#xff08;英文全称&#xff1a;JSON Web Token&#xff09;是目前最流行的跨域认证解决方案。 JWT 的工作原理 总结&#xff1a;用户的信息通过 Token 字符串的形式&#xff0c;保存在客户端浏览器中。服务器通过还原 Token 字符串的形式来认证用…

Mysql注入详细讲解

特殊字符 0x3a:0x7e~0x23# 注入基础 联合查询注入(union) :::tips 页面将SQL查询内容显示出来&#xff0c;即为有回显&#xff0c;可以尝试联合查询注入 利用关键字union &#xff0c;union all 拼接恶意SQL语句 ::: 注入流程 有报错&#xff0c;可以利用报错。如&#xff…

[datawhale202405]从零手搓大模型实战:TinyAgent

结论速递 TinyAgent项目实现了一个简单的Agent智能体&#xff0c;主要是实现了ReAct策略&#xff08;推理调用工具的能力&#xff09;&#xff0c;及封装了一个Tool。 项目实现有一定的疏漏。为了正确运行代码&#xff0c;本次对代码Agent部分进行了简单修改&#xff08;完善…

VBA语言専攻每周通知20240524

通知20240524 各位学员∶本周MF系列VBA技术资料增加611-615讲&#xff0c;T3学员看到通知后请免费领取,领取时间5月24日晚上18:00-5月26日晚上18:00。本次增加内容&#xff1a; MF611:用InputBox录入日期 MF612:信息提示10秒后关自动关闭 MF613:只是信息提示10秒 MF614:显…

Zynq-Linux移植学习笔记之68- 国产ZYNQ添加用户自定义版本信息

1、背景介绍 在使用复旦微zynq时&#xff0c;有时候虽然针对uboot源码进行了改动&#xff0c;但由于uboot基线版本只有一个&#xff08;2018-07-fmsh&#xff09;&#xff0c;导致无法区分版本信息&#xff0c;虽然可以通过编译时间来区分&#xff0c;但没有版本号直观。内核也…

【Numpy】深入解析numpy中的ravel方法

NumPy中的ravel方法&#xff1a;一维化数组的艺术 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简…

香港服务器负载过高的原因和应对办法

保持网站正常运行看似简单&#xff0c;但事实上&#xff0c;有许多问题会影响网站和应用程序的性能&#xff0c;并可能导致停机。其中一个问题就是服务器过载。而香港服务器作为一种常见的服务器类型&#xff0c;有时会出现负载过高的情况。为了帮助您确保在香港服务器过载不会…

AI应用案例:电能量异常分析智能诊断系统

窃电和计量装置故障造成漏收、少收电费使电力系统利益受损。一般情况主要通过定期巡检、定期校验电表、用户举报窃电等手段来发现窃电或计量装置故障。对人的依赖性太强&#xff0c;抓窃查漏的目标不明确。利用电力系统中逐步积累下来的海量真实数据&#xff0c;采用数据挖掘技…

C++多生产者,多消费者模型

C11实现多生产者&#xff0c;多消费者模型 在C标准库中实现多生产者多消费者模型&#xff0c;可以使用std::thread、std::queue、互斥锁(std::mutex)、条件变量(std::condition_variable)等组件。下面是一个简单的示例&#xff0c;展示如何创建多生产者和多消费者模型&#xf…

构建智能化的语言培训教育技术架构:挑战与机遇

随着全球化的发展和人们对语言学习需求的增长&#xff0c;语言培训教育行业正面临着越来越多的挑战和机遇。在这个背景下&#xff0c;构建智能化的语言培训教育技术架构成为提升服务质量和效率的重要手段。本文将探讨语言培训教育行业的技术架构设计与实践。 一、智能化教学平台…

Jupyter Notebook的三个使用场景:网页端、PyCharm专业版和VScode

说明&#xff0c;以下都是我个人的摸索感悟和总结&#xff0c;自己理解和猜测的是这样&#xff0c;欢迎指正。 Jupyter Notebook的三个常用使用地方&#xff08;网页端、PyCharm专业版、VScode&#xff09;&#xff1a; 总结一句话&#xff1a;网页端、PyCharm中和VScode中三…

Python使用multiprocessing实现多进程

大家好&#xff0c;当我们工作中涉及到处理大量数据、并行计算或并发任务时&#xff0c;Python的multiprocessing模块是一个强大而实用的工具。通过它&#xff0c;我们可以轻松地利用多核处理器的优势&#xff0c;将任务分配给多个进程并同时执行&#xff0c;从而提高程序的性能…

ROCm上情感分析:使用循环神经网络

15.2. 情感分析&#xff1a;使用循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)class BiRNN(nn.Module):…