东华大学罗辛汇编实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统原理实验报告
实验名称:编译汇编程序
姓名:
学号:
班级:计算机
指导老师:**
一、实验内容
(描述实验内容)
1、自学并完成如下内容:
(1)自学汇编语言程序的上机过程
(2)学会编译自己的第一个汇编程序
(3)程序执行过程的跟踪
2、完成实训内容一;
3、将程序编译连接,用DEBUG加载、跟踪,然后回答问题。
4、编写程序code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。
5、编辑录入程序,然后编译连接并执行。
6、编辑录入程序,然后编译连接并执行。
二、实验目的
(描述实验目的)
1.学习汇编语言程序的编辑、编译与连接。
2.掌握使用DEBUG调试汇编语言程序。
三、实验原理
(描述实验基本原理)
利用edit编写汇编代码
利用MASM.exe汇编源程序产生obj文件
利用LINK.exe产生exe可执行文件
利用debug追踪程序的运行
四、实验过程
(重点部分,必须包括:实验开发环境、实验步骤、实验源程序代码及其结构分析)1、程序运行体验实验
(1)
可执行文件t1.exe生成。(2)
mov ax,2000H
ax=2000
栈顶为0000 mov ss,ax
ss=2000
栈顶为0000 mov sp,0
sp=0
栈顶为0000 add sp,10
sp=10
栈顶为0000 pop ax
ax=0000 pop bx
bx=0000 push ax
栈顶为0000 push bx
栈顶为0000 pop ax
ax=0000 pop bx bx=0000
(3)
通过d命令查看PSP内容2、常用指令与寻址体验实验
(1)
Mov ax,16
将16存入ax寄存器
Mov dx,12
将12存入dx寄存器
Add ax,dx
Ax中数值与dx中数值相加,和存在ax中Sub ax,2
Ax中数值与2相减,差存在ax中
和的结果为28,在ax中
差的结果为26,在ax中,覆盖了之前和的数据(2)
Mov ax,000c
将000c存储在ax中
Inc ax
将ax中数据+1后存在ax中Mov word ptr[0200],0312
将0312存入200号地址单元Inc byte ptr[0201]
201号地址字节单元+1
Dec byte ptr[0200]
200号地址字节单元-1
结果:
Ax=000d
200号字节单元为11
201号字节单元为04
五、实验结果
(把程序运行的结果通过截屏帖出来,并简单描述每个截图的意思)3、
将下面的程序编译链接,用debug加载跟踪,然后回单问题
(1) CPU执行程序,程序返回前,data段中的数据为多少?(回答并以屏幕截图证明)
Data段中的数据为
0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h (截图见上方)(2) CPU执行程序,程序返回前,cs、ss、ds的值分别为多少?(回答并以屏幕截图证明)
Cs=1503
Ss=1502 (截图见上方)
Ds=1501
(3) 设程序加载后,code段的段地址为X,则data段的段地址为多少?stack 的段地址为多少?
Data段的段地址为X-2
Stack段的段地址为X-1
4、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。
5、
6、
六、实验心得体会
(写出在做实验过程中碰到的问题、解决方法、存在的不足,实验过程中所获得的经验等等)
对debug的使用更加熟练,同时也学会了编写生成汇编程序与利用debug追踪程序的运行
七、参考文献