实验项目 | 程序运行过程分析 |
---|---|
综合性实验 | 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 segment
mov ax,0123H
mov bx,0456H
add ax,bx
add ax,bx
mov ax,4c00H
int 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.分析讨论
汇编语言主要由编译、链接和运行三个步骤。