最新版汇编实验报告5235Word格式文档下载.docx
- 文档编号:18070626
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:18
- 大小:409.09KB
最新版汇编实验报告5235Word格式文档下载.docx
《最新版汇编实验报告5235Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《最新版汇编实验报告5235Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
movax,[si+bx]
next:
cmpax,[si]
jgeno_count
incdx
no_count:
addsi,2
loopnext
mov[bp],dx
addbp,2
addbx,2
decdi
subdi,0
jnel
movax,4c00h
int21h
CSEGENDS
endstart
6、实验结果
JGE情况下的排序结果
转移指令为JG时的排序结果:
转移指令为JL时的排序结果:
转移指令为JLE时的排序结果:
实验四分支程序设计
一、预习内容
1.分支程序设计方法。
2.利用转移指令jl、jmp实现多岔分支的方法。
1.掌握分支程序设计方法。
2.掌握利用转移指令jl、jmp实现多岔分支的方法。
三、实验内容
统计学生成绩result。
设有10个学生的成绩分别为56、69、84、82、73、88、99、63、100和80分。
试编制程序分别统计低于60分、60~69分、70~79分、80~89分、90~99分及100分的人数,并分别存放到s5、s6、s7、s8、s9及s10单元中
四、实验程序
DSEGSEGMENT
gradedw100,80
s5dw0
s6dw0
s7dw0
s8dw0
s9dw0
s10dw0
assumecs:
start:
movds,ax
movcx,10
movbx,offsetgrade
compare:
movax,[bx]
cmpax,60
jlfive
cmpax,70
jlsix
cmpax,80
jlseven
cmpax,90
jleight
cmpax,100
jnenine
incs10
jmpshortchange_addr
nine:
incs9
jmpshortchange_addr
eight:
incs8
seven:
incs7
six:
incs6
five:
incs5
change_addr:
loopcompare
int21h
endstart
每次执行转移指令时寄存器csip的值
最终运行结果
五、程序流程图
实验五子程序设计
1.子程序调用方法和参数传递方式。
2.过程调用伪指令:
PROC,ENDP和NEAR。
3.子程序调用中堆栈的用法。
4.简化格式程序设计方法。
1.掌握子程序调用方法和参数传递方式。
2.掌握过程调用伪指令:
3.理解子程序调用中堆栈的用法。
4.熟悉简化格式程序设计方法。
显示学生名次表rank。
要求接收从键盘输入的一个班的学生成绩,并存放于10字的grade数组中,其中grade+i保存学号为i+1的学生的成绩。
然后根据grade中的学生成绩,把学生名次填入10字的rank数组中,其中rank+i的内容是学号为i+1学生的名次。
再按学号把名次从终端显示出来。
4、流程图
1、Input
2、output
3、rankp
5、实验程序
.modelsmall
.stack
.data
gradedw10dup(?
rankdw10dup(?
countdw?
mess1db'
Grade?
'
'
$'
mess2db13,10,'
IputError!
mess3db'
Rank:
.code
mainprocfar
start:
movax,@data
callinput
callrankp
calloutput
movah,1
mainendp
inputprocnear
movdx,offsetmess1
movah,09
movsi,0
movcount,0
enter:
calldecibin
inccount
cmpdl,'
jestore
cmpdl,13;
isit'
return'
?
jeexit2
jneerror
store:
movgrade[si],bx
jmpenter
error:
leadx,mess2
exit2:
callcrlf
ret
inputendp
rankpprocnear
movdi,count
loop1:
movax,grade[bx]
movwordptrrank[bx],0
movcx,count
next:
jgno_count
incwordptrrank[bx]
no_count:
jneloop1
rankpendp
outputprocnear
leadx,mess3
next1:
movbx,rank[si]
callbinidec
movdl,'
movah,02
jnznext1
ret
outputendp
decibinprocnear
s:
cmpal,30h
jaba1
moval,8h
movdl,al
movah,2
jmps
ba1:
cmpal,39h
jbba2
ba2:
subal,30h
movbl,10
mulbl
movbl,al
s1:
jaba11
jmps1
ba11:
jbba21
ba21:
addbl,al
ret
decibinendp
binidecprocnear
pushbx
pushcx
pushsi
pushdi
movcx,100d
calldec_div
movcx,10d
movcx,1
popdi
popsi
popcx
popbx
binidecendp
dec_divprocnear
movax,bx
movdx,0
divcx
movbx,dx
movdl,al
adddl,30h
movah,02h
dec_divendp
crlfprocnear
movdl,0dh
moval,10
crlfendp
endmain
实验结果
观察callinput,callrankp,calloutput三条指令后sp,bp以及[sp]的值
Input
Rank
Output
实验六综合程序设计
1.DOS中断,字符输入输出的方法.
2.综合程序设计方法
1.熟悉DOS中断,掌握字符输入输出的方法.
2.继续熟悉基本程序设计方法,包括循环程序设计,分支程序设计和子程序设计等.
3.练习综合程序设计方法
数据区存放有10个正数,要求自己编写一个完整的程序实现这10个数的排序,具体要求如下:
1.显示未排序的10个数据;
2.提示输入排序方法,是按从大到小还是从小到大;
3.从键盘输入‘H’或者‘L’决定数据是按从大到小还是从小到大的顺序排列,如果从键盘输入‘H’,则按从大到小顺序排列,如果输入‘L’,则按从小到大顺序排列,否则提示输入错误,请重新输入;
4.显示最后的排序结果。
四、实验步骤
1.认真阅读实验要求,编写源程序;
2.编译,链接,生成可执行文件,记录编译过程中的错误,并分析原因;
3.编译通过后,调式程序,直至得到正确的结果。
6、实验程序
string1db'
smalltolargepressL,largetosmallpressH'
string2db'
inputerror,tryitagain'
mess1dw90,80
codw10
mess2dw10dup(?
DSEG,es:
moves,ax
callsh
leabx,mess1
leabp,mess1
leadx,string1
jmpinput
lop:
leadx,string2
input:
movah,9
int21h
moval,13
movah,2
MOVAL,10
movah,1
cmpal,48h
jepah
cmpal,4ch
jnelop
leabx,mess1
leasi,mess1
pal:
movcx,co
movax,[bx]
movsi,bx
ll:
cmpax,[si]
jbnextl
xchgax,[si]
nextl:
addsi,2
loopll
mov[bx],ax
ADDSI,2
decco
movcx,co
addcx,1
looppal
JMPKK
movax,10
movco,ax
pah:
hh:
janexth
nexth:
loophh
looppah
KK:
moval,10
MOVAH,1
INT21H
movax,4c00h
shprocnear
movcx,10
show:
movax,[bx]
movdl,10
divdl
addal,30h
moval,ah
pushcx
pushax
popax
popcx
loopshow
shendp
CSEGENDS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新版 汇编 实验 报告 5235