华南农业大学汇编语言8086习题附答案Word文档格式.docx
《华南农业大学汇编语言8086习题附答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《华南农业大学汇编语言8086习题附答案Word文档格式.docx(71页珍藏版)》请在冰豆网上搜索。
3.演示程序运行结果,请指导教师检查。
三、思考
1.汇编语言程序中语句END后的标号作用是什么?
2.采用标准序结构编制源程序,用ret结束程序运行返回操作系统时,可否将语句mainprocfar中的far属性去掉,为什么?
3.一个段的大小为多少?
一定是64KB吗?
如何在DEBUG下查看程序在内存的存放情况?
四、提交内容
将各个源程序代码、exe文件压缩为RAR后提交到作业系统。
题目创建人
题目注释
1.1.asm
DATASSEGMENT
Stringdb"
BASEDADDRESSING"
countdw$-String
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
movcx,count;
循环次数
leasi,count-1;
将最后一个字符‘G’的地址给si
L:
movah,2
movdl,[si]
decsi
int21h
loopL
MOVAH,4CH
INT21H
CODESENDS
ENDSTART
1.2.asm
xdb"
x=$"
ydb"
y=$"
zdb"
x+y=$"
MOVDS,AX
movah,9;
显示"
x="
leadx,x
movah,1;
输入X
subal,30h
movcl,al;
将X放在CL
y="
leadx,y
输入Y
addcl,al;
两数字相加
z="
leadx,z
movah,2;
显示结果
movdl,cl
adddl,30h
1.3.asm
arraydb128dup(41h,43h)
updw0
downdw0
leadi,array
movcx,256
L:
moval,[di]
cmpal,42h
jlL1
jaL2
L1:
incdown
jmpL3
L2:
incup
jmpL3
L3:
incdi
实验二程序结构与简单程序设计
简单程序设计
2013-4-122:
55
一、实验目的
1.掌握汇编语言源程序结构。
2.掌握汇编语言调试方法。
1.编写完整的汇编语言程序:
(1)试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。
(2)编写程序,从键盘接收一个小写字母,然后找出它的前导字母和后续字母,再按顺序显示这三个字符。
(3)试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”,若不相同则显示“NOMATCH”.
(4)编写程序,将一个包含有20个数据的数组M分成2个数组:
正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。
1对输入的非字母字符如何处理?
2.字母“a”和“z”边界字符的处理方法是什么?
3.显示结果为多位数的时候如何输出?
将各个源程序代码、exe文件,思考题的WORD文档压缩为RAR后提交到作业系统。
2.1.asm
crlfdb0ah,0dh,'
$'
输入数据会AL
pushax;
将AX存进栈里
leadx,crlf;
换行
movah,9
popdx;
栈里数据放进DX,即将原先AX放进DX
subdl,20h;
小写变大写要减去20h
输出
2.2.asm
Stringdb'
zabcdefghijklmnopqrstuvwxyza'
leadi,String
输入字母
incdi;
先DI自加1,第一次就是‘a’的地址,不是‘z’
cmpal,[di];
直到找到字母和输入的相匹配
jnzL
decdi;
推前成为前端字母的地址
movcx,3;
循环次数3
movdl,[di]
loopL2
2.3.asm
String1db"
thisisaprogram"
count1dw$-String1
String2db"
count2dw$-String2
answer1db'
match'
'
answer2db'
nomatch'
movax,count1
movbx,count2
cmpax,bx;
比较两个字符串的长度,如果不等就是不匹配
jnznext
movcx,count1;
字符串长度
leasi,string1
leadi,string2
moval,[si]
比较两个字符串的字符,如果不等就跳
jnznext
incsi
leadx,answer1;
能到这里说明都匹配
jmpfinally;
跳去finally,避免顺序执行了next
next:
;
显示不匹配
leadx,answer2
finally:
2.4.asm
Mdb5dup(-1,1,2,3)
Pdw0
Ndw0
leasi,M
movcx,20;
cmpal,0;
和0比较判断正负
jgL2
incN
incP
loopL
movax,P;
输出P
movbl,10;
设置除数10
divbl
movbh,ah;
将ah(余数放在bh保留)
movdl,al;
将商显示
movdl,bh;
将余数显示
movax,N;
输出N
movbl,10
divbl
movbh,ah
movdl,al
movdl,bh
实验三分支程序设计
分支结构
2013-4-1420:
14:
57
1.掌握汇编语言源程序结构。
2.掌握汇编语言分支结构