顺序结构 1.docx
《顺序结构 1.docx》由会员分享,可在线阅读,更多相关《顺序结构 1.docx(10页珍藏版)》请在冰豆网上搜索。
顺序结构1
姓名
学号
班级
年级
指导教师
西安财经学院信息学院
《汇编语言程序设计》实验报告
实验名顺序结构程序设计实验室实验楼403实验日期2010-10-28
一、实验目的及要求
1)熟悉命令格式,功能,加强对指令系统的理解;
2)编写简单顺序结构程序;
3)单步跟踪调试,观察寄存器的变化和指令执行的结果;
二、实验环境
硬件环境:
一台微型计算机;
软件环境:
windowsxp,debug环境,masm
三、实验内容
1.实现W←X+Y+Z(W←6+10+12)的算术算法;
2.请把40个字母a的字符从源缓冲区传送到目的缓冲区;
四、设计:
设计思想:
通过运用计算机汇编语言指令系统,将我们所要表达的语言转换成机器指令,任其识别。
五、调试与测试
调试过程:
1.实现W←X+Y+Z(W←6+10+12)的算术算法.
(1).用MASM程序把ASM文件转换成OBJ文件;
(2)用LINK程序把ASM文件转换成EXE文件;
(3).用U返汇编;
(4).用t命令单步执行程序,实现数据段的初始化,把X的值6传到寄存器AX中的0000地址中(也可用g命令进行一步执行程序,如2.(6)截图所示);
(5)将数据段中地址为0002的数据10(B的值)与地址为0000的数据6(A的值)相加并将结果送到AX寄存器;
(6)将前两步相加的结果继续与Z(12)值相加,最终将结果送给0006单元(即W的值);
(7).用d命令查看寄存器ax中的0006单元的内容,即W的内容,得到最后的结果1C;
(8)用g命令一步执行程序.
2.请把40个字母a的字符从源缓冲区传送到目的缓冲区。
(1).执行已建立的ASM源文件C;
(2)..用MASM程序把ASM文件转换成OBJ文件;
(3).用LINK程序把ASM文件转换成EXE文件;
(4).用U命令执行返汇编;
(5).用单步执行命T将40个字母a传送到源缓冲区;
(6).继续用单步执行命令t实现字符串传送到目的缓冲区es中,用寄存器查看命令d查看附加段地址1449中传送的字符61的个数;
六、[源程序清单]
1.datasegment
source_bufferdb40dup('a')
dataends
extrasegment
dest_bufferdb40dup(?
)
extraends
codesegment
mainprocfar
assumecs:
code,ds:
data,es:
extra
start:
pushds
subax,ax
pushax
movax,data
movds,ax
movax,extra
moves,ax
leasi,source_buffer
leadi,dest_buffer
cld
movcx,40
repmovsb
ret
mainendp
codeends
endstart
2.
datasegment
Xdw6
Ydw10
Zdw12
Wdw?
dataends
codesegment
mainprocfar
assumecs:
code,ds:
data
start:
pushds
xorax,ax
pushax
movax,data
movds,ax
movax,X
addax,Y
addax,Z
movW,ax
ret
mainendp
codeends
endstart
七、总结
1.调试程序时,一定要注意程序的正确性,经多次发现错误然后进行调试,这些宝贵的经验可以为以后编写程序时提醒;
2.理解了一定的顺序结构的程序,并且能够调试与运行程序,也对之前学习的各种命令有了系统性的认识。
在DOS环境下,有些数据还是看不大懂,得以在平时多练习;
3.对指令的熟悉程度不够,平时得多看书并且灵活运用学到的各种知识。