实验项目 程序运行过程分析
综合性实验 2020年11月 18日

一、实验综述

1.实验目的及要求

(1)掌握程序执行具体过程
(2)构建汇编语言的运行环境
(3)掌握汇编语言的编译连接过程
(4)掌握汇编语言的调试跟踪过程

2.实验仪器、设备或软件

VMWARE
win7虚拟机
phpstudy
DVWA-master

3.实验原理

一个源程序从写出到最终执行的过程。
(1)编写汇编源程序
(2)对源程序进行编译连接
使用汇编语言编译程序对源程序文件中的源程序进行编译,生成目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。可执行文件包含两部分内容:

  • 程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)
  • 相关的描述信息(比如程序有多大、要占用多少内存空间等)

(3)执行可执行文件
操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据载入内存,并进行相关的初始化(比如设置CS:IP指向第一条要执行的指令), 然后由CPU执行程序。

二、实验过程(步骤过程、数据记录)

1.步骤

(1)在虚拟机C盘新建文件夹ASMtest,并将MSAM 5.0、Noepad++与DosBox.exe下载放入C:ASMtest路径下。


(2)把MASM 5.0 下的所有文件拷贝到C:\ASMtest下。


(3)安装DOSBOX


(4)解压notepad软件,并运行notepad++.exe


(5)使用notepad++编写以下汇编语言代码:

assume cs:codesg
codesg segmentmov ax,0123Hmov bx,0456Hadd ax,bxadd ax,bxmov ax,4c00Hint 21H
codesg ends
end

代码及其注释:


(6)将文件保存为1.asm并存放到C:\ASMtest路径下


(7)双击桌面DOCBOX图标,运行DOCBOX


(8)输入命令:mount C: C:\ASMtest


(9)输入C:进入C盘


(10)使用masm命令编译1.asm文件,并生成1.obj文件


(11)查看生成的目标文件1.obj


(12)使用link命令链接1.obj文件并生成可执行文件1.exe


(13)查看生成的可执行文件1.exe


(14)使用debug运行1.exe文件

(15)使用R命令查看各个寄存器的值


(16)使用U命令将内存内的机器指令翻译为汇编指令


(17)使用T命令单步执行上述汇编指令,观察寄存器AX与寄存器BX值的变化


(18)使用P命令执行中断并结束程序运行


(19)使用Q命令退出

2.数据记录

三、结果讨论与分析

1.实验结果

这节课我们接触了实际的汇编语言程序环境,熟悉了相应的操作,汇编语言的理论知识也成功应用起来了。对汇编语言编写程序有了一定的认识和基础,在和同学的讨论学习中,理解了汇编语言的基本语法与指令含义,颇有小成就感。

2.分析讨论

汇编语言主要由编译、链接和运行三个步骤。

汇编语言程序运行过程分析相关推荐

  1. 用计算机汇编语言的程序是经过,汇编语言程序

    汇编语言程序也称为汇编语言源程序,就是用汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件.汇编语言程序在经过汇编.链接后得到可执行程序即EXE文件. 汇编语言程序里面包括 ...

  2. 汇编语言程序的调试与运行

    实验一 汇编语言程序的调试与运行 1.实验目的及要求 实验目的: ①学习数据传送和算术运算指令的用法 ②熟悉在PC机上编辑.汇编.连接.调试和运行汇编语言程序的过程. 实验要求: 编程实现 SUM=a ...

  3. 汇编语言程序的建立、运行与调试

    实验一 汇编语言程序的建立.运行与调试 一.实验目的 熟悉汇编语言开发环境. 掌握EMU8086软件使用方法. 了解汇编语言的程序结构.调试一个简单的程序. 理解寻址方式的意义. 二.实验内容及要求 ...

  4. 汇编实验三 汇编语言程序的调试与运行

    一.实验目的 1.熟练掌握编写汇编语言原程序的基本框架 2.熟悉在PC机上编辑.汇编.连接.调试和运行汇编语言程序的过程. 二.实验内容 一个汇编语言程序从写出到最终执行的简要过程如下: 1) 编辑 ...

  5. 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究

    原文:查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 查询在应用程序运行得很慢, 但在SSMS运行得很快的原因探究 -理解性能疑点 1      引言 内容来自http://www.so ...

  6. masm5安装教程_汇编语言程序环境搭建masm+debug64位 win10/7

    介绍:MASM是Microsoft Macro Assembler 的缩写,是微软公司为x86 微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译 ...

  7. 编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元

    编写一个汇编语言程序,完成以下要求.从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元 ...

  8. 编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。

    编写一个汇编语言程序,将字符串"Hello World"中的全部小写字母转换为大写字母,并存放回原地址处. P176 4.10 编程思路:首先DATA段中,定义string存放字符 ...

  9. 汇编语言程序开发过程

    工作环境: 为运行汇编语言程序,要在磁盘上建立以下文件: EDIT.EXE MASM.EXE / ASM.EXE LIKE.EXE DEBUG.COM EXE2BIN.EXE 其中,DEBUG是调试程 ...

最新文章

  1. php如何对数组进行分组,如何在PHP中对数组进行分组排序
  2. Java基础:常用IO流
  3. QuorumPeerConfig.parse
  4. .NET Core 中生成验证码
  5. 顶尖科技棋牌游戏开发_如何接受顶尖科技公司的采访
  6. 深度学习中的损失函数总结以及Center Loss函数笔记
  7. 最新LAMP源码搭建网站平台PHP5.5.1 + Apache2.4.6 + mysql5.6.12
  8. 多屏显示 全屏后在副显示器_多屏生产力有多重要?联想ThinkVision思逸14显示器...
  9. STL--deque用法
  10. git fork的项目与原作者同步
  11. PostgreSQL 为什么不要滥用unlogged table hash index
  12. layuimini tab切换刷新解决方案
  13. 一分钟电脑自动关机的代码
  14. 计算机实验室安全管理责任书,实验室安全管理责任书
  15. [论文总结] 科技论文英语写作笔记1
  16. SKYPE的BUG 7/8
  17. 在线下单系统think php,昱杰订单管理系统(ThinkPHP版) v19.0
  18. vscode 怎么设置背景图片
  19. 古诗名句分类二:事理哲理
  20. Java.lang.RuntimeException: Parcel: unable to marshal value

热门文章

  1. 微前端框架qiankun开发到部署保姆式教程原理与实战
  2. ssm+Vue计算机毕业设计寻迹边境丹东旅游网站(程序+LW文档)
  3. android开发笔记之网络编程—简易新闻客户端
  4. 2021中国大数据企业50强发布,华为云大数据连续六年入选
  5. 原来跨境电商Temu还可以这样快速提升店铺销量!
  6. Yann LeCun,牛人也!
  7. org.eclipse.jgit.errors.LockFailedException: Cannot lock D:\xxx\.git\index
  8. 考试排座位顺序,要求校内同班不相邻
  9. 为Android Studio配置JDK1.8
  10. iTunes Connect居然支持中文了!