汇编课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言程序设计实验报告
专业:
班级:
学号:
姓名:
日期:
湖南科技大学
实验报告一
实验题目:
有两个数(字数据)DATA1和DATA2,把两数之和放在DA TA3中,两数之差放在DA TA4中。
实验目的:
1.熟练掌握汇编语言的程序结构,学会如何使用数据定义、符号定义、模块定义等常用
的批示性语句。
2.熟悉汇编语言的工作环境;学会使用汇编语言的编辑、汇编、和连接装配程序的方法;
熟悉汇编语言程序的编辑-汇编-连接-运行-调试的过程
3.熟练掌握用DEBUG来调试程序,掌握调试程序的反汇编、读写寄存器或存储单元、
运行程序等简单的调试命令。
4.熟悉汇编语言指令,学会使用数据传送,算术逻辑运算,处理器控制等简单指令。
实验主要原理:
先用数据传送指令将DATA1,DA TA2放入AX和BX两个寄存器中,分别用ADD和SUB 两个指令来计算两数之和与两数之差,再用数据传送指令将两数之和放入DA TA3中,将两数之差放入DATA4中。最后用ret指令返回DOS
程序流程图:
源程序:
datarea segment
DA TA1 dw 5 ;数据定义DA TA2 dw 4
DA TA3 dw ?
DA TA4 dw ?
datarea ends
prognam segment
main proc far
assume cs:prognam,ds:datarea
start: push ds ;准备工作
sub ax,ax
push ax
mov ax,datarea
mov ds,ax
mov ax,DATA1
mov bx,DATA2
add ax,bx ;做加法
mov DATA3,ax
mov ax,DATA1
sub ax,bx ;做减法
mov DATA4,ax
ret
main endp
prognam ends
end start
DEBUG调试关键步骤:
执行mov ax,DATA1
(AX)=5,传送成功
执行add ax,bx
(AX)=9,加法成功
执行到最后ret时,查看数据段内容
分别为5, 4,9,1 说明加法,减法都成功执行
运行结果:
(DATA3)=9
(DA TA4)=1
实验报告二
实验题目:
数据段中有一个字符串DATA1,串长为3,内容为‘CDE’,还有另一个字
符串为DATA2,长度为4,内容为‘ABCD’。要求在附加段中的字符串DATA3
中得到‘ABCDCDE’。
实验目的:
1.熟练掌握汇编语言的程序结构,学会如何使用数据定义、符号定义、模块
定义等常用的批示性语句。
2.熟悉汇编语言的工作环境;学会使用汇编语言的编辑、汇编、和连接装配
程序的方法;熟悉汇编语言程序的编辑-汇编-连接-运行-调试的过程
3.熟练掌握用DEBUG来调试程序,掌握调试程序的反汇编、读写寄存器或
存储单元、运行程序等简单的调试命令。
4.熟悉汇编语言指令,学会使用数据传送,串处理指令,处理器控制等简单
指令。
实验主要原理:
取DATA1地址放入SI中,取DATA2地址放入BX中,取DATA3地址放入DI中,通过使用CX与LOOP循环先把DATA1的内容全部放入DATA3中,再使用CX和LOOP循环将DATA2的内容都放入DATA3的后边。
程序流程图:
源代码:
data segment
data1 db 'CDE'
data2 db 'ABCD'
data ends
esdata segment
data3 db 7 dup(?)
esdata ends
code segment
assume cs:code,ds:data,es:esdata main proc far
start:push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,esdata
mov es,ax
mov si,offset data2 ;源串地址
mov di,offset data3
mov cx,4
cld ;把ABCD送到data3前4个单元
rep movsb
mov si,offset data1
mov cx,3 ;把CDE送到data3后3个单元
rep movsb
ret
main endp
code ends
end start
DEBUG调试关键步骤:
执行到mov si,offset data2时,(SI)=0003H ,源串地址传送成功
到执行到ret时,ES段中的串味ABCDCDE,实验成功
实验结果:
以DATA3为首址的连续单元成功存放‘ABCDCDE’字符串
实验报告三
实验题目:
已知有符号字数组ARRAY有6个元素。试编制统计此数组相邻两元素符号
变化次数的程序
实验目的:
1 熟练掌握汇编语言的程序结构,学会如何使用数据定义、符号定义、模块
定义等常用的批示性语句。
2 熟悉汇编语言的工作环境;学会使用汇编语言的编辑、汇编、和连接装配
程序的方法;熟悉汇编语言程序的编辑-汇编-连接-运行-调试的过程
3 熟练掌握用DEBUG来调试程序,掌握调试程序的反汇编、读写寄存器或
存储单元、运行程序等简单的调试命令。
4 熟悉汇编语言指令,学会使用数据传送,逻辑运算指令,循环指令,处理
器控制等简单指令。
实验主要原理:
将各个元素除符号位外全部置0,通过将每相邻的两个数进行对比看是否相等,若相等,则对比下一组,否则计数器加1再对比下一组。直到CX=0。
程序流程图: