《微机原理与接口通的信》之汇编语言程序设计实验指导.doc

《微机原理与接口通的信》之汇编语言程序设计实验指导.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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下运行完程序后进行观察。 拓展提高实验一、子程序设计 一、试验目的:熟悉子程序设计过程,掌握子程序设计方法和递归调用子程序时参数传递方法。 二、实验内容: 1.编程将

文档评论(0)

ayangjiayu5 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档