微机原理与汇编语言第07章

微机原理与汇编语言第07章

ID:15258200

大小:381.00 KB

页数:69页

时间:2018-08-02

微机原理与汇编语言第07章_第1页
微机原理与汇编语言第07章_第2页
微机原理与汇编语言第07章_第3页
微机原理与汇编语言第07章_第4页
微机原理与汇编语言第07章_第5页
资源描述:

《微机原理与汇编语言第07章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章汇编语言程序设计本章重点:了解编写汇编语言程序的基本步骤。汇编语言的程序设计方法一般包括顺序、分支、循环、子程序和宏程序等。结合编写汇编语言程序的实例分析。掌握汇编语言程序的设计原则、基本方法和技巧等。第7章汇编语言程序设计7.1简单程序设计应用举例7.2分支程序设计及应用举例7.3循环程序设计及应用举例7.1简单程序设计应用举例简单程序是指顺序结构程序,在程序中不包含任何转移类指令.执行时按指令的先后次序从第一条开始逐条执行,直至程序结束.例题[例]:编写一个程序,求W=(X2-Y2)/Z,设X、Y、均为一个8位无符号数

2、,运算不考虑溢出。分析:表达式改写为W=(X+Y)(X-Y)/Z,因为表达式简单,根据表达式运算次序来编写程序,由于运算不考虑溢出,所以不考虑(X+Y)>256情况。解:程序清单如下:DSEGSEGMENTDATXDB80;假定X为80DATYDB50;定义Y的值DATZDB5;定义Z的值DATWDB?;定义保存计算结果的存储单元DSEGENDSSTEGSEGMENTPARASTACKDW20HDUP(0)STEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:STEGBEGIN:MOVAX,DS

3、EGMOVDS,AXMOVAL,DATX;取XADDAL,DATY;计算(X+Y)→(AL)MOVBL,DATX;取XSUBBL,DATY;计算(X-Y)→(BL)MULBL;计算(X+Y)×(X-Y)→(AX)MOVCL,DATZ;取ZDIVCL;计算(X+Y)×(X-Y)/ZMOVDATW,AL;保存结果MOVAH,4CH;返回DOSINT21HCSEGENDSENDBEGIN例题1有X,Y两个16位数3456H和0ABCDH,求两数之和,并将结果送到Z单元.解:①编写流程图下一页例题(续上页)程序清单DATASEGMENT

4、XDW3456HYDW0ABCDHZDW00DATAENDS;设置数据段,取名DATACODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATA;取数码段DATA段址至AXMOVDS,AX;段地址送DSLEASI,X;将X的有效地址送S1LEADI,Y;将Y的有效地址送D1MOVAX,[SI];将X的值送AXADDAX,[DI];AX+Y的值送回AXMOVZ,AX;将AX的值送到存储单元ZMOVAH,4CH;设置功能号INT21H;系统功能调用,返回DOSCODEENDSENDSTART返回

5、[例7.1.2]:编写一个程序,实现键入任一个字符,显示其十进制的ASCⅡ码(例如:键入A,显示41H)。分析:首先接受一个字符,其ASCⅡ码一定在0~255之间,把二进制的ASCH码转换为十进制后输出即可。转换的算法是:用该数除以100,商是二进制的百位;再把余数除以10,商是二进制的十位;余数是二进制的个位。二进制的百位、十位、个位加上30H即为字符的百位、十位、个位,然后输出即可。解:程序清单如下:CODESEGMENTASSUMECS:CODESTART:MOVAH,1INT21H;读一个按键MOVAH,0;准备做AX/

6、100,所以要把AH清0MOVBL,100;除法指令不允许用立即数,把除数放在BL中DIVBL;除以100MOVCL,AL;保存商,即百位数ADDCL,30H;把百位数转化成ASCⅡ码MOVAL,AH;取除以100的余数到BL中,作下一次的被除数MOVAH,0;被除数高位部分清0MOVBL,10;准备除数10DIVBL;除以10ADDAL,30H;商是十位数,转换成ASCⅡ码ADDAH,30H;把余数个位数转换成ASCⅡ码MOVBX,AX;用BX保存转换后的十位和个位数字MOVAH,2MOVDL,13INT21H;输出回车MOV

7、DL,10INT21H;输出换行符MOVDL,CL;输出百位数INT21HMOVDL,BL;输出十位数INT21HMOVDL,BL;输出个位数INT21HMOVAH,4CHINT21HCODEENDSENDSTART[例7.1.3]:以BUF为首地址的内存单元中存有1~15的平方表。查表求X单元中数(在1~15之间)的平方值,并送回X单元。分析:表是一种常见的数据结构,平方表是一个数据表,为便于查表,需要组织好表的结构,即表中的平方值按顺序存放。查表的方法是顺序查表法,以X为索引值,将索引值和平方表的首地址相加,其和作为表内偏移

8、地址,取出相应X的平方值。解:程序清单如下:NAMEEXAM3DATASEGMENTBUFDB1,4,9,16,25,36,49,64DB81,100,121,144,169,196,255XDB12DATAENDSSTACKSEGMENTSTACK’STACK

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。