汇编语言作业(三)

news2024/11/15 23:33:57

目录

一、实验目的

二、实验内容

三、实验步骤以及结果

1、阅读第4页ppt 第一个汇编程序 ex1.asm 并编写编译执行成功后,要求改写,使其输出字符ABC,如下图所示。

(1)编译产生目标文件

(2)链接,产生可执行文件

(3)现在要实现第一题。

2、回答下列问题

1)该程序定义了几个段?

2)assume 伪指令的作用是什么?

3)第18行 end  begin  是什么意思?

4)利用debug工具,查看数据段内容

5) 试试将第2行  改为

mess db ‘hello$World!’,0DH, 0AH, 24H 和

           mess db ‘hello World!’,24h

 观察执行结果有什么不同?0DH, 0AH, 24H 分别为什么字符的ascii码,有何作用?

6)改写,在hello,world 后要再要输出一行英文自我介绍 该如何做到?请改成程序并运行。

四、实验结果与分析

五、实验总结


  • 一、实验目的

  1. 熟悉汇编程序的组成结构
  2. 掌握汇编语言的编写、调试、运行的整个过程
  • 二、实验内容

1、阅读第4页ppt 第一个汇编程序 ex1.asm 并编写编译执行成功后,要求改写,使其输出字符ABC,如下图所示

*选作,改成自己的学号输出

2. 阅读并执行下方程序,并回答如下问题:

1) 该程序定义了几个段?

2) assume 伪指令的作用是什么?

3) 第18行 end  begin  是什么意思?

4) 利用debug工具,查看数据段内容

5) 试试将第2行  改为

   mess db ‘hello$World!’,0DH, 0AH, 24H

           mess db ‘hello World!’,24h

 观察执行结果有什么不同?0DH, 0AH, 24H 分别为什么字符的ascii码,有何作用?

6) 改写,在hello,world 后要再要输出一行英文自我介绍 该如何做到?请改成程序并运行。

  • 三、实验步骤以及结果

  • 1、阅读第4页ppt 第一个汇编程序 ex1.asm 并编写编译执行成功后,要求改写,使其输出字符ABC,如下图所示。

(1)编译产生目标文件

上述问题是因为我把filename存为了txt文件,解决方法:打开记事本,点击左上角文件,点击另存为。

修改文件名为filename.asm文件即可。似乎修不修改保存类型无关紧要。

最终结果:

现在对了:

(2)链接,产生可执行文件

原来的程序的结果

下面把end start2改为end start。但结果不符合预期。

理论依据:Int 21h为中断,mov ah,4ch为返回主函数,mov ah,2为所在函数输出一个字符。

推测仅修改.asm文件还不够,上面的操作还要再执行一遍。

的确如此。

(3)现在要实现第一题。

代码修改如下:

输出结果如下:

顺利完成。

注:如果.asm文件有错误,是不会生成.obj文件的,必须改正所有错误后才能往下进行,不然输出还是原先的.obj文件的结果或者不输出。

2、回答下列问题

最终结果如下:

特别提醒:记事本害人,18行的程序我敲错了两个地方,改了半个小时。

1)该程序定义了几个段?

3个段,分别为DSEG,SSEG,CSEG。

2)assume 伪指令的作用是什么?

明确段和段寄存器之间的关系。

3)第18行 end  begin  是什么意思?

可执行程序从begin第一次出现的位置开始。

4)利用debug工具,查看数据段内容

5) 试试将第2行  改为

mess db ‘hello$World!’,0DH, 0AH, 24H

           mess db ‘hello World!’,24h

 观察执行结果有什么不同?0DH, 0AH, 24H 分别为什么字符的ascii码,有何作用?

原结果。

到o被截断了。

缺换行。

0DH为回车键,0AH为换行键,24H为$,有截断的作用。

下面是回车与换行的区别——引自文心一言

回车和换行是两个不同的概念,虽然在现代计算机中,它们经常一起使用以实现文本行的结束,但它们在起源和功能上有所区别。

回车(Carriage Return,CR,'\r')和换行(Line Feed,LF,'\n')的概念起源于早期的打字机。回车是指将打印头(即打印字符的位置)移动到当前行的最左端,这样如果继续打印,新的字符会覆盖当前行的起始位置。而换行是指将纸张向下移动一行,以便在下一行开始新的打印。

在计算机系统中,这两个概念也有所不同。在Unix和Linux系统中,行尾通常只包含换行符(LF)。而在Windows系统中,行尾则由回车符(CR)和换行符(LF)两个字符组成。这种差异可能会导致在不同系统间打开文件时,文本的格式出现差异。例如,Unix/Mac系统下的文件在Windows里打开的话,所有文字可能会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

在文本编辑器中,回车键(Enter键)通常被用来换行,但在表格中,它会导致光标跳到下一行的第一个单元格。而换行键(通常是Shift+Enter组合键)则只在文本编辑器中用来换行,不能在表格中使用。

6)改写,在hello,world 后要再要输出一行英文自我介绍 该如何做到?请改成程序并运行。

输出结果:

程序如下:

DSEG SEGMENT
MESS  DB 'Hello,World!' ,0DH,0AH
      DB 'My name is Zhang Jingsai.',24H
DSEG  ENDS
SSEG  SEGMENT PARA STACK
           DW 256 DUP(?)
SSEG  ENDS

CSEG  SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN: MOV AX,DSEG
        MOV DS,AX
        MOV DX,OFFSET MESS
        MOV AH,9
        INT 21H
        MOV AH,4CH
        INT 21H
CSEG  ENDS
        END BEGIN      

注,第二三行也可以像这样合并为一行:

理论依据:P128例4.8指出,操作数也可以是字符串;同时每个操作数之间要用逗号隔开。

  • 四、实验结果与分析

与第三部分合并。

  • 五、实验总结

  1. 本次实验,目的基本完成。(除了选做)
  2. 成功运用记事本编辑位操作,并更深刻地认识到了从代码到可执行程序的全过程,当时学C语言时不明白,现在有点明白了。不过下次要用VScode写代码了,记事本害人。
  3. 明白了换行与回车的区别,终于明白两者是不一样的东西,不过是以前在Windous系统上用惯了,误认为回车就是换行。讲C语言、C++时老师都讲过,可惜没认真听。
  4. 没什么了,加油!

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

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

相关文章

Python-VBA函数之旅-hex函数

目录 一、hex函数常见的应用场景: 二、hex函数使用注意事项: 1、hex函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、hex函数常见的应用场景:…

【STM32+HAL+Proteus】系列学习教程---串口USART(DMA 方式)定长,不定长收发。

实现目标 1、利用UART实现上位机PC与下位机开发板之间的数据通信 2、学会STM32CubeMX软件关于UART的DMA模式配置 3、具体目标:1、实现串口定长收发数据通信;2、串口不定长收发数据通信。 一、DMA简介 1、什么是DMA? DMA(Direct Memory …

基于YOLOV5 的ROS2功能包——快速实现目标识别功能

项目链接: yolov5_ros2 运行结果如下:实时显示识别结果 一、下载功能包并运行 1. 安装依赖 首先,确保您已经更新了系统并且安装了必要的依赖。以下是一些安装步骤,其中$ROS_DISTRO 是您的ROS2发行版(例如&#xff1…

交通工程绪论

一、交通工程 交通工程学定义交通工程学研究的内容交通工程学的产生与发展交通工程学在道路运输管理中的作用 1. 交通工程学定义 早在20世纪30年代,美国交通工程师协会(American Institute of Traffic Engineers)给交通工程学(Traffic Engineering)下了一个定义&a…

去雾笔记-Pixel Shuffle,逆Pixel Shuffle,棋盘效应,转置卷积

文章目录 1.Pixel Shuffle2.Inverse Pixel Shuffle3.棋盘效应4.转置卷积5.宽激活块6.PSPNet7.反射填充层(Reflective Padding Layer)8.tanh层 1.Pixel Shuffle Pixel Shuffle是一种用于图像超分辨率的技术,它通过重新排列图像的像素来增加图…

Django模型的属性与方法

本节介绍Django模型的属性和方法,以及如何重写之前定义的模型方法等内容。 3.5.1 模型属性 Django模型中最重要的属性就是Manager,它是Django模型和数据库查询操作之间的接口,并且被用作从数据库当中获取实例的途径。如果Django模型中没有…

python基础知识一(注释、变量以及类型、类型转换)

目录 注释: 注释分为两种: 注释的作用: 注释的使用原则: 编写一段代码,对比一下有无注释的区别,以冒泡排序为例 1. 无注释版: 感官上是不是有点不清晰? 2. 有注释版&#xff1…

绝地求生:【数据流】工资杯决赛,天霸161分夺得冠军,Aixleft战神37杀

数据制作,整理不易,求支持,点赞,收藏,充电哟! 如有错误,请在评论区指出,感谢各位~ 积分: 战队数据: 排名前3:Tian(161) / NH(145) / PeRo(137) …

linux入门到精通-第十一章-进程间通信(无名管道)

目录 参考概念**进程通信的目的:**Linux 操作系统支持的主要进程间通信的通信机制: 无名管道概述pipe函数建立无名管道父子进程使用无名管道通信 管道读写特点设置非阻塞的方法查看管道缓冲区命令查看管道缓冲区函数 参考 视频教程 概念 进程是一个独立的资源分配…

Oracle进阶(2)——物化视图案例延伸以及序列、同义词

一、物化视图 物化视图(Materialized View)是 Oracle 数据库中的一个对象,它是一个预先计算和存储的查询结果集,类似于视图,但与视图不同的是,物化视图会将查询结果保存在物理存储中,而不是动态…

web前端学习笔记1

前端学习笔记 1. 走进HTML 1.1 什么是HTML 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。HTML文档的后缀名 .html.htm以上两种后缀名没有区别…

给sample_gpt加上,路的选择

灵感 鲁迅说世界上本没有路走的人多了便有了路 如何将灵感转为数学表达 首先假设a到b点有3条路吧,假设你只能选择一条,那意思就是你在训练的时候,只要这条路的值增大别人就会减少。 那这个思思不就是,3条路的值加在一起有个约束…

VMP加壳工具最新 VMProtect Ultimate v3.8.4 Build1754

网盘下载 VMProtect 软件保护功能 支持的文件和格式 VMProtect 支持32位和64位可执行文件,动态加载库和驱动程序。这包括屏保、Active-X 组件、BPL 库和其他 PE 格式的文件。受保护的文件基本上可在任何版本的 Windows 系统上运行,甚至是较早的 Windows …

仿真数据和实测数据的时频变换

目录 1.仿真数据2.实测数据3.地震信号数据4.语音数据 1.仿真数据 2.实测数据 3.地震信号数据 4.语音数据

springboot整合mybatis-puls登陆注册

目录 创建springboot项目 目录结构: 启动类 测试类 idea建表 pom文件 编写yml文件 qq邮箱设置 登陆注册代码 编写持久层(Dao) 注册代码 业务层 业务实现类 mapper 控制层 前端代码 注册页面 邮件正文: 登录代码 控制层 业务层&#…

力扣HOT100 - 101. 对称二叉树

解题思路: class Solution {public boolean isSymmetric(TreeNode root) {if(root null) return true;return recur(root.left, root.right);}boolean recur(TreeNode L, TreeNode R) {if (L null && R null) return true;if (L null || R null || L.…

【数学】深度学习中的概率基础知识记录

基于 Deep Learning (2017, MIT) 书总结了必要的概率知识 原blog 以及用到的Ipython notebook 文章目录 1 概述2 知识2.1 离散变量和概率质量函数(PMF)2.2 连续变量和概率密度函数(PDF)2.3 边缘概率2.4 条件概率2.5 条件概率的链式…

项目实战 | 责任链模式 (下)

案例二:工作流,费用报销审核流程 同事小贾最近刚出差回来,她迫不及待的就提交了费用报销的流程。根据金额不同,分为以下几种审核流程。报销金额低于1000元,三级部门管理者审批即可,1000到5000元除了三级部…

Docker 的基本管理

一. 云的相关知识 1. 关于云 云端服务器都有哪些提供商: 国内: 阿里云(Alibaba Cloud): 提供ECS(Elastic Compute Service)弹性计算服务,包括通用型、计算型、内存型等多种实例…

go的编译以及运行时环境

开篇 很多语言都有自己的运行时环境,go自然也不例外,那么今天我们就来讲讲go语言的运行时环境! 不同语言的运行时环境对比 我们都知道Java的运行时环境是jvm ,javascript的运行时环境是浏览器内核 Java -->jvm javascript…