AHU 汇编 实验一

一、实验名称:实验1 实验1 用Debug命令查看寄存器和内存中的内容

  • 实验目的:求掌握使用Debug命令查看寄存器和内存的方法。
  1. 通过第2章两个简单实例认识汇编语言程序,初步了解程序格式;段定义;标号;DOS系统功能;操作数;指令;说明语句等作用。
  2. 掌握汇编语言程序从设计到形成可执行程序文件的方法和步骤,即编辑、汇编、连接。了解汇编语言的系统工作文件和工作环境。理解汇编程序和连接程序的作用。理解列表文件内容。
  3. 初步了解程序的运行和调试方法。学会使用Debug主要命令和常用的DOS命令。
  • 实验内容:

(1)掌握安装使用汇编语言编译运行环境。

(2)使用Debug命令查看寄存器的值。

(3)使用Debug命令查看内存的内容。

【1】编辑第3章两个简单实例,通过汇编、连接。

【2】用Debug对HELLO程序进行调试。

【3】(1)用A命令从地址0B63:00CH处输入汇编语句:

MOV  AH, 09

INT  21H

MOV  AH,4C

INT  21H

(2)如果用带有断点的G命令显示字符串‘HELLO,WORLD!’,写出命令。

(3)用T命令跟踪程序HELLO.EXE,写出每一步执行后,相关寄存器的内容。

(4)用T命令跟踪程序,在跟踪执行INT 21时出现什么问题,如何解决?进一步说明P命令和T命令的区别。

  • 实验过程:

(1)用-r命令查看,改变CPU寄存器中的内容

(2)用DEBUG中的D命令查看内存中的内容

(3)用DEBUG中的E命令改写内存中的内容

  • 实验小结:

这节课是我们第一次上机写汇编程序,在学习汇编的时候感觉这是一门非常难的语言,汇编牵涉到计算机底层硬件,这对我来说是一个非常大的挑战,在接触汇编语言的时候,对汇编的第一印象就是觉得这种语言非常繁琐和松散,里面有很多细小的知识点,而且有很多规定,必须要根据严格的规则来编写才能够写出正确的程序,但是经过这次上机实验以后初步对汇编语言有了一个大概的了解,相信通过以后的学习未来可以较为熟练地掌握这门语言。

  • 实验名称:

实验二 上机过程及程序调试

  • 实验目的:

1.通过第2章两个简单实例认识汇编语言程序,初步了解程序格式;段定义;标号;DOS系统功能;操作数;指令;说明语句等作用。

2.掌握汇编语言程序从设计到形成可执行程序文件的方法和步骤,即编辑、汇编、连接。了解汇编语言的系统工作文件和工作环境。理解汇编程序和连接程序的作用。理解列表文件内容。

3.初步了解程序的运行和调试方法。学会使用Debug主要命令和常用的DOS 命令。

三、实验内容:

四、实验过程:

(1)单个字符的键盘输入与显示输出

汇编代码

2.对.asm文件进行汇编

3.对.obj文件进行连接,生成.exe文件

4.运行.exe文件

(2)显示字符串

1.编写汇编程序

2.汇编.asm文件为.obj文件

3.连接.obj文件为.exe文件

4.运行.exe文件

五、实验小结:

通过第二个实验,我初步掌握了如何在EDIT里编写汇编的.asm文件,这次实验并未涉及过多如何自主编写代码,而是从0开始模仿书上的例题。学会了如何再将.obj文件连接为可执行文件.exe。汇编语言,是除了机器语言外的最底层的编程语言了。学习这门语言,可以帮助我们更加深入地理解CPU、内存等硬件的工作原理。用机器的思维去操作计算机。汇编语言和机器语言是一一对应的,汇编语言被编译成机器语言,这样的程序执行效率更高在接触汇编语言的时候,对汇编的第一印象就是觉得这门语言非常繁琐和松散,里面有很多小的知识点,而且有很多规定,必须要严格遵守规则才能编写出正确的程序,譬如一些指令的具体作用,如lea指令等,我们应该在不断的实验中加强自己的编写代码的能力,只有不断地实践才能更好的进步。

在接触汇编语言的时候,对汇编的第一印象就是觉得这门语言非常繁琐和松散,里面有很多小的知识点,而且有很多规定,必须要严格遵守规则才能编写出正确的程序,譬如一些指令的具体作用,如lea指令等,我们应该在不断的实验中加强自己的编写代码的能力,只有不断地实践才能更好的进步。

实验三 用不同的寻址方式去显示

源代码:

data segmentarr dw 1,2,3,4,5,6
data ends
code segmentassume cs:code,ds:data
start:mov ax,datamov ds,axmov ax,arrmov bx,ax        ;  NO.1   //寄存器寻址add bx,30hmov dl,blmov ah,2int 21hmov bx,arr+2  ; every vraite is word type   NO.2   //直接寻址add bx,30hmov dl,blmov ah,2int 21hmov si,offset arr+4 ;get arr+4(NO.3) effective address  mov bx,[si]//寄存器间接寻址add bx,30hmov dl,blmov ah,2int 21hmov bx,[si+2] ;NO.4      //寄存器相对寻址add bx,30hmov dl,blmov ah,2int 21hmov bx,4mov cx,[si+bx]  ;NO.5    //基址变址寻址add cx,30hmov dl,clmov ah,2int 21hmov cx,[si+bx+2]   ;NO.6  //相对基址变址寻址add cx,30hmov dl,clmov ah,2int 21hmov ah,4chint 21h
code ends
end start

运行截图:

实验小结:

操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。

指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。操作数在存储器中,操作数的有效地址用SI、DI、BX和BP等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。

通过本次实验,我初步了解了不同寻址方式的方法和优势,希望在以后的学习中能够强化对不同寻址方法的使用。

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

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

相关文章

基于恒功率PQ控制的三电平并网逆变器MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 模型简介 三相 T 型三电平逆变器电路如图所示,逆变器主回路由三个单相 T 型逆变器组成。 直流侧输入电压为 UPV,直流侧中点电位 O 设为零电位,交流侧输出侧是三相三线制连…

如何深度学习

信息爆炸时代,诞生了很多新的学习方式,非常轻松就能掌握知识,比如,每天听一本书,半个小时就能学习一本书的精华,比如订阅名家专栏或者课程,在不长的时间内内就能学到很多知识。 很多人认为这样…

【数据结构取经之路】快速排序的非递归实现

概述 递归实现快速排序在一些场景下有栈溢出的风险,下面就谈谈如何用非递归的方法实现快速排序。 非递归实现的思想 递归实现与非递归实现快速排序的本质是一致的,效率并不会因为用了非递归实现而有所提升。递归实现快速排序的本质就在于通过递归&…

电脑音频显示红叉怎么办?这里提供四种方法

前言 如果你在系统托盘中看到音量图标上的红色X,则表示你无法使用音频设备。即使音频设备未被禁用,当你运行音频设备疑难解答时,仍然会看到此错误。 你的电脑将显示已安装高清音频设备,但当你将鼠标悬停在图标上时,它将显示未安装音频输出设备。这是一个非常奇怪的问题,…

Linux系统目录结构详细介绍

目录 一、根目录(/) 二、/bin 三、/boot 四、/dev 1.设备文件类型: 2.常见设备文件: 五、/etc 六、/home 七、/root 八、/run 九、/sbin 十、 /tmp 十一、/usr 十二、/var Linux系统目录结构是一种层次化的文件系…

leetcode 热题 100_两数相加

题解一: 迭代:首先判断整数0,然后分别遍历两段链表,将对应位数的值相加并存入新链表,再遍历新链表,将节点值val>10的减10,并且其下一节点值val1。需要注意最后一位节点进位是将下一位节点值设…

spring-boot-maven-plugin springboot打包配置问题

目录 一、打包可执行jar 二、打包非可执行jar 三、两种jar对比 springboot项目的pom文件中一般都配置了spring-boot-maven-plugin打包插件。 <!-- 打包插件依赖 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-b…

Python逆向:pyc字节码转py文件

一、 工具准备 反编译工具&#xff1a;pycdc.exe 十六进制编辑器&#xff1a;010editor 二、字节码文件转换 在CTF中&#xff0c;有时候会得到一串十六进制文件&#xff0c;通过010editor使用查看后&#xff0c;怀疑可能是python的字节码文件。 三、逆向反编译 将010editor得到…

9、组合模式(结构性模式)

组合模式又叫部分整体模式&#xff0c;它创建了对象组的树形结构&#xff0c;将对象组合成树状结构&#xff0c;以一致的方式处理叶子对象以及组合对象&#xff0c;不以层次高低定义类&#xff0c;都是结点类 一、传统组合模式 举例&#xff0c;大学、学院、系&#xff0c;它们…

优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属的专栏&#xff1a;前端零基础教学&#xff0c;实战进阶 景天的主页&#xff1a;景天科技苑 文章目录 Vuevue.js库的基本使用vue.js的M-V-VM思…

flutter入门

本文真对 Flutter 的技术特性&#xff0c;做了一些略全面的入门级的介绍&#xff0c;如果你听说过Flutter&#xff0c;想去了解它&#xff0c;但是又不想去翻厚厚的API&#xff0c;那么本文就是为你准备的。 随着纯客户端到Hybrid技术&#xff0c;到RN&Weex&#xff0c;再…

24计算机考研调剂 | 东北石油大学

东北石油大学智能物探团队招生宣传 考研调剂招生信息 学校:东北石油大学 专业:工学->地质资源与地质工程->矿产普查与勘探 年级:2024 招生人数:2 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 团队介绍&#xff1a; …

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的血细胞智能检测与计数(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;开发血细胞智能检测与计数系统对于疾病的预防、诊断和治疗具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个血细胞智能检测与计数系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&a…

C++顺序结构实例

1.计算浮点数相除的余数 计算两个双精度浮点数a和b相除的余数,a和b都是双精度浮点数。这里的余数r的定义是: a=k * 吧+r,其中k是整数,0<=r<b。 输入 一行,包括两个双精度浮点数a和b 输出 一行,a➗b的余数 样例输入 73.263 0.9973 样例输出 0.4301 #i…

jdk17下载安装图文教程【超详细】

目录 一、下载JDK17 二、安装JDK17 三、配置环境变量 四、测试Java安装是否成功 一、下载JDK17 访问官网&#xff1a;Java Downloads | Oracle 二、安装JDK17 三、配置环境变量 右键点击我的电脑>属性>高级系统设置>环境变量 在【系统变量】中新建JAVA_HOME&…

记录西门子:SCL设置不同顺序

一台搅拌的设备&#xff0c;需要控制三种料的进料顺序和进料重量&#xff0c;顺序和重量可以随便设定&#xff0c;也可以是几十种料。触摸屏上面有A、B、C三种液体原料&#xff0c;需要设定三种液体原料重量&#xff0c;并设定序号。 假设如下面所示设定&#xff1a;那将先打开…

AI 技术:改变世界的力量

人工智能&#xff08;AI&#xff09;是当今科技领域最热门的话题之一&#xff0c;它已经成为推动社会进步和经济发展的重要力量。AI 技术的应用范围非常广泛&#xff0c;从智能手机、自动驾驶汽车到医疗保健、金融服务等领域&#xff0c;都可以看到 AI 的身影。 那么&#xff0…

【考研数学】打基础用张宇《30讲》还是武忠祥《基础篇》?

基础课不太可能所有的东西全都覆盖&#xff0c;还是先搭起一个知识框架&#xff0c;然后不断的填充和完善。 所以不必太过于在意少一些东西&#xff0c;我们不可能一口吃成胖子&#xff0c;基础知识肯定不会遗漏的&#xff0c;只可能一些技巧不到位。 从自己的情况考虑&#…

三、HarmonyOS 应用开发入门之运行Hello World

目录 1、课程对象 1.1、有移动端开发经验 1.2、无移动端开发经验 1.3、对 HarmonyOS 感兴趣 2、DevEco Studio 的使用 2.1、DevEco Studio 的关键特性 智能代码编辑 低代码开发 多段双向实时预览 多端模拟仿真 2.2、安装配置 DevEco Studio 2.2.1、官网开发工具下载地…

基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的面向智慧教育的实习实践系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&…