欢迎来到天天文库
浏览记录
ID:44463576
大小:482.00 KB
页数:68页
时间:2019-10-22
《微机原理12(5)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、上节回顾:1.汇编语言语法和DOS功能调用本节主要内容:1.汇编语言程序设计第5章汇编语言程序设计程序设计思想:模块化(结构化)程序设计思想面向对象程序设计思想汇编语言程序设计:模块化程序设计方法:1)子程序设计是模块化程序设计的基础2)模块化:将一个较大的程序分解为多个具有独立功能的程序模块,这些独立模块称为子程序或过程.3)将各个模块组装联调,完成整个程序一个实用程序往往有很多功能,若源程序很长,则出一点错很不好找,而且每修改一次都要重新汇编,既费时间,又不方便。所谓模块化,就是把一个大程序化分成许多具有独立功能
2、的小程序(称为模块),单独汇编成目标文件。各模块之间不存在语句的直接跳转,数据交流采用子程序调用方式,有入口参数,出口参数。模块化设计是目前程序设计方法的主流,便于软件人员分工合作,编制大型软件。模块化设计一级子模块主模块采样输入结果输出算法计算定时选最大值选最小值计算xi二级子模块例:峰值——均值滤波的模块划分解:算法为n为采样次数n≥3Xi为第i次采样值(8bit)X为滤波结果n-21x=[∑xi-MAX(xi)-MIN(xi)]i=1n~~其中:汇编语言程序的步骤:好程序的标准1.结构清晰、易读、易维护2.占内
3、存少3.运算速度快1.分析实际问题,抽象成数学模型2.根据数学模型,确定算法3.画流程框图4.编程5.调试一、程序设计基本步骤或或起始框执行框判断框终止框连接框标准流程图符号1.顺序2.分支YN…3.情况一、程序的基本结构YN4.满足条件循环YN5.满足条件退出循环5.2顺序结构程序设计语句1语句2语句3图5.2顺序结构流程开始结束例5.1用8086CPU的指令实现两个32位无符号数乘法的程序设计。1)明确任务,确定算法。2)绘流程图(图5.3)ABCD×BDADCBCA+02468aBADC积Ce设置地址指针AX←
4、被乘数的低16位BSI←乘数的低16位D部分积1=B×D部分积1存入缓冲区AX←被乘数的高16位A部分积2=A×D部分积1的高16位+部分积2的低16位进位加至部分积2的高16位结果存入缓冲区部分积3=B×C与前面结果的对应16位相加保存进位部分积4=A×C恢复进位部分积4与前面的和相加保存结果到缓冲区DI←乘数的高16位C11结束开始图5.3例5.1流程图3)根据流程图编写汇编语言程序1NAME32BITMULTIPLY2DATASEGMENT3MULNUNDW0000,0FFFFH,0000,40FFFH,4DU
5、P(?)5DATAENDS6STACKSEGMENTPARASTACK’STACK’7DB100DUP(?)8STACKENDS9CODESEGMENT10ASSRMECS:CODE,DS:DATA,11SS:STACK,ES:DATA12MAINPROCFAR13START:PUSHDS14MOVAX,015PUSHAXMOVAX,DATA17MOVDS,AX18MOVES,AX约定将这部分称为框架的前半部19LEABX,MULNUM20MULU32:MOVAX,[BX]21MOVSI,[BX+4]22MOVDI,
6、[BX+6]23MULSI24MOV[BX+8],AX25MOV[BX+0AH],DX26MOVAX,[BX+2]27MULSI28ADDAX,[BX+0AH]29ADCDX,030MOV[BX+0AH],AX31MOV[BX+0CH],DX32MOVAX,[BX]MULDI34ADDAX,[BX+0AH]35ADCDX,[BX+0CH]36MOV[BX+0AH],AX37MOV[BX+0CH],DX38PUSHF39MOVAX,[BX+2]40MULDI41POPF42ADCAX,[BX+0CH]43ADCDX,0
7、44MOV[BX+0CH],AX45MOV[BX+0EH],DX46RET47MAINENDP48CODEENDS49ENDSTART约定将这部分称为框架的后半部以后编程将省略框架例5.2用查表的方法将一位十六进制数转换成与它相应的ASCⅡ码。1)明确任务,确定算法。2)绘流程图(图5-4)SI←表起始地址AH←0AL←HEX计算表地址SI←SI+AXAL←[SI]ASCI←AL开始结束图5.4例5.2流程3)根据流程图编写汇编语言程序DATASEGMENTTABLEDB30H,31H,32H,33H,34H,35H
8、,36H,37HDB38H,39H,41H,42H,43H,44H,45H,46HHEXDB?ASCIDB?DATAENDSTACK1SEGMENTPARASTACKDW20HDUP(0)TOPLABELWORDSTACK1ENDSCOSEGSEGMENTASSUMECS:COSEG,DS:DATA,SS:STACK1BEING:MOVAX,D
此文档下载收益归作者所有