4.1 用源文件写汇编代码

news2024/9/24 17:15:47

汇编语言

1. 源程序

1.1 伪指令

  • 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行
  • 伪指令没有对应的机器指令,最终不被CPU所执行
  • 伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作

1.2 段(segment)

  • 一个段必须有一个名称来标识
  • 使用格式为:
段名 segment
.
.
.
段名 ends
  • 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当做栈空间来使用
  • 一个源程序中所有将被计算机处理的信息:指令、数据、栈,被划分到了不同的段中

1.3 end

  • end是一个汇编程序的结束标记
  • 编译器在编译汇编程序的过程中,碰到了end,就结束对源程序的编译
  • 注意不要搞混end和ends,ends是和segment成对使用的,标记一个段的结束,ends的含义可以理解为end segment
  • 我们这里的end的作用是标记整个程序的结束

1.4 assume

  • 这条伪指令的含义为“假设”。它假设某一段寄存器和程序中的某一个用segment…ends定义的段相关联
  • 以后记着用assume将有特定用途的段和相关的段寄存器关联起来即可

2. 用源文件写汇编代码

2.1 编写汇编代码

  • 首先在masm文件夹内创建一个txt文件,并且编写汇编代码
assume cs:codesg

codesg segment
    mov ax,0123h
    mov bx,0456h
    add ax,bx
    add ax,ax
    
    mov ax,4c00h
    int 21h  //退出程序代码
    
codesg ends  //代表段结束

end  //整个程序结束

image.png

2.2 更改文件后缀

  • 把txt后缀改为asm,以便编译器能够识别到

image.png

2.3 编译文件

  • 打开DOSBox,输入dir,然后再输入masm 文件名,编译该文件并且生成obj文件
mount c d:masm
c:
dir
masm
code




image.png

image.png

image.png

  • 生成.obj文件,完成编译

2.4 链接文件

link
code



image.png

image.png

  • 生成.exe文件,完成链接

2.5 执行文件

  • 在debug下执行
debug code.exe  //注意这里要加文件后缀名
r
t
t
t

image.png

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

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

相关文章

【链表】Leetcode 19. 删除链表的倒数第 N 个结点【中等】

删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5] 解题思路 1、使用快慢指针找到要删除节点的前一个节点。2、删…

国际数字影像产业园:专注于数字影像领域的成都数字产业园

国际数字影像产业园(数媒大厦),作为一个专注于数字影像产业的成都数字产业园,其服务优势体现在三大生态服务体系:公共服务、公务服务、产业服务。这三大服务体系不仅共享化、数字化、产业化,更致力于为企业…

带你玩透浮动float布局,详解(一)

文章目录 一 认识浮动二 浮动的规则浮动的规则一代码展示 浮动规则二代码展示 浮动规则四代码展示代码展示 浮动规则五 空隙的解决方案代码展示:第一种方式 放在一行第二种解决方式(不推荐使用这种方式)第三种方式采用浮动(推荐,统…

用户中心项目(登录 + 用户管理功能后端)

文章目录 1.登录功能-后端1.思路分析2.完成对用户名和密码的校验1.com/sun/usercenter/service/UserService.java 添加方法2.com/sun/usercenter/service/impl/UserServiceImpl.java 添加方法3.com/sun/usercenter/service/impl/UserServiceImpl.java 新增属性 3.记录用户的登录…

SpringBoot如何写好单元测试

🐓序言 Spring中的单元测试非常方便,可以很方便地对Spring Bean进行测试,包括Controller、Service和Repository等Spring Bean进行测试,确保它们的功能正常,并且不会因为应用的其他变化而出现问题。 🐓单元测…

借教室与差分

原题 题目描述 在大学期间,经常需要租借教室。 大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。 教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。  面对海量租借教室的信息&…

Wmware安装Linux(centerOS、Ubuntu版本)

目录 1、安装wmware 2、center版本 3、ubuntu版本 1、安装wmware 此处不做展开。 2、center版本 需要提前下载的文件: 无图形化界面https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso 有图形化界面https://mirrors.a…

nacos 更新报错“发布失败。请检查参数是否正确”

文章目录 🔊博主介绍🥤本文内容起因解决方案结果 📢文章总结📥博主目标 🔊博主介绍 🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华…

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

Lenze伦茨8400变频器E84A L-force Drives 操作使用说明

深度强化学习03价值学习

Q*类似于先知,知道动作的后果 价值学习是得到一个近似的价值函数

ubuntu20.04搭建rtmp视频服务

1.安装软件 sudo apt-get install ffmpeg sudo apt-get install nginx sudo apt-get install libnginx-mod-rtmp 2.nginx配置 修改/etc/nginx/nginx.conf文件,在末尾添加: rtmp {server {listen 1935;application live {live on;}} } 3.视频测试 本…

Linux系统Docker安装Drupal并配置数据库实现公网远程访问本地站点

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习…

Spring MVC(二)-过滤器与拦截器

过滤器和拦截器在职责和使用场景上存在一些差异。 过滤器 拦截器 作用 对请求进行预处理和后处理。例如过滤请求参数、设置字符编码。 拦截用户请求并进行相应处理。例如权限验证、用户登陆检查等。 工作级别 Servlet容器级别,是Tomcat服务器创建的对象。可以…

Cannot run program “C:\Program Files\Java\jdk-17\bin\java.exe“

错误提示:Cannot run program “C:\Program Files\Java\jdk-17\bin\java.exe” 解决办法: 检查环境变量是否配置是否正确检查项目环境是否正确,可能会出现多个JDK版本,将不需要的删除

Flume入门概述及安装部署

目录 一、Flume概述1.1 Flume定义1.2 Flume基础架构 二、Flume安装部署 一、Flume概述 1.1 Flume定义 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 1.2 Flume基础…

Nebula Graph-03-NebulaGraph Studio-可视化web工具安装和使用

前言 如果未安装NebulaGraph,可以去看Nebula Graph-01-Nebula Graph简介和安装以及客户端连接 NebulaGraph Studio-可视化web工具安装 1:什么是 NebulaGraph Studio NebulaGraph Studio(简称 Studio)是一款可以通过 Web 访问的…

一篇文章教会你如何用 Axure 画原型图

原型图对于做出更好的 UI 设计决策非常重要。然而,选择合适的原型工具并不容易。我们需要仔细考虑成本、功能、与其他设计工具的集成、学习曲线、协作功能和用户测试方法,本文将分析 Axure 的原型设计工具。 1、为何使用 Axure 绘制原型图? …

【喜讯】同邦集团正式成为广州数据交易所会员!高效开展数据管理。

近日,同邦信息科技顺利通过广州数据交易所数商会员资格审查,正式加入广州数据交易所数商生态。 据悉,2022年9月,广州数据交易所正式挂牌成立。广州数据交易所采用“一所多基地多平台”的体系架构进行运营,探索在条件成…

CSA发布| 科技创新和云计算趋势中的网络安全因素

关注国际云安全联盟公众号,回复关键词 “云安全”,即可获取报告完整版 随着云计算的高速发展,如何在云环境中保障数据和应用的安全性日益成为企业共同的关注点,企业也正在考虑多云和混合云策略。云原生技术如容器、微服务和无服务…

Docker 中 Nginx 反向代理

本文主角:Nginx Proxy Manager 。 使用docker安装Nginx Proxy Manager。 1、找到C:\Windows\System32\drivers\etc下的hosts文件,添加 “域名 IP"即可。 使用vscode编辑文件,保存时会提示用管理员权限保存即可。 2、Nginx Proxy Mana…