微机实验报告(1).docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
.... .. .. .... . ... . . 《微机实验》报告 实验名称指导教师 KeilC 小英 的使用与汇编语言上机操作 专业班级 中法 1201 肖洋 学号 U201214343 联系 一、任务要求 掌握 KeilC 环境的使用 )字节拆分、合并:调试 e421.asm 程序, 观察相关寄存器和单元的容。 )数据块填充:调试 fill.asm 程序,观察相关寄存器和单元的容。 编写两个十六位数的加法程序。 有两个十六位无符号数, 分别存放在从 20H 和 30H 开始的数据区中, 低八位先存, 高八位在后,和存于 R3(高八位)和 R4(低八位),进位位存于 R2。 二、设计思路 字节拆分、合并程序: 利用汇编语言中的 XCHD 和 SWAP 两个语句来实现将八位二进制数拆分为两个四位二进制 数并分别存储于不同的存储空间的功能, BCD码与 30H 相或(加上 30H )得到 ASCII 码。 将两个 ASCII 码和 0FH 相与(高四位清零)得到 BCD 码,利用 SWAP 语句将高位数放至高四位,将高位数和低位数相或可实现字节的合并。 数据块填充程序: 将 R0 用作计数器, DPTR用作片外数据指针, A 作为原始数据来源, 依顺序在片外的存 储单元容填充数据。 利用循环语句来减少程序长度, 并控制填充单元个数为片外 100H 个。 (通过 R0 的进位控制) 两个十六位数加法程序: 把第一个十六位无符号数的地八位和高八位分别存于 20H 和21H 中, 把第二个十六位无 符号数的地八位和高八位分别存于 30H 和 31H 中,对 20H 和30H 中的两个低八位进行 ADD 加法操作, 结果存于 R4 中; 然后对 21H 和 31H 中的两个高八位进行 ADDC 带进位的加法操作, 结果存于 R3 中. 然后将累加器 A 清零,并和 #00H 进行 ADDC 带进位的加法操作,结果产生进位数并存于 R2 中,程序结束。 三、资源分配 字节拆分、合并程序: 片 30H 单位存放原 BCD 码,31H 和 32H 存放拆分后的两个 ASCII 码,33H 存放合并后的 BCD 码。 数据块填充程序: R0 作为计数器, DPTR 作为数据指针,片外 RAM空间从 7000H 开始填充。 两个十六位数加法程序: 20H,21H: 第一个数的低八位和高八位 30H,31H :第二个数的低八位和高八位 R4 :加法结果的低八位 R3 :加法结果的高八位 R2 :加法结果的进位 四、流程图 字节拆分、合并程序 2. 数据块填充程序 3. 两个十六进制数相加程序 五、源代码 (含文件头说明、语句行注释) 字节拆分、合并程序File name: e421.asm Description: 1 字节 BCD码转换为 2 字节 ASCII 2 字节 ASCII 码转化为 1 字节 BCD码Source used: 30H: BCD data 31H, 32H :ASCII data 31H, 32H -33H ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP, #40H ; 赋堆栈指针 MOV 30H, #49H ;30H 单元赋值 MOV R0, #32H ;R0 指针赋值 MOV R0, #0 MOV A, 30H ;32H 单元清零 XCHD A, R0 ; 拆分字节 ORL 32H, #30H ; 转换为 ASCII SWAP A ORL A, #30H ; 转换为 ASCII MOV 31H, A ; 结果存于 31H 单元 MOV A, 31H ; 从 31H 单元取值 ANL A, #0FH SWAP A ; 转换为 BCD MOV 33H, A ; 结果存于 33H 单元 MOV A, 32H ; 从 32H 单元取值 ANL A, #0FH ORL 33H, A ; ; 转换为 BCD 合并字节 HERE: SJMP HERE ; 踏步 END 数据块填充程序:将片外 RAM 7000H-70FFH单元按一定规律填充File name: fill.asm Source used: R0: 计数器 DPTR: 片外数据指针 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#40H FILL: CLR A ;A 寄存器清零MOV R0, #00H ; 设循环计数器MOV DPTR, #7000H ; 设数据指针 FILL1: MOVX DPTR, A INC A ;A ; 传送到片外 RAM 容加 1 INC DPTR ; 修改数据指针 INC R0 ; 修改循环计

文档评论(0)

文档查询,农业合作 + 关注
官方认证
内容提供者

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

认证主体土默特左旗农特农机经销部
IP属地内蒙古
统一社会信用代码/组织机构代码
92150121MA0R6LAH4P

1亿VIP精品文档

相关文档