电子科技大学汇编实验报告.docx
- 文档编号:3545616
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:21
- 大小:510.41KB
电子科技大学汇编实验报告.docx
《电子科技大学汇编实验报告.docx》由会员分享,可在线阅读,更多相关《电子科技大学汇编实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
电子科技大学汇编实验报告
电子科技大学计算机工程学院
标准实验报告
(实验)课程名称
电子科技大学教务处制表
电子科技大学
实验报告
实验一
学生姓名:
穆萨·图拉克学号:
*************
指导教师:
实验地点:
主楼A2-412实验时间:
19:
00~
一、实验室名称:
二、实验项目名称:
汇编源程序的上机调试操作基础训练
三、实验学时:
四、实验原理:
(包括知识点,电路图,流程图)
DEBUG的基本调试命令;汇编数据传送和算术运算指令
MASM宏汇编开发环境使用调试方法
五、实验目的:
1.掌握DEBUG的基本命令及其功能
2.学习数据传送和算术运算指令的用法
3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程
六、实验内容:
(介绍自己所选的实验内容)
1.DEBUG命令的使用
2.程序的调试与运行
3.编写程序计算以下表达式:
Z=(5X+2Y-7)/2设X、Y的值放在字变量VARX、VARY中,结果存放在字节单元VARZ中。
七、实验器材(设备、元器件):
WinXPPC机,MASM,50,VisulASM软件平台。
八、实验步骤:
(编辑调试的过程)
1.编辑源程序,建立一个以后缀为.ASM的文件.
2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。
无错时继续第3步。
3.连接目标程序,产生可执行程序。
4.用DEBUG程序调试可执行程序,记录数据段的内容。
九、实验数据及结果分析:
(实验运行结果介绍或者截图,对不同的结果进行分析)
程序说明:
功能:
本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取。
其中X与Y是已知量,Z是待求量。
结构:
首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?
。
然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计。
详细内容见程序注释。
程序清单:
DATASEGMENT
VARXDB10
VARYDB10
VARZDB?
DATAENDS
STACKSEGMENTPARASTACK
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
MAIN:
MOVAX,DATA
MOVDS,AX
MOVAL,VARX
MOVAH,VARY
SALAL,1
SALAL,1
ADDAL,VARX
SALAH,1
ADDAL,AH
SUBAL,7
SARAL,1
MOVVARZ,AL
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
程序框图:
调试说明:
将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);
这次试验还要用-p参数以及d参数
显示结果为:
十、实验结论:
(联系理论知识进行说明)
通过本次实验,我们学习了解掌握了DEBUG的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
完成了Z=(5*X+2*Y-7)/2算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想。
通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程能力和设计水平。
报告评分:
指导教师签字:
电子科技大学
实验报告
实验二
学生姓名:
穆萨·图拉克学号:
2012060090033
指导教师:
实验地点:
主楼A2-412实验时间:
19:
00~
一、实验室名称:
二、实验项目名称:
分支程序与循环程序设计
三、实验学时:
四、实验原理:
(包括知识点,电路图,流程图)
分支程序设计基本规范与调试方法,
循环程序设计与调试方法;分配与使用寄存器的相关方法
五、实验目的:
1.掌握分支程序的结构。
2.掌握分支程序的设计与调试方法。
3.掌握循环程序设计与调试方法
4.掌握正确分配与使用寄存器。
六、实验内容:
(介绍自己所选的实验内容)
1.根据输入的字母进行大小写转换(若是输入小写字母则转换成为大写字母,反之),若输入的不是字母则提示出错并重新输入。
2.从键盘上输入三个一位十进制数,将其中大于均值的数显示出来。
3.显示九九表(任意形式均可)
4.键盘输入1-7,对应输出Monday-Sunday。
七、实验器材(设备、元器件):
WinXPPC机,MASM,50,VisulASM软件平台。
八、实验步骤:
(编辑调试的过程)
1.编写源程序文件;
2.汇编,若发现语法错误或者格式错误则修改;
3.链接,形成可执行文件;
4.运行程序,得到正确结果;
5.撰写实验报告:
1)实验目的;
2)实验要求;
3)实验步骤;
4)实验中涉及知识介绍;
5)画出流程图;
6.写出源程序清单,并附注释;
7.写出调试过程及运行结果并分析;
8.总结实验中遇到的问题及解决方法;
九、实验数据及结果分析:
(实验运行结果介绍或者截图,对不同的结果进行分析)
程序说明:
本程序完成求九九乘法表,就相当于C语言中用两个for循环
程序清单:
dataSEGMENT
aDB1
bDB?
dataENDS
codeSEGMENT
ASSUMECS:
code,DS:
data
main:
MOVAX,data;
MOVDS,AX
loop1:
;循环标志
MOVAL,a;
MOVCL,AL;
MOVb,1;
loop_in:
MOVAH,2;
ORb,30h;
MOVDL,b
INT21h
MOVDL,'*';
INT21h
ORa,30h;
MOVDL,a;;a的或运算存放到DL中
MOVAH,2
INT21h
MOVDL,'=';
INT21h
SUBa,30h;
SUBb,30h;
MOVAL,a;a*
MOVBL,b;b
MULBL;a*b赋给BL寄存器
MOVBL,10;
DIVBL;AL/BL%->ah,/->al
MOVBL,AH;
MOVAH,2
CMPAL,00h;;AL的内容与0比较
JEloop2;
ORAL,30h;
MOVDL,AL
INT21H
loop2:
ORBL,30h;
MOVAH,2
MOVDL,BL
INT21h
MOVAH,2
MOVDL,''
INT21h
INCb
LOOPloop_in;跳转到loop_in标志位置
MOVAH,2
MOVDL,13
INT21h
MOVAH,2
MOVDL,10
INT21h
INCa
CMPa,10
JBloop1
MOVAH,4ch
INT21h
codeENDS
ENDmain
程流程图:
调试说明:
将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);
显示结果为:
十、实验结论:
(联系理论知识进行说明)
通过本次实验,掌握了分支程序的结构特点,学习了分支程序的设计和调试方法,掌握了循环程序的结构特点并学习了循环程序的设计和调试方法,运用了循环程序设计的思想,本实验的原理框图较为复杂,但是框图给出了明确的思路和解题方向,是很好的学习方法。
本次程序设计实验运用了数个跳转指令,JL,JLE,跳转指令在循环程序设计过程中具有很重要的特点。
报告评分:
指导教师签字:
电子科技大学
实验报告
实验三
学生姓名:
穆萨·图拉克学号:
2012060090033
指导教师:
实验地点:
主楼A2-412实验时间:
19:
00~
一、实验室名称:
二、实验项目名称:
数制、码制和子程序的编程与调试
三、实验学时:
四、实验原理:
(包括知识点,电路图,流程图)
数制、码制和子程序设计基本规范与调试方法;
MASM宏汇编开发环境使用方法;
循环程序设计与调试方法;
分配与使用寄存器的相关方法
五、实验目的:
1.熟练掌握编写汇编语言原程序的基本方法和基本框架。
2.熟练使用DEBUG调试程序。
3.掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换。
4.掌握用DOS功能调用,实现字符的输入和显示。
5.掌握子程序的编程与调试方法。
六、实验内容:
(介绍自己所选的实验内容)
1、从键盘输入两个2位十进制正数,相加,结果以十六进制数形式显示在屏幕上。
(要求结果显示完整的算式)
2、从键盘输入两个2位十进制正数转换成组合BCD码后,相加,结果以十进制形式显示在屏幕上。
(要求结果显示完整的算式)
3、从键盘输入两个2位十六进制数,相加,结果以十进制形式显示在屏幕上。
(要求结果显示完整的算式)
七、实验器材(设备、元器件):
WinXPPC机,MASM,50,VisulASM软件平台。
八、实验步骤:
(编辑调试的过程)
1、程序说明。
说明程序的功能、结构。
2、调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单(含注解)和执行结果(截图)。
4、画出对应的流程图
九、实验数据及结果分析:
(实验运行结果介绍或者截图,对不同的结果进行分析)
程序说明:
本实验输入两个子程序,一个是将十六进制数转换成二进制数的子程序,还有就是讲二进制数转换为十进制数的。
在程序运行的时候我们首先输入两个十六进制数,然后分别转换为二进制数(利用子程序)之后加法计算出二进制结果然后我们再利用子程序B转出十进制最终结果。
程序清单:
DATASEGMENT
MSG1DB13,10,'Pleaseinputhexnumber_1:
$';输入提示字符串
MSG2DB13,10,'Pleaseinputhexnumber_2:
$';输入提示字符串
CRLFDB13,10,'$'
NNDB?
?
MMDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,MSG1
MOVAH,9
INT21H
CALLIN_CHAR;调用IN_CHAR
MOVMM,AL
LEADX,MSG2;
MOVAH,9
INT21H;返回DOS
CALLIN_CHAR
MOVNN,AL
LEADX,CRLF
MOVAH,9
INT21H
MOVAL,MM
CALLOUT_NUM
MOVDL,'+'
MOVAH,2
INT21H
MOVAL,NN
CALLOUT_NUM
MOVDL,'='
MOVAH,2
INT21H
MOVAL,NN
ADDAL,MM;MN与NN相加
MOVAH,0
ADCAH,0;带进位的相加
CALLOUT_1
EXIT:
MOVAH,4CH
INT21H;返回DOS
IN_CHAR:
LEABX,NN
MOVCX,2
IN_1:
MOVAH,1;调用1号功能,键盘输入数据
INT21H
CMPAL,'0';判断位变量转移
JBIN_1
CMPAL,'F'
JAIN_1
CMPAL,'9'
JBELNUM
CMPAL,'A'
JBIN_1
SUBAL,7
LNUM:
SUBAL,30H
MOV[BX],AL
INCBX
LOOPIN_1
XCHGAL,NN
MOVBL,16
MULBL
ADDAL,NN
RET
OUT_NUM:
MOVAH,0;存放计算结果
OUT_1:
MOVDX,0
程序框图:
调试说明:
将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);
显示结果为:
十、实验结论:
(联系理论知识进行说明)
本实验完成了数制,码制子程序调试设计及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用码制转换将两个十六进制数相加并以十进制形式输出。
报告评分:
指导教师签字:
电子科技大学
实验报告
实验四
学生姓名:
穆萨·图拉克学号:
2012060090033
指导教师:
实验地点:
主楼A2-412实验时间:
19:
00~
一、实验室名称:
串操作指令及其应用程序的设计与调试运行
二、实验项目名称:
三、实验学时:
四、实验原理:
(包括知识点,电路图,流程图)
串操作程序设计基本规范与调试方法;
MASM宏汇编开发环境使用方法
循环程序设计与调试方法;分配与使用寄存器的相关方法
五、实验目的:
1.熟悉串操作指令的基本格式和使用方法
2.掌握常用的串操作程序的设计方法。
3.熟悉串操作程序的调试运行过程。
六、实验内容:
(介绍自己所选的实验内容)
1.从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。
要求在屏幕上以右边对齐的形式显示出来。
2.数据块移动。
将一个连续存储单元的数据移动到另一个连续的存储单元,并找出其中零的个数并显示出来。
(注意在编程的时候要确保数据块位置的不确定性)
3.从键盘输入两个相同长度的字符串,分别放到数据段和附加段,利用串比较指令比较数据段和附加段中两个字符串,如果两串一样,输出Y,否则输出不同的字符。
七、实验器材(设备、元器件):
WinXPPC机,MASM,50,VisulASM软件平台。
八、实验步骤:
(编辑调试的过程)
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
1.程序说明。
说明程序的功能、结构。
2.调试说明。
包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3.画出流程图。
4.写出源程序清单(含注解)和执行结果(截图)。
九、实验数据及结果分析:
(实验运行结果介绍或者截图,对不同的结果进行分析)
程序说明:
本程序完成两个字符串的键盘输入并且右对齐输出字符串。
结构:
1、在数据段中设置两个存放显示信息的字符串,一个是提示用户输入,另一个是提示显示信息位置
2、在数据段中设置两个存放输入字符串的缓冲区
3、输入字符串曹勇0AH号DOS功能调用,字符串存入缓冲区时,第二个字节为实际输入字符串的长度,从第三个字节开始为字符串的ASCII码。
4、为了显示右对齐,由于两个字符串缓冲区的长度相同,只需要将两个字符串向缓冲区后面靠齐,再调用09H号DOS功能调用即可达到显示的右对齐。
程序清单:
DATASEGMENT
NUMEQU25
PROMPT1DB0AH,0DH,'string:
','$';输入提示
PROMPT2DB0AH,0DH,'afteradjusting:
',0AH,0DH,'$'
STRING1DBNUM,0,NUMDUP(''),0AH,0DH,'$'
STRING2DBNUM,0,NUMDUP(''),0AH,0DH,'$'
DATAENDS
STACK1SEGMENTPARASTACK
DW20HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
BEGIN:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVCX,2;CX初始化为2
LEABX,STRING1
LOOP1:
LEADX,PROMPT1
MOVAH,09H
INT21H
MOVDX,BX
MOVAH,0AH
INT21H
LEABX,STRING2
LOOPLOOP1
LEABX,STRING1+2
CALLMOVE
LEABX,STRING2+2
CALLMOVE
LEADX,PROMPT2
MOVAH,09H
INT21H
LEADX,STRING1+2
MOVAH,09H
INT21H
LEADX,STRING2+2
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MOVEPROC
XORCH,CH;XORCH,CH结果为0相当于,清零
MOVCL,-1[BX]
MOVSI,CX
ADDSI,BX
DECSI
MOVDI,BX
ADDDI,NUM-1
STD
REPMOVSB
MOVCX,NUM
SUBCL,-1[BX]
MOVAL,''
REPSTOSB
RET
MOVEENDP
CODEENDS
ENDBEGIN
程序流程图:
NO
YES
调试说明:
将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);
显示结果为:
十、实验结论:
(联系理论知识进行说明)
本实验完成了串操作指令及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用串操作命令来将缓冲区大小一致的两个字符串右对齐输出。
本次实验很有难度,提升了我们设计复杂汇编程序的能力。
报告评分:
指导教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子科技大学 汇编 实验 报告