中南大学微机原理提高实验讲解课件_第1页
中南大学微机原理提高实验讲解课件_第2页
中南大学微机原理提高实验讲解课件_第3页
中南大学微机原理提高实验讲解课件_第4页
中南大学微机原理提高实验讲解课件_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理提高实验讲解中南大学实验一

题目3.编写一段程序,在内存中自SQTAB(0200H)地址开始的连续十个单元中存放0~9的平方值。要求利用计算法查表求NUM(0210H)单元中指定数(0~9中的任意一数)的平方值,并将所求平方值存入RESULT(0211H)单元中。分析1.题目中有哪些变量?

2.题目的切入口是什么?3.完成程序还需要利用哪些寄存器?4.程序的大致思路是什么?3.由第二问可知,已经用到的寄存器有AL和BX,输入数据时需要调用中断,因此还要用到AH。 分析4.大致思路:

输入数据(调用输入中断)表转换XLAT存储数据AL→RESULT注意:输入数据是以字符的十六进制ASCII码存储,为了方便,在表转换中可先将其转化为十进制存储。

程序编写1.数据准备

首先要定义好所要用到的变量(上面已经指出)MOV[0200H], 00HMOV[0201H], 01HMOV[0202H], 04HMOV[0203H], 09HMOV[0204H], 10HMOV[0205H], 19HMOV[0206H], 24HMOV[0207H], 31HMOV[0208H], 40HMOV[0209H], 51H

SQTABDW0200HNUMEQU[0210H]RESULTEQU[0211H]用MOV语句从0200H开始至0209H依次存储1~9的平方(十六进制表示)SQTAB存储表的地址NUM为[0210H]存储单元RESULT为[0211H]存储单元2.输入数据程序编写输入数据时,为了增强程序的抵抗力,减少不必要的BUG,因此在输入后最好判断输入的数据是否正确。在此用CMP和跳转语句实现,校验输入数据,正确则继续往下执行,不正确则跳回之前重新输入。输入数据至ALAL<9AL>0输入正确NNYY程序编写3.表转换在转换之前我们先了解一下XLAT的转换原理:使用XLAT之前必须先建立一个表格,将表格的起始地址装入BX寄存器中。AL中事先也要赋一个初值,这个值等于表头地址与所要查找的某一项之间的位移量。从表中查到的代码值自动送入AL寄存器中。由红色字段可知在本程序中AL必须为0~9,因此必须把字符‘0’~‘9’转换为数字0~9。程序编写3.表转换十进制数字AL存储器实际值SQTAB对应的平方十进制数字AL存储器实际值SQTAB对应的平方03000H53519H13101H63624H23204H73731H33309H83840H43410H93951H程序编写3.表转换SUBAH,AH;将AH清零SUBAL,30H;字符与数字相差30H,将输入的ASCII码转换为数字MOVNUM,AL;这条语句在程序中基本无用,输入数据存在AL中, ;换算后直接可以用来查表MOVB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论