汇编语言实验五子程序设计实验Word文档格式.docx
- 文档编号:20616697
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:20
- 大小:105.17KB
汇编语言实验五子程序设计实验Word文档格式.docx
《汇编语言实验五子程序设计实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言实验五子程序设计实验Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
.段内调用与返回:
调用子程序指令与子程序同在一个段内。
因此只修改IP;
.段间调用与返回:
调用子程序与子程序分别在不同的段,因此在返回时,需同时修改
CS:
IP。
3.)子程序的现场保护与恢复
保护现场:
在子程序设计时,CPU内部寄存器内容的保护和恢复。
一般利用堆栈实现现场保护和恢复的格式:
过程名PROC[NEAR/FAR]
PUSHAX
PUSHBX.
PUSHDX
POPDX.
POPAX
3.子程序的参数传递方法
1.寄存器传递参数
这种方式是最基本的参数传递方式。
2.存储器单元传(变量)递参数
这种方法是在主程序调用子程序前,将入口参数存放到约定的存储单元中;
子程序运
行时到约定存储位置读取参数;
子程序执行结束后将结果也放在约定存储单元中。
3.用堆栈传递参数
利用共享堆栈区,来传递参数是重要的的方法之一。
B)字符、字符串输入输出知识要点:
在实际应用中,经常需要从键盘输入数据并将结果等内容显示到屏幕上,方便程序控制
及查看结果。
汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出,一是字
符串数据的输入输出。
都可以通过DOS功能调用来实现,下面就分别介绍下用来实现数据输
入输出的功能调用的使用方法。
1、单个字符输入
单个字符输入可以利用DOS的1号功能调用来完成,使用方法为:
MOVAH,1
INT21H
这两条语句执行后,光标会在屏幕上闪烁,等待输入数据,输入的数据以ASCII
码形式存储在AL寄存器中。
2、单个字符输出
单个字符输出可利用DOS2号功能调用来完成,使用方法为:
MOVDL,’?
’
MOVAH,2
单个字符输出需要把要输出字符的ASCII码放在DL寄存器中。
3、字符串输入
从键盘输入一串字符串可以利用DOS的10号功能调用来完成,使用方法为:
BUFDB50;
预定义可以输入的最大字符个数
DB?
;
实际输入字符个数,根据输入自动统计
DB50DUP(?
);
存放输入字符串数据缓冲区
LEADX,BUF
MOVAH,10
4、字符串输出
字符串输出可由DOS9号功能调用来完成,使用方法为:
STRINGDB‘HELLO$’
LEADX,STRING
MOVAH,9
C)表的处理知识要点:
表的处理在实际数据处理中应用较为广泛,主要有排序、搜索、插入和删除等操作。
有
一些常用的冒泡法、对分搜索法等需要掌握。
四、实验内容与步骤
1、从键盘输入一串字符串(显示提示)到内存中,在该字符串的某一个指定位置,插入某
一字符或删除某一字符,并显示操作后的字符串。
2、编写程序把从键盘输入的四位十六进制数,转换为十进制形式在屏幕上打印出来。
3、从键盘输入(显示提示)十个2位十进制数(正数)到内存中,按从小到大排序,然后
把该数以十六进制形式在屏幕上打印出来。
4、英文人名排序。
从终端键入20个人名,当所有人名都键入后,按字母上升的次序将人名
排序,并在屏幕上显示已经排好序的人名。
注意:
以上各题要求用子程序方法实现,每个题目至少包含2个子程序。
涉及到初始数据
的,同学们自行给出多组数据,反复加以验证各题程序。
五、实验要求与提示
1、实验要求
(1)画出各程序流程图;
(2)列出程序清单,加上适量注释;
(3)回答思考问题;
(4)记录实验结果;
(5)完成实验报告(实验材料上的内容简写,自己的工作要详尽)。
六、思考与练习以及测评标准
1.字符串在内存中是如何存储的?
2.屏幕有多个字符串显示时,如何换行?
七、程序流程图
八、实验结果
九、思考题
1.以8位ASCII码的形式连续存储
2.先输出换行符,然后输出回车符
十、程序代码
datassegment
buf4db460dup('
$'
)
bp4dw20dup(0)
markdb'
@@'
num41dw20
num42dw19
num3db20dup(0)
num3tdb10dup(0)
num31dw10
num32dw9
num2db0,0,0,0
num22dw0
tempiodb0
tempdw0
tabdb'
0123456789abcdef'
tip1db'
Pleaseinput:
tip2db'
Pleaseinput10DECnumeralwithspace:
buf1db20
db?
db20dup('
num1db0
num1tdb3
db2dup(0)
temp1db'
'
datasends
stackssegment
stackdw32dup(0)
stacksends
codessegment
assumeds:
datas,ss:
stacks,cs:
codes
start:
movax,datas
movds,ax
moves,ax
movax,stacks
movss,ax
;
1start
leasi,tip1
callputs
callnewline
leasi,buf1
callgets
leasi,num1t
incsi
movah,ds:
[si]
moval,ds:
movbl,'
0'
subah,bl
subal,bl
movbl,al
moval,ah
movah,0
movcl,10
mulcl
addal,bl
movnum1,al
callinput
movbl,tempio
movtemp1,bl
movcx,0
movcl,num1
deccl
jzl11
l1:
movtempio,al
calloutput
loopl1
l11:
moval,temp1
cmpal,0dh
jzl12
decsi
l12:
1end
2start
movax,0
leasi,num2
moval,tempio
subal,'
movds:
[si],al
leasi,num2
movcx,4
movdx,0ah
l2:
cmpds:
[si],dl
jbl21
subal,7
l21:
loopl2
shlah,cl
movbl,ds:
addah,bl
shlal,cl
movnum22,ax
1
movdx,0
movcx,2710h
divcx
movtemp,dx
addax,'
movax,temp
2
movcx,3e8h
3
movcx,64h
4
movcx,0ah
5
2end
3start
leasi,tip2
leasi,num3
movcx,20
l3:
movdl,'
cmpdl,tempio
jzl31
deccx
jzl32
l31:
jmpl3
l32:
leadi,num3t
movcx,10
l33:
movdl,10
muldl
addal,ds:
moves:
[di],al
incdi
loopl33
sort
sort31:
leasi,num3t
movax,9
movnum32,ax
sort32:
cmpal,ds:
jsskip31
xchgal,ds:
[si-1],al
skip31:
movcx,num32
decnum32
loopsort32
movcx,num31
decnum31
loopsort31
movnum31,10
l34:
callprintnumb
callspace
loopl34
3end
4start
leasi,buf4
leadi,bp4
input
l4:
moval,20
movdx,si
adddx,2
[di],dx
addsi,23
loopl4
l41:
leasi,bp4
movax,19
movnum42,ax
l42:
movdi,ds:
[si+2]
movtemp,si
movax,ds:
movsi,ax
repecmpsb
jsskip41;
不需修改
movsi,temp;
修改
xchgax,ds:
[si],ax
skip41:
movsi,temp
movcx,num42
movnum42,cx
inccx
loopl42
movcx,num41
movnum41,cx
loopl41
ouput
l43:
movtemp,cx
movsi,es:
[di]
movcx,temp
loopl43
4end
Q:
movah,4ch
int21h
printnumb:
movcl,4
shral,cl
leabx,tab
addbx,ax
movdl,ds:
[bx]
movah,2
movcl,0fh
andal,cl
ret
printnum:
;
outputtheASCIIintempW
shrah,cl
andah,0fh
andal,0fh
gets:
movah,10
pgets:
movcl,ds:
movch,0
lpgets:
jzpend
looplpgets
pend:
puts:
movah,9
input:
movah,1
newline:
movah,2
movdl,0dh
movdl,0ah
space:
output:
movdl,tempio
codesends
endstart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验 子程序 设计