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.hqwc.cn/news/527513.html

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

相关文章

基于Java的在线课程教学系统(Vue.js+SpringBoot)

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…

什么是物联网?物联网如何工作?

物联网到底是什么? 物联网(Internet of Things,IoT)的概念最早于1999年被提出,官方解释为“万物相连的互联网”,是在互联网基础上延伸和扩展,将各种信息传感设备与网络结合起来而形成的一个巨大网络,可以实…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…

xss——权限维持,钓鱼

后台植入cookie,表单劫持(获得web权限才可以使用的) 把后门植入后,当重新登录后台,就会触发这个代码,将数据发送给xss平台 第二种 我们可以通过这个找到,密码发送的地方,然后就可以…

Learn OpenGL 06 坐标系统

概述 局部坐标是对象相对于局部原点的坐标,也是物体起始的坐标。下一步是将局部坐标变换为世界空间坐标,世界空间坐标是处于一个更大的空间范围的。这些坐标相对于世界的全局原点,它们会和其它物体一起相对于世界的原点进行摆放。接下来我们…

康奈尔开源近10万份审稿意见,未来论文发表或将由AI定夺

大语言模型(LLMs)的进步为自动化论文评审开辟了新途径,这些模型在学术反馈领域展现出巨大潜力。自动化评审的核心优势在于其能够精准指出论文草稿的不足之处,助力作者优化研究。尽管已有丰富的同行评审数据,但现有自动…

map和set(二)——AVL树的简单实现

引入 二叉搜索树有其自身的缺陷,假如往树中 插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退化成O(N),因此 map、set等关联式容器的底层结构是对二叉树进行了平衡处理,即采用平衡树来实现。简…

2024年【G2电站锅炉司炉】考试题及G2电站锅炉司炉证考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【G2电站锅炉司炉】考试题及G2电站锅炉司炉证考试,包含G2电站锅炉司炉考试题答案和解析及G2电站锅炉司炉证考试练习。安全生产模拟考试一点通结合国家G2电站锅炉司炉考试最新大纲及G2电站锅炉司炉考…

【海贼王的数据航海:利用数据结构成为数据海洋的霸主】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

储能系统--户用储能美洲市场(三)

2、美洲市场 2.1、美国户储发展驱动力 (1)电网老化带来配储需求,户用光储成家庭第二用电保障 美国大部分电网建于20世纪60和70年代,超70%以上的输电系统已经超过了25年,在高负荷运转或者外部环境承压时,…

波动数列 刷题笔记

思路分析 dp 找出状态转移方程 设d为a或者-b 代码 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N1010,MOD100000007; int get_mod(int a,int b){ return (a%bb)%b; …

每日五道java面试题之springMVC篇(二)

目录&#xff1a; 第一题. 请描述Spring MVC的工作流程&#xff1f;描述一下 DispatcherServlet 的工作流程&#xff1f;第二题. MVC是什么&#xff1f;MVC设计模式的好处有哪些?第三题. 注解原理是什么?第四题. Spring MVC常用的注解有哪些&#xff1f;第五题. SpingMvc中的…