- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《微机原理和接口通信》之汇编语言程序设计实验指导
基础实验一汇编过程实验
使用文本编辑程序建立名为B.ASM的源程序文件,并输入下面程序内容,然后存盘DATA SEGMENT
X DD 99AABBCCH
Y DD
Z DD ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV DI, OFFSET Z
MOV AX, WORD PTR X
ADD AX, WORD PTR Y
MOV [DI], AX
MOV AX, WORD PTR X[2]
ADC AX, WORD PTR Y[2]
MOV [DI+2], AX
EXIT: MOV AX, 4C00H
INT 21H
CODE ENDS
END START
问:
程序的功能是什么?数据标号的地址(偏移量)是多少?
标号EXIT后面的2条指令有什么功能?
在处设置断点,在程序暂停时相应内存单元的内容,看结果是否正确。
::’$’结束。
DATA SEGMENT
MESS DB Hello Kitty!,0AH,0DH,$
DATA ENDS
2)显示信息用DOS功能调用的9号功能。先将要显示信息的段地址送DS,偏移地址送DX。
MOV AX, DATA ;
MOV DS, AX ;
MOV DX, OFFSET MESS;
MOV AH, 9
INT 21H
3)为避免运行程序后死机,在程序的最后加上返回DOS的语句:
EXIT: MOV AX, 4C00H
INT 21H
基础实验二、分支程序设计
一、实验目的:掌握分支程序的基本设计方法。
二、实验内容:
1.统计学生成绩:设有10个学生成绩分别是56、69、84、82、93、74、80、99、100和63分,并保存在以GRADE为首址的单元中。试编制程序分别统计低于60分、60~~~~~……
显然,‘JAN’的地址为MONTAB+0,‘FEB’的地址为MONTAB+3,也就是说,根据用户给定的月份数可算出与其相对应的表格地址是:MONTAB+(月份数-1)*3 。
3) 等待接收一个从键盘输入的字符,用DOS功能调用的1号功能,出口参数是:AL=输入字符的ASCII码。
4)收到输入字符的ASCII码后,还需先将其转变成数字后才能用于查表。
程序框图如右图:
基础实验三、循环程序设计
一、实验目的:
熟悉循环程序的设计方法,掌握循环程序的结构。
二、实验内容:
1.编制一个程序,把BX寄存器的内容以十六进制的形式在屏幕上显示出来。
编程提示:BX是十六位寄存器,以十六进制数的形式从左到右在屏幕上显示出来,可用循环结构来完成,每次显示一个十六进制数位,需循环显示4次。需显示的字符要先变成ASCII码的形式才能在屏幕上显示。因此,循环体中还应包括从十六进制数到ASCII码的转换。查表得知,0~~~~~?ASM形式保存后,进行汇编、连接生成可执行文件,在微机上运行,观察运行结果。注意在运行程序前观察或写入BX数值。
编制程序,将一个首址为A的N字数组进行排序,使该数组中的数按照从大到小的次序排列。
编程提示:
这是一个多重循环的程序,每次从外层循环再次进入内层循环时,初始条件必须重设。
采用冒泡排序法,从第一个数开始依次对相临的两个数进行比较,如果次序不对则将这两个数交换位置;否则,不变。N个数需要做N-1次比较。在进行了第一遍的N-1次比较后,最小的数已经放到了最后,所以,第二次比较只需考虑N-1个数,即比较N-2次;第三遍则只需做N-3次比较……,总共最多做N-1遍比较就可以完成排序。
数组要在数据段中进行定义。
例如:
DATA SEGMENT
A DW 60H, 65H, 32H, 93H, 17H
56H, 50H, 27H, 70H, 92H
DW 10H, 64H, 40H, 43H, 89H
38H, 30H, 75H, 75H, 64H
N=($-A)/2
DATA ENDS
在代码段程序的开始,必须初始化段寄存器DS,以便程序中使用在数据段定义的数据。例如:MOV AX,DATA
MOV DS,AX
程序框图见右图。
注意:
在本程序中的数组需在数据段中进行定义。
要检查程序执行结果是否正确,需要观察数据段存放的数据是否按照要求的顺序进行排列。因此,要在DEBUG下运行完程序后进行观察。
拓展提高实验一、子程序设计
一、试验目的:熟悉子程序设计过程,掌握子程序设计方法和
您可能关注的文档
最近下载
- 2023-2024学年上海市黄浦区部分学校八年级下学期期中考数学试卷含详解含答案.docx
- 人教版高中历史高考总复习全册知识点考点梳理、重点题型分类巩固练习.doc
- 部编版语文小学二年级下册第六单元大单元教学教材分析集体备课.pptx
- 龙野一雄论经方证治:感冒与治疗详解(重发).pdf VIP
- 三氧化铬(铬酸酐)理化性质及危险特性表MSDS.doc VIP
- 试论数字检察院建设的整体构想.pdf VIP
- ABB智能定位器TZIDC说明书中文正式版.doc
- 人教版劳动教育三年级下册全册教学设计.pdf VIP
- 大学生职业规划大赛《播音与主持艺术专业》生涯发展展示PPT.pptx
- 幼儿园厨房设备配置清单.doc
文档评论(0)