微型计算机原理及应用(第三版)-六.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:59 大小:3.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微型计算机原理及应用(第三版)-六.ppt

微型计算机原理及应用(第三版)-六.ppt

预览

免费试读已结束,剩余 49 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章微型计算机的程序设计在了解和熟悉了86系列指令系统的基础上,本章将介绍程序设计的一般过程,以及几种典型的程序形成的编写方法。6.1程序设计步骤(2)建立数学模型:在对问题全面理解后,需要建立数学模型,这是把问题向计算机处理方式转化的第1步骤。建立数学模型是把问题数学化、公式化,有些问题比较直观,可不去讨论数学模型问题;有些问题符合某些公式或某些数学模型,可以直接利用;但有些问题没有对应的数学模型可以利用,需要建立一些近似数学模型模拟问题,由于计算机的运算速度很快,所以运算精度可以很高,近似运算往往可以达到理想精度。对初学者来说,主要是学习程序设计语法,复杂的数学模型可暂不去考虑。(3)确定算法:建立数学模型后,许多情况下还不能直接进行程序设计,需要确定符合计算机运算的算法。计算机的算法比较灵活,一般要优选逻辑简单、运算速度快、精度高的算法用于程序设计;此外,还要考虑占用内存空间小、编程容易等特点。算法可由计算机语言、日常生活语言、表格、自定义关系图或流程图等按计算机能够接受的方法进行描述,读者采用哪一种方式描述算法,有时还取决于习惯。(4)绘制程序流程图:程序流程图是用箭头线段、框图及菱形图等绘制的一种图。用它能够把程序内容直接描述出来,因此,它在程序设计中应用很普遍。程序流程图如图6.1所示。(5)内存空间分配:汇编语言的重要特点之一是能够直接用机器指令或伪指令为数据或代码程序分配内存空间,当然,在程序中没有指定分配存储空间时,系统会按约定方式分配存储空间。86系列存储器结构是分段的,如代码段、数据段、堆栈段或附加段,在程序设计时要考虑分段结构,要执行的程序段应设在当前段(活动段)中。程序在运行时所需要的工作单元应尽可能设在CPU寄存器中,这样存取速度快,而且操作方便。(6)编制程序与静态检查:编制程序就是按计算机语法规定书写计算机解决问题的过程。汇编语言编程应按指令系统和伪指令的语法规则进行,汇编语言符号虽然简单,但它的含意并不直观。初学者应多参照指令表或指令说明进行,以免给程序调试造成许多麻烦。编制程序首先关心的还是程序结构,它应是模块化和通用子程序结构,程序的结构要层次简单、清楚、易读、易维护为好。若程序运行时还要伴随人机对话过程,还应考虑用户在应用时操作简便,并有相应的提示给用户一些指导。静态检查是上机调试前的最后一步,只要细心,一般可以查出许多错误,这也就减少了程序调试时的许多麻烦。图6.16.2简单程序(2)根据86系列指令系统,可以直接对累加器AX做字操作,但在低位相加后,会影响标志寄存器的进位位CF,所以,要用带进位的加法指令。(3)绘制程序流程图,如图6.2所示。图6.2(4)内存空间分配:被加数、加数及和在内存的空间分配见表6.1所示(见书)。(5)编制的程序如下:MOVAX,1000HMOVDS,AX;DS=1000HMOVSI,50H;被加数指针SI=50HMOVDI,52H;加数指针DI=52HMOVBX,54H;和的指针BX=54HCLC;清CFXORAX,AX;清AXMOVAX,[SI];取一个字到AXADCAX,[DI];AX←AX+[DI]+CFMOV[BX],AX;存一个字到[BX]HLT;暂停【例6.2】将内存(10050)单元的内容拆成两段,每段4位,并将它们分别存入内存(10051)和(10052)单元。即(10050)单元中的低4位放入(10051)的低4位,(10050)单元中的高4位放入(10052)的低4位,而(10051)和(10052)的高4位均为零。(1)分析题目:这个题目所提出的任务在十六进制显示及二十进制计算中常遇到的。我们现在假设内存(10050)中放着7AH,则题目要求就是把7AH拆成07H和0AH两部分,并把0AH放在(10051)单元,07H放在(10052)单元。我们在拆字时,想取得一个数的前4位和后4位可以用移位指令的方法,也可以用逻辑与一个0F0H(二进制为11110000)和逻辑与一个0FH(二进制为00001111)的办法。(2)根据指令系统中含有的指令,先取出该数用逻辑指令与上一个0FH,得到低4位,存入内存。再取出该数用移位指令逻辑右移SHR(见图5.10(c))4次,取得高4位,存入内存,即可完成此题目。(3)绘制程序流程图,如图6.3所示。(4)内存空间分配:把7AH拆成07H和0AH两部分,它们在内存空间的分配情况见表6.2所示(见书)。图6.36.3分支程序图6.4【例6.3】求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放在内存(2800)单元中。(1)分析题目:此题目中,AX累加器和BX寄存器中的数是不知道的。对两个不知大小的数相减并求绝对值,显然应该先解决哪一个值