8086汇编语言程序设计基本方法

8086汇编语言程序设计基本方法

ID:21288373

大小:701.50 KB

页数:23页

时间:2018-10-20

8086汇编语言程序设计基本方法_第1页
8086汇编语言程序设计基本方法_第2页
8086汇编语言程序设计基本方法_第3页
8086汇编语言程序设计基本方法_第4页
8086汇编语言程序设计基本方法_第5页
资源描述:

《8086汇编语言程序设计基本方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、5.6汇编语言程序设计的基本方法通常,编制一个汇编语言源程序应按如下步骤进行:⑴明确任务,确定算法。⑵绘制流程图(包括确定内存单元和分配寄存器)。⑶根据流程图编写汇编语言程序。⑷上机调试程序。程序的基本结构有四种:顺序结构、分支结构、循环结构和子程序结构。5.6.1顺序程序设计顺序结构也称线性结构,其特点是其中的语句或结构被连续执行。顺序程序是最简单的,也是最基本的一种程序结构。这种结构的程序从开始到结尾一直是顺序执行的,中途没有任何分支。从这种结构的流程图来看,除了有一个起始框,一个终止框外,就是若干执行框,没有判断框。指令指针IP值线形增加,IP=IP+1

2、S1S2S3开始结束[例1]求两个数的平均值。这两个数分别存放在X单元和Y单元中,而平均值放在Z单元中。源程序编制如下:DATASEGMENTXDB8CHYDB64H;赋予初值ZDB?;分配存储空间DATAENDSSTACKSEGMENTDW20HDUP(0);给堆栈段分配一个TOPLABLEWORD;据区共32个字,每个STACKENDS;字的内容均为0CODESEGMENTMAINPROCFAR;定义子程序名为MAIN,类型FARASSUMECS:CODE;把段寄存器和ASSUMEDS:DATA;段名对应起来ASSUMESS:STACKSTART:PUSH

3、DSMOVAX,0PUSHAXMOVAX,DATA;给数据段赋初值MOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,OFFSETTOPMOVAL,XADDAL,Y;两数低字节相加结果送ALMOVAH,0ADCAH,0;两数高字节带进位相加SHRAX,1MOVZ,ALRETMAINENDPCODEENDSENDSTART例2编写程序,计算(W-(X*Y+Z-100))/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。例3把非压缩十进制数DAT1转换为压缩十进制数例2编写程序,计算(W-(X*Y+Z-100))/W,其

4、中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。DATASEGMENTWDW268XDW–73YDW48ZDW–85DATAENDSSTACKSEGMENTDW100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,X;计算X*YIMULYMOVCX,AX;用CX存储结果低位MOVBX,DX;用BX存储结果高位MOVAX,Z;计算X*Y+ZCWDADDCX,AXADCBX,DXSUBCX,100SBBBX,0MOVA

5、X,WCWDSUBAX,CXSBBDX,BXIDIVWMOVAH,4CHINT21HCODEENDSENDSTART例3把非压缩十进制数DAT1转换为压缩十进制数。·STACK64H·DATADAT1DW0908H;非压缩十进制数0908H·CODEBEGIN:MOVAX,@DATAMOVDS,AXMOVAX,DAT1;AX←0908HMOVCL,4;CL←4SALAH,CL;09字节左移4位,AH=90HROLAX,CL;9008H字循环左移4位,AX=0089HROLAL,CL;89字节循环左移4位,AL=98HMOVBYTEPTRDAT1,AL;DAT1

6、←98H,压缩十进制数98HMOVAH,4CH;返回DOSINT21HENDBEGIN返回5.6.2分支程序设计分支程序结构也称条件结构,通常是在两种或两个以上的不同的操作中选择其中的一个,如下图所示:分支是通过条件转移指令来实现的。分支结构有一个共同点:运行方向总是向前的。IP受标志位的影响而跳变,影响标志的指令CMP、TEST、JXX条件S1S2条件SS1S2Sn条件NNYY…两路分支程序设计例4用比较指令和条件转移指令实现两路分支的程序段。…MOVAX,M;假定M和N为有符号数MOVBX,NCMPAX,BX;比较M和N的大小,影响标志位,准备条件JGNE

7、XT;M>N时转移,注意若M、N为无符号数时用JA指令……;分支程序2JMPDONENEXT:……;分支程序1……DONE:RET[例5]现有一符号函数:1当X>0时Y=0当X=0时-1当X<0时假定X为-25,且存放在VARX单元中,函数值Y存放在VARY单元,试编写程序根据X的值确定函数Y的值。根据题意画出流程图如下:实现符号函数程序的流程图开始AL←XAL≥0?Y←-1结束AL=0Y←1Y←0YYNN编写程序如下:DSEGSEGMENTVARXDB-25VARYDB?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTAR

8、T:MOVAX,DSEGMOVDS,A

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

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

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