汇编语言作业(三)

目录

一、实验目的

二、实验内容

三、实验步骤以及结果

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,0AHDB 'My name is Zhang Jingsai.',24H
DSEG  ENDS
SSEG  SEGMENT PARA STACKDW 256 DUP(?)
SSEG  ENDSCSEG  SEGMENT
ASSUME CS:CSEG,DS:DSEG
BEGIN: MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSMOV AH,9INT 21HMOV AH,4CHINT 21H
CSEG  ENDSEND BEGIN      

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

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

  • 四、实验结果与分析

与第三部分合并。

  • 五、实验总结

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟现实(VR)的应用场景

虚拟现实(VR)技术创建和体验三维虚拟世界的计算机仿真技术。用户通过佩戴VR头显等设备,可以完全沉浸在虚拟世界中,并与虚拟世界中的物体进行交互。VR技术具有广泛的应用前景,可以应用于各行各业。以下是一些VR的应用场…

免费开源线上社交交友婚恋系统平台 可打包小程序 支持二开 源码交付!

婚姻是人类社会中最重要的关系之一,它对个人和家庭都有着深远的影响。然而,在现代社会的快节奏生活中,找到真爱变得越来越困难。在这个时候,婚恋产品应运而生,为人们提供了寻找真爱的新途径。 1.拓宽人际交流圈子 现代…

倾斜摄影三维模型数据在立体裁剪应用分析

倾斜摄影三维模型数据在立体裁剪应用分析 立体裁剪是一种将三维模型应用于摄影中的技术,可以在摄影过程中将虚拟的三维模型与现实场景进行合成,从而实现逼真的视觉效果。倾斜摄影是一种通过无人机或其他飞行器进行航拍的技术,可以获取到大范围…

PLC无线通讯技术在汽车喷涂车间机械手臂上的应用

一、项目背景 在汽车生产装配工艺中,机械臂目前已经广泛地应用于装配、搬运等工业生产中,在机械臂系列产品中,汽车喷漆自动控制喷涂机械装置以其独特的优势,能够根据油漆喷涂量的大小,严格控制喷嘴与喷漆面之间距离等…

《Vid2Seq》论文笔记

原文链接 [2302.14115] Vid2Seq: Large-Scale Pretraining of a Visual Language Model for Dense Video Captioning (arxiv.org) 原文笔记 What: 《Vid2Seq: Large-Scale Pretraining of a Visual Language Model for Dense Video Captioning》 作者提出一种多…

深度学习从入门到精通—Transformer

1.绪论介绍 1.1 传统的RNN网络 传统的RNN(递归神经网络)主要存在以下几个问题: 梯度消失和梯度爆炸:这是RNN最主要的问题。由于序列的长距离依赖,当错误通过层传播时,梯度可以变得非常小(消失…

力扣数据库题库学习(4.23日)

610. 判断三角形 问题链接 解题思路 题目要求:对每三个线段报告它们是否可以形成一个三角形。以 任意顺序 返回结果表。 对于三个线段能否组成三角形的判定:任意两边之和大于第三边,对于这个表内的记录,要求就是(x…

Python --- 新手小白自己动手安装Anaconda+Jupyter Notebook全记录(Windows平台)

新手小白自己动手安装AnacondaJupyter Notebook全记录 这两天在家学Pythonmathine learning,在我刚刚入手python的时候,我写了一篇新手的入手文章,是基于Vs code编译器的入手指南,里面包括如何安装python,以及如何在Vs…

【AI开发:音频】一、GPT-SoVITS整合工具包的部署问题解决(GPU版)

前言 目前GPT-SoVITS的合成效果比较不错,相比较其他厂商的产品要规整的多。众多厂家中也是国内使用最多的一款了,并且这个整合包里携带了,除背景音、切割、训练、微调、合成、低成本合成等一些列完整的工具,也可以作为API进行使用…

云盘怎么选最好!

选择云盘时,您应该考虑以下几个关键因素来确保选中最适合您需求的服务: 速度:选择云盘时,传输速度是一个重要的考量点。您应该选择一个即使不使用会员服务也能提供较快上传和下载速度的云盘服务。 存储空间:不同的云盘…

跳跃游戏 II (贪心, 动态规划)

题目描述(力扣45题) : 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到…

IOC

获取资源的传统方式&#xff1a; 在应用程序中的组件需要获取资源时&#xff0c;传统的方式是组件主动的从容器中获取所需要的资源&#xff0c;在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式&#xff0c;增加了学习成本&#xff0c;同时降低了开发效率。…