合肥工业大学汇编程序设计实验报告完整代码Word文件下载.docx
- 文档编号:14390539
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:32
- 大小:875.27KB
合肥工业大学汇编程序设计实验报告完整代码Word文件下载.docx
《合肥工业大学汇编程序设计实验报告完整代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《合肥工业大学汇编程序设计实验报告完整代码Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
要求:
本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;
汇编语言程序段的编辑、汇编和反汇编;
程序的运行和结果检查。
三.实验过程和程序
实验将”12345678H”和”FEDCBA98H”分别送入起始地址为DS:
200H和DS:
204H的两个单元中。
还包含两个附加题,一是从DS:
0000H开始的5个16位带符号数分别记为x,y,z,v,w,E命令初始化为:
540,1,-1,1080,0,试求w=(v-(x*y+z-540))/x,二是统计bx中1的个数
四.实验结果(包括必要的截图)
将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:
直接寻址方式实现数据相加
寄存器间接寻址实现数据相加
附加题一:
从DS:
0000H开始的5个16位带符号数分别记为x,y,z,v,w,用E命令初
始化为:
540,1,-1,1080,0,试求w=(v-(x*y+z-540))/x
附加题二:
完成BX中1的个数的统计。
五.实验体会
通过本次实验,了解了使用debug的各种指令。
同时在debug下进行编程,比较麻烦。
由于是第一次编写汇编程序,还是需要多练习。
实验二汇编语言程序设计(顺序、循环)
1、掌握顺序和循环程序结构和设计方法;
2、熟悉在PC机上建立、汇编、连接、调试和运行8086/8088汇编语言程序的过程。
1、X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。
试编写汇编语言程序完成以下功能:
①计算表达式值(V–(X*Y+Z-720))/X;
②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。
2、求一个班50名学生成绩的平均值(附加题:
最大值和最小值,并将结果显示出来)
3、从键盘读入一个字符串,以Enter结束,字符串不超过50个字符,并打印该字符串(附加题:
查找中间是否有‘asm’子串。
如果有,输出‘Yes’;
否则,输出‘No’)。
1、计算表达式值(V–(X*Y+Z-720))/X;
datasegment
xdw021ch
ydw0001h
zdw0ffffh
vdw0438h
wdw0000h
sum1dw?
sum2dw?
dataends
assumecs:
code,ds:
data
codesegment
start:
movax,data
movds,ax
MOVAX,x
IMULY;
x*y
MOVCX,AX
MOVBX,DX
MOVAX,Z
CWD
ADDCX,AX
ADCBX,DX;
x*y+z
SUBCX,540;
?
SBBBX,0;
x*y+z-540
MOVAX,V
SUBAX,CX
SBBDX,BX;
v-(x*y+z-540)
IDIVX;
(v-(x*y+z-540))/x
movsum1,ax
movsum2,dx
movax,4c00h
int21h
codeends
endstart
db7,49dup(6)
maxdb?
mindb?
resultdb0
codesegment
start:
movax,0
movcx,50
movdi,0
again:
movbx,0
movbl,[di]
adddi,1
addax,bx
loopagain
movbl,50
divbl
movresult,al
movdi,50
max2:
subdi,1
movsi,0
moval,[di]
max1:
cmpal,[si]
jbmax2
addsi,1
loopmax1
movmax,al
min2:
min1:
jnbmin2
loopmin1
movmin,al
codeends
data2db50,?
50dup('
$'
)
stringdb'
yes$'
string1db'
no$'
movah,0ah
movdx,offsetdata2
movah,2h
movdl,0ah
movdl,0dh
int21h
movdx,offsetdata2+2
movah,09h
movah,2h
moval,0h
movcx,47
moval,[di+2]
cmpal,61h
jnznext
moval,[di+3]
cmpal,73h
moval,[di+4]
cmpal,6dh
jmpyes
next:
movdx,offsetstring1
jmpendcode
yes:
movdx,offsetstring
endcode:
1、计算表达式值(V–(X*Y+Z-720))/X;
0030地址为平均值的商0032地址为最大值0034地址为最小值
通过此次试验,了解了符号扩展指令的使用。
第二程序中,以及在输出时,输入的字符串末尾要注意加结束标志’$’,还有在输出字符串前要先输出个回车换行,否则回车后看不到输出结果。
实验三汇编语言子程序设计(分支、子程序)
1、掌握分支和子程序结构和设计方法;
3、通过汇编语言了解高级语言的参数传递等知识。
1、BL中的只有一位为1。
编写程序测试,并输出提示信息“TheXBitis1”,要求:
地址表和转移表。
2.编写一个子程序计算z=f(x,y)=x*y+x-y(x,y,z有符号数内存数)。
要求通过堆栈(寄存器、内存)传送所有参数。
3.实践CAsm的转换过程。
;
blhaveone1cout<
<
TheXBitis1
addresdwfun8,fun7,fun6,fun5,fun4,fun3,fun2,fun1
string8db'
The8Bitis1$'
string7db'
The7Bitis1$'
string6db'
The6Bitis1$'
string5db'
The5Bitis1$'
string4db'
The4Bitis1$'
string3db'
The3Bitis1$'
string2db'
The2Bitis1$'
The1Bitis1$'
assumeds:
data,cs:
code
codesegment
movbl,10h
movax,0000h
movcx,8
math:
shlbl,1
jcright
jmpnext
right:
movdl,02h
muldl
movbp,ax
jmpaddres[bp]
next:
incax
loopmath
fun8:
movdx,offsetstring8
jmpcout
fun7:
movdx,offsetstring7
jmpcout
fun6:
movdx,offsetstring6
fun5:
movdx,offsetstring5
fun4:
movdx,offsetstring4
fun3:
movdx,offsetstring3
fun2:
movdx,offsetstring2
fun1:
movdx,offsetstring1
cout:
movah,09h
movah,4ch
codeend
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 合肥 工业大学 汇编程序 设计 实验 报告 完整 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)