- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式微机原理
《嵌 入 式 微 机 原 理
实验二 分支结构程序设计
实验目的
掌握分支结构程序设计的基本方法。
掌握无符号数和带符号数比较大小转移指令的区别。
熟悉典型指令的功能及其应用。
实验内容
在数据区中定义3个带符号字节变量。
编写程序将其中的最大数找出并送到MAX单元中。
编程思路
该题目采用分支程序设计方法,为了实现指定功能,应从以下3个方面考虑:
初始化数据存储区:在内存设定3个字节变量和一个MAX单元,分别保存3个字节数据和最终结果。
3个数据的比较:先将第一个数送到AL寄存器,与第二个数进行比较,两个数据中的大数送AL保存,然后再与第三个数进行比较,大数依然保存到AL中,这样两两比较后,AL的内容就是3个数中的最大数,将其送到MAX单元中即可。
程序中要确定带符号数比较大小转移时应选择哪一组条件转移指令,以满足题目要求。
实验参考程序
本实验的参考程序设计如下:
DATA SEGMENT ;数据段定义
X DB -50 ;X定义为字节数据,赋初值-50
Y DB 100 ;Y定义为字节数据,赋初值100
Z DB 40 ;Z定义为字节数据,赋初值40
MAX DB ? ;MAX定义为字节数据,预留空间
DATA ENDS
CODE SEGMENT ;代码段定义
ASSUME DS:DATA,CS:CODE ; IP,CS,DS=()?
START: MOV AX,DATA ;初始化DS. IP =()?
MOV DS,AX
MOV AL,X ;取X到AL中
CMP AL,Y ;X和Y比较
JG NEXT ;如XY转NEXT. IP =()?.
MOV AL,Y ;否则Y取到AL中
CMP AL,Z ;Y和Z比较
JG EXIT ;如YZ转EXIT. IP =()?
MOV AL,Z ;否则Z取到AL中
JMP EXIT ;无条件跳转到EXIT. IP =()?
NEXT: CMP AL,Z ;X和Z比较
JG EXIT ;如XZ转EXIT. IP =()?
MOV AL,Z ;否则Z取到AL中
EXIT: MOV MAX,AL ;AL中内容送到MAX单元
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START ;汇编结束
实验三 单循环结构程序设计
实验目的
熟悉单循环结构程序设计的方法,注意循环的初始值设定和退出循环的条件。
掌握在无符号字节整数数组中找出最小数的程序设计方法,注意数组指针的应用。
熟悉典型指令的功能及其应用。
实验内容
要求从内存中BUF单元开始存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
注意数组中每个数据地址的变化,合理选用相关指令。
编程思路
该题目要求掌握单循环程序设计的方法,为了实现相关功能,应从以下3个方面考虑:
确定数组中数据的起始地址,采用地址指针的变化进行合理指向。
设定单循环结构中的初始入口、循环体、判断条件等。
由于已知循环的次数,可确定计数器使用,选择LOOP指令实现规定功能。
实验参考程序
本实验的参考程序设计如下:
DATA SEGMENT
BUF DB 12H,35H,61H,01H,52H,8AH,0FFH,10H,2BH,3FH
CN EQU $-BUF ;定义数组指针变量
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA; IP,CS,DS=()?
START: MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET BUF ;取数组偏移地址. BX =()?
MOV C
文档评论(0)