华南农业大学汇编语言习题(附答案).docx

上传人:b****9 文档编号:137158 上传时间:2022-10-04 格式:DOCX 页数:54 大小:64.42KB
下载 相关 举报
华南农业大学汇编语言习题(附答案).docx_第1页
第1页 / 共54页
华南农业大学汇编语言习题(附答案).docx_第2页
第2页 / 共54页
华南农业大学汇编语言习题(附答案).docx_第3页
第3页 / 共54页
华南农业大学汇编语言习题(附答案).docx_第4页
第4页 / 共54页
华南农业大学汇编语言习题(附答案).docx_第5页
第5页 / 共54页
点击查看更多>>
下载资源
资源描述

华南农业大学汇编语言习题(附答案).docx

《华南农业大学汇编语言习题(附答案).docx》由会员分享,可在线阅读,更多相关《华南农业大学汇编语言习题(附答案).docx(54页珍藏版)》请在冰豆网上搜索。

华南农业大学汇编语言习题(附答案).docx

题目名称 实验一汇编语言程序结构题目关键字源程序结构debug

题目录入时间

题目内容

—、实验目的

1.掌握汇编语言程序上机过程。

2.掌握汇编语言结构。

3.了解汇编程序、连接程序、DOS系统装入和返回功能。

4.掌握用DEBUG调试汇编语言程序的方法二、实验要求

1.编写完整的汇编语言程序:

(1)逆序输出字符串“BASEDADDRESSING”。

(2)从键盘上输入2个一位的正数,求出它们的和(假设和不超过1

位)。

(3)试编写一段程序,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字单元UP中;找出小于42H的无符号数的个数并存入字单元DOWN中。

2.在DEBUG下查看程序执行的过程,以及变量值的变化。

3.演示程序运行结果,请指导教师检查。

三、思考

1.汇编语言程序中语句END后的标号作用是什么?

2.采用标准序结构编制源程序,用ret结束程序运行返回操作系统时,可否将语句mainprocfar中的far属性去掉,为什么?

3.一个段的大小为多少?

一定是64KB吗?

如何在DEBUG下查看程序在内存的存放情况?

四、提交内容

将各个源程序代码、exe文件压缩为RAR后提交到作业系

统。

题目创建人题目注释

1.1.asm

DATASSEGMENT

Stringdb"BASEDADDRESSING"

count dw $-StringDATASENDS

STACKSSEGMENTSTACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATASMOVDS,AX

movcx,count ;循环次数

leasi,count-1 ;将最后一个字符‘G’的地址给si

L:

movah,2movdl,[si]decsi

int21hloopL

MOVAH,4CHINT21H

CODESENDS

ENDSTART

1.2.asm

DATASSEGMENT

xdb"x=$"ydb"y=$"

zdb"x+y=$"DATASENDS

STACKSSEGMENTSTACKSENDSCODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATASMOVDS,AX

movah,9 ;显示"x="leadx,x

int21h

movah,1 ;输入Xint21h

subal,30h

movcl,al ;将X放在CL

movah,9 ;显示"y="leadx,y

int21h

movah,1 ;输入Yint21h

subal,30h

addcl,al ;两数字相加

movah,9 ;显示"z="leadx,z

int21h

movah,2 ;显示结果movdl,cl

adddl,30hint21h

MOVAH,4CHINT21H

CODESENDS

ENDSTART

1.3.asm

DATASSEGMENT

arraydb128dup(41h,43h)up dw0

down dw0DATASENDS

STACKSSEGMENTSTACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATASMOVDS,AX

leadi,arraymovcx,256

L:

L1:

L2:

L3:



moval,[di]cmpal,42hjlL1

jaL2

incdownjmpL3

incupjmpL3

incdiloopL

MOVAH,4CHINT21H

CODESENDS

ENDSTART

题目名称 实验二程序结构与简单程序设计题目关键字简单程序设计

题目录入时

2013-4-122:

45:

55

—、实验目的

题目内容

1.掌握汇编语言源程序结构。

2.掌握汇编语言调试方法。

二、实验要求

1.编写完整的汇编语言程序:

(1)试编写一段程序,要求对键盘输入的小写字母用大写字母显

示出来。

(2)编写程序,从键盘接收一个小写字母,然后找出它的前导字母和后续字母,再按顺序显示这三个字符。

(3)试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”,若不相同则显示“NOMATCH”.

(4)编写程序,将一个包含有20个数据的数组M分成2个数组:

正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。

2.在DEBUG下查看程序执行的过程,以及变量值的变化。

3.演示程序运行结果,请指导教师检查。

三、思考

对输入的非字母字符如何处理?

2.字母“a”和“z”边界字符的处理方法是什么?

3.显示结果为多位数的时候如何输出?

四、提交内容

将各个源程序代码、exe文件,思考题的WORD文档压缩为RAR后提交到作业系统。

题目创建人题目注释

2.1.asm

DATASSEGMENT

crlfdb0ah,0dh,'$'DATASENDS

STACKSSEGMENTSTACKSENDSCODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATASMOVDS,AX

movah,1 ;输入数据会ALint21h

pushax ;将AX存进栈里

leadx,crlf;换行movah,9

int21h

popdx ;栈里数据放进DX,即将原先AX放进DXsubdl,20h ;小写变大写要减去20h

movah,2 ;输出int21h

MOVAH,4CHINT21H

CODESENDS

ENDSTART

2.2.asm

DATASSEGMENT

Stringdb'zabcdefghijklmnopqrstuvwxyza'DATASENDS

STACKSSEGMENT

STACKSENDSCODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATASMOVDS,AX

leadi,String

movah,1 ;输入字母int21h

L:

incdi ;先DI自加1,第一次就是‘a’的地址,不是‘z’cmpal,[di];直到找到字母和输入的相匹配

jnzL

decdi ;推前成为前端字母的地址

L2:

movcx,3 ;循环次数3

movdl,[di]incdi

movah,2int21hloopL2

MOVAH,4CHINT21H

CODESENDS

ENDSTART

2.3.asm

DATASSEGMENT

String1db"thisisaprogram"count1 dw$-String1String2db"thisisaprogram"count2 dw$-String2answer1db'match','$'answer2db'nomatch','$'

DATASENDSSTACKSSEGMENTSTACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATASMOVDS,AX

movax,count1movbx,count2

cmpax,bx ;比较两个字符串的长度,如果不等就是不匹配jnznext

movcx,count1 ;字符串长度leasi,string1

leadi,string2

L:

moval,[si]

cmpal,[di] ;比较两个字符串的字符,如果不等就跳

jnznextincsiincdiloopL

leadx,answer1 ;能到这里说明都匹配movah,9

int21h

jmpfinally ;跳去finally,避免顺序执行了next

next:

;显示不匹配

leadx,answer2movah,9

int21h

finally:

MOVAH,4CHINT21H

CODESENDS

ENDSTART

2.4.asm

DATASSEGMENT

Mdb5dup(-1,1,2,3)

Pdw0

Ndw0DATASENDS

STACKSSEGMENTSTACKSENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKSSTART:

MOVAX,DATASMOVDS,AX

leasi,M

movcx,20 ;循环次数

L:

moval,[si]

cmpal,0 ;和0比较判断正负

jlL1

L1:

L2:

L3:

jgL2

incNjmpL3

incPjmpL3

incsiloopL

movax,P ;输出P

movbl,10 ;设置除数10divbl

movbh,ah ;将ah(余数放在bh保留)movdl,al ;将商显示

adddl,30hmovah,2int21h

movdl,bh ;将余数显示adddl,30h

movah,2int21h

movax,N ;输出Nmovbl,10

divblmovbh,ahmovdl,aladddl,30hmovah,2int21hmovdl,bhadddl,30hmovah,2int21h

MOVAH,4CHINT21H

CODESENDS

ENDSTART

题目名称 实验三分支程序设计题目关键字分支结构

题目录入时间

2013-4-1420:

14:

57

—、实验目的

1.掌握汇编语言源程序结构。

2.掌握汇编语言分支结构程序设计方法。

题目内容

二、实验要求

1.编写完整的汇编语言程序:

(1)试编写一段程序,求出首地址为DATA的1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1