汇编实验Word下载.docx
- 文档编号:19573210
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:14
- 大小:60.52KB
汇编实验Word下载.docx
《汇编实验Word下载.docx》由会员分享,可在线阅读,更多相关《汇编实验Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
专业
软件工程
姓名
刘岱俊
实验名称
分支程序设计——3.3计算函数值
实验室
9#204
实
验
目
的
或
要
求
实验目的
掌握80X8632位汇编语言程序设计的基本步骤,分析问题,确立算法。
根据程序算法流程选择合适的指令编制汇编语言源程序。
本实验着重掌握顺序程序设计的基本方法和技巧,熟练使用基本的I/O宏。
实验要求
(1)程序要结构化:
简明、易读和易调试。
(2)执行速度较快且占用存储空间较少。
原
理
(
算
法
流
程
)
1.题目分析:
输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符。
2.所需要达到的实验要求:
程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和后续字符,再按顺序显示这三个字符。
在用户输入和显示字符之前都要有相应的提示信息。
3.构思:
从AL寄存器得到它的ASCII码,它的前导字符和后续字符的ASCII码分别比它的ASCII码少1或多1。
然后分别显示这三个字符。
4.代码实现
.DATA;
启动主程序代码
…………
_start:
outputprompt1
inputchar4,3;
读ASCII字符
moval,char4
movchar1,al
incal
movchar2,al
decal
movchar3,al
outputlabel1
INVOKEExitProcess,0;
退出,返回代码0
PUBLIC_start
END
组
内
分
工
可
选
个人完成,无组内分工
结
果
析
及
心
得
体
会
实验截图:
心得体会
通过本次试验,我掌握的汇编语言的基本操作,及通过ASCII码对字符进行操作。
掌握顺序程序设计的基本方法和技巧,熟练使用基本的I/O宏。
成
绩
评
定
教师签名:
年月日
掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。
(3)如何产生条件
(4)如何对条件进行判断
(5)如何实现分支
1.题目:
计算给定函数值
2.实验要求:
编制程序,计算下面函数值
i.
ii.其中,从键盘输入x,y,输出数据为a。
iii.输入输出时候都要求有提示信息。
3.提示:
这个给出两种方法如下:
i.先输入x和y,然后用嵌套的IF结构来分别判断并给a赋值。
ii.分别为x和y设置一个标志变量,当值大于等于0时该变量等于1,当值小于0时该变量等于0。
然后用这两个变量进行异或操作,结果赋值给a。
(这个需要用到xor指令)。
.DATA
.CODE
outputprompt1
inputstring,10
atoistring
movbx,ax
outputprompt2
atoistring
movcx,0
cmpbx,0
jgeL1
cmpax,0
jlL2
L1:
jgeL3
jmpL4
L2:
movcx,-1
jmpL4
L3:
movcx,1
L4:
itoaavalue,cx
outputoutstr1
exitwithreturncode0
本次试验我在试验中,根据提示输入两个整数,通过与0比较进行跳转,最后赋值输出,掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。
。
子程序设计—5.3求X的阶乘
掌握子程序设计的原理和方法,重点掌握子程序编写和调用的过程以及堆栈操作和参数以及局部变量的概念。
(1)编写子程序
(2)在主程序中调用子程序
(3)实现主程序与子程序的参数传递
1.1.题目:
求X的阶乘值
2.2.实验要求:
输入一个整型数(不超过10),求出其阶乘值后输出,求阶乘的算法用子程序来实现。
3.3.提示:
可以用递归来实现,也可以用简单的循环来实现。
4.代码实现:
………..
inputstring,11
atodstring
cmpeax,0
jlL1
cmpeax,10
jgL1
pusheax
callFACT
INVOKEExitProcess,0
FACTPROCNEAR32
pushebp
movebp,esp
moveax,[ebp+8]
movecx,eax
jeL2
cmpeax,1
dececx
forcount:
mulecx
loopforcount
jmpL3
L2:
moveax,1
L3:
dtoavalue,eax
outputresult
popebp
ret4
FACTENDP
END
通过本次试验,我掌握子程序设计的原理和方法,重点掌握子程序编写和调用的过程以及堆栈操作和参数以及局部变量的概念
源代码如下:
实验2.3代码:
;
*********************************************************************
Exampleassemblylanguageprogram--输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符
Author:
刘岱俊
studentnumber:
Date:
2018年12月1日。
---------------------------------------------------------------------
.386
.MODELFLAT
ExitProcessPROTONEAR32stdcall,dwExitCode:
DWORD
INCLUDEio.h;
输入/输出头文件
crEQU0dh;
回车字符
LfEQU0ah;
换行
.STACK4096;
储备4096字节的堆栈
prompt1BYTE"
Thisprogramwilloutputthreecharacter"
cr,lf
BYTE"
Enteracharacter:
"
0
label1BYTEcr,Lf,"
Thethreecharacteris"
char3BYTE?
BYTEcr,Lf
char1BYTE?
BYTEcr,lf
char2BYTE?
BYTEcr,lf,0
char4byte5dup(?
实验3.3代码:
Exampleassemblylanguageprogram--计算给定函数值
prompt1byte"
pleaseinputx:
"
0
prompt2byte"
pleaseinputy:
stringbyte10dup(?
outstr1bytecr,lf,"
a="
avaluebyte6dup(?
),cr,lf,0
实验5.3代码:
Exampleassemblylanguageprogram--5.3求X的阶乘
prompt1BYTE'
Calculatethefactorialofanumber:
'
BYTE'
Pleaseinputanumberthatisfrom0to10'
cr,lf,0
stringBYTE20DUP(?
resultBYTE'
Theresultis'
valueBYTE11DUP(?
PUBLIC_start;
makeentrypointpublic
END;
endofsourcecode
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验