汇编语言程序设计(顺序分支).ppt

汇编语言程序设计(顺序分支).ppt

ID:52127063

大小:285.50 KB

页数:10页

时间:2020-04-01

汇编语言程序设计(顺序分支).ppt_第1页
汇编语言程序设计(顺序分支).ppt_第2页
汇编语言程序设计(顺序分支).ppt_第3页
汇编语言程序设计(顺序分支).ppt_第4页
汇编语言程序设计(顺序分支).ppt_第5页
资源描述:

《汇编语言程序设计(顺序分支).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.1汇编语言程序设计顺序结构程序——简单程序结构无分支、无循环、无转移程序。流程图的特点,表现为只有起始、终止框、说明处理框,而无判断框。例、用字节加法,对两个16位数做加法运算。这两个数从地址0050H开绐连续存放。程序清单如下:MOVAX,DATAMOVDS,AXMOVSI,0050H;被加数指针MOVDI,0052H;加数指针MOVBX,0054H;和的指针MOVAL,[SI];取被加数低8位ADDAL,[DI];低位相加MOVAH,[SI+1];取被加数高8位ADCAH,[DI+1];高位相加MOV[BX],AX;保存运算结果INT20H;结束起始终

2、止保存运算结果AH=高8位相加AH=被加数高8位AL=低8位相加AL=被加数低8位SI=50H,DI=52H,BX=54HDS=3000H数据段定义为:DATASEGMENTORG0050HDB34HDB12HDB78HDB56HDB2DUP(?)DATAENDS如数据段定义为:DATASEGMENTORG0050HDW1234HDW5678HDW?DATAENDS程序也可改为:MOVAX,DATAMOVDS,AXMOVSI,0050H;被加数指针;MOVDI,0052H;加数指针MOVBX,0054H;和的指针MOVAX,[SI];取被加数低8位ADDAX,

3、[DI];低位相加MOV[BX],AX;保存运算结果INT20H;结束3.1汇编语言程序设计例、编写计算f=(V-(X*Y+Z-500))/X的程序。X、Y、Z、V均为有符号16位二进制数。DATASEGMENTXDW0100HYDW01ABHZDW-2100HVDW6200HFDW?,?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XIMULY;DX:AX=X*YADDAX,ZADCDX,0;DX:AX=X*Y+ZSUBAX,500HSBBDX,0;DX:AX=()

4、此处注意进位和借位的处理方法。MOVBX,AXMOVCX,DX;保存中间结果MOVAX,VCWD;DX:AX=VSUBAX,BXSBBDX,CX;DX:AX=((V-())IDIVXMOVAH,4CHINT21HCODEENDSENDSTARTMOVF,AX;保存商MOVF+2,DX;保存余数3.1汇编语言程序设计分支结构程序分支程序是利用条件转移指令,使程序执行到某一指令后,根据运算状态标志条件是否满足,来改变程序执行的次序。分支程序的结构如图所示。条件程序段1程序段2YNY=1当X>0(-128≤x≤127)0当X=0-1当X<0例1符号函数3.1汇编语言

5、程序设计分支结构程序Y=1当X>0(-128≤x≤127)0当X=0-1当X<0例1符号函数起始取数终止保存结果Y=1Y=0Y=FFH=-1X=0?YNX<0?YNMOVAL,XXCMPAL,0JGEBIGRMOVAL,0FFH;x<0MOVYY,ALHLTBIGR:JEEQULMOVAL,1MOVYY,AL;x>0HLTEQUL:MOVYY,AL;X=0HLT3.1汇编语言程序设计分支结构程序例2、求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。方法1用比较指令完成MOVAX,[300H]MOVBX,[302H]CMPAX,BXJAAASU

6、BBX,AXMOV[200H],BXINT20HAA:SUBAX,BXMOV[200H],AXINT20H分析:AX和BX的数未知。两数相减求绝对值,应先解决哪一个值稍大些,然后再用大数减小数的方法,才可求得绝对值。3.1汇编语言程序设计分支结构程序例2、求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。方法2优化上面的程序MOVAX,[300H]MOVBX,[302H]CMPAX,BXJAAAXCHGAX,BXAA:SUBAX,BXMOV[200H],AXINT20H方法3用新的算法完成MOVAX,[300H]MOVBX,[302]SUBAX

7、,BXJAAANEGAXAA:MOV[200H],AXINT20HDEBUG不同的算法程序的质量不相同,好的数学模型往往是最好的算法3.1汇编语言程序设计分支结构程序例3、利用跳转表实现多重分支。跳转表:内存中连续存放一系列的跳转地址、跳转指令组成一分支表。DATASEGMENTBASEDWSBRO,SBR1,SBR2,SBR3DWSBR4,SBR5,SBR6,SBR7BNDB3;工序DATAENDS某工厂有8种产品的加工程序R0到R7分别存放在以SBR0,SBR1,……,SBR7为首地址的内存区域中,这8个首地址的偏移量连续存放在以BASE为首地址的跳转表内

8、,如图所示。表地址=表基地址+偏移量。

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

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

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