2013教科版选修1《程序设计的基本方法》ppt课件1.ppt

上传人(卖家):三亚风情 文档编号:2730745 上传时间:2022-05-22 格式:PPT 页数:23 大小:261.50KB
下载 相关 举报
2013教科版选修1《程序设计的基本方法》ppt课件1.ppt_第1页
第1页 / 共23页
2013教科版选修1《程序设计的基本方法》ppt课件1.ppt_第2页
第2页 / 共23页
2013教科版选修1《程序设计的基本方法》ppt课件1.ppt_第3页
第3页 / 共23页
2013教科版选修1《程序设计的基本方法》ppt课件1.ppt_第4页
第4页 / 共23页
2013教科版选修1《程序设计的基本方法》ppt课件1.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、第5章 汇编语言程序设计 5.6 汇编语言程序设计的基本方法汇编语言程序设计的基本方法通常通常, ,编制一个汇编语言源程序应按如下步骤进编制一个汇编语言源程序应按如下步骤进行行: : 明确任务明确任务, ,确定算法。确定算法。 绘制流程图绘制流程图( (包括确定内存单元和分配寄存包括确定内存单元和分配寄存器器) )。 根据流程图编写汇编语言程序。根据流程图编写汇编语言程序。 上机调试程序。上机调试程序。程序的基本结构有四种:顺序结构、分支结构、程序的基本结构有四种:顺序结构、分支结构、循环结构和子程序结构。循环结构和子程序结构。第5章 汇编语言程序设计 5.6.1 顺序程序设计顺序程序设计顺序

2、结构也称线性结构,其特顺序结构也称线性结构,其特点是其中的语句或结构被连续执行。点是其中的语句或结构被连续执行。顺序程序是最简单的,也是最顺序程序是最简单的,也是最基本的一种程序结构。基本的一种程序结构。这种结构的这种结构的程序从开始到结尾一直是顺序执行程序从开始到结尾一直是顺序执行的,中途没有任何分支的,中途没有任何分支。从这种结。从这种结构的流程图来看,除了有一个起始构的流程图来看,除了有一个起始框,一个终止框外,就是若干执行框,一个终止框外,就是若干执行框,没有判断框。指令指针框,没有判断框。指令指针IP值线值线形增加,形增加,IP=IP+1S1S2S3开始结束第5章 汇编语言程序设计

3、例例1求两个数的平均值。这两个数分别存放在求两个数的平均值。这两个数分别存放在X单元和单元和Y单元中,而平均值放在单元中,而平均值放在Z单元中。源程序编制单元中。源程序编制如下如下:DATA SEGMENTX DB 8CHY DB 64H ;赋予初值赋予初值ZDB ? ;分配存储空间分配存储空间DATA ENDSSTACKSEGMENTDW 20H DUP(0) ;给堆栈段分配一个给堆栈段分配一个TOP LABLE WORD ;据区共据区共32个字,每个个字,每个STACKENDS ;字的内容均为字的内容均为0第5章 汇编语言程序设计 CODESEGMENTMAIN PROC FAR ;定义子

4、程序名为MAIN,类型FAR ASSUME CS:CODE ;把段寄存器和 ASSUME DS:DATA ;段名对应起来 ASSUME SS:STACKSTART:PUSH DSMOV AX, 0PUSH AXMOV AX, DATA ;给数据段赋初值MOV DS, AXMOV AX, STACKMOV SS, AXMOV SP, OFFSET TOP第5章 汇编语言程序设计 MOV AL, XADD AL, Y ;两数低字节相加结果送ALMOV AH, 0ADC AH, 0 ;两数高字节带进位相加SHR AX, 1MOV Z, ALRETMAINENDPCODEENDSEND START第5

5、章 汇编语言程序设计 例2 编写程序,计算(W-(X*Y+Z-100)/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。 例3 把非压缩十进制数DAT1转换为压缩十进制数第5章 汇编语言程序设计 例2编写程序,计算(W-(X*Y+Z-100)/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。DATA SEGMENTW DW 268X DW 73Y DW 48Z DW 85DATA ENDSSTACK SEGMENT DW 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,S

6、S:STACKSTART:MOV AX,DATA MOV DS,AX MOV AX,X ;计算X*Y IMUL Y MOV CX,AX ;用CX存储结果低位MOV BX,DX ;用BX存储结果高位 MOV AX,Z ;计算X*Y+Zl CWDl ADD CX,AXl ADC BX,DXl SUB CX,100l SBB BX,0l MOV AX,Wl CWD l SUB AX,CXl SBB DX,BXl IDIV Wl MOV AH,4CHl INT 21Hl CODE ENDSl END START第5章 汇编语言程序设计 例3 把非压缩十进制数DAT1转换为压缩十进制数。 STACK 6

7、4H DATA DAT1 DW 0908H ;非压缩十进制数0908H CODE BEGIN: MOV AX,DATA MOV DS,AX MOV AX,DAT1 ;AX0908H MOV CL,4 ;CL 4 SAL AH,CL ;09字节左移4位,AH=90H ROL AX,CL ;9008H字循环左移4位,AX=0089H ROL AL,CL ;89字节循环左移4位,AL=98H MOV BYTE PTR DAT1,AL ;DAT198H,压缩十进制数98H MOV AH,4CH ;返回DOS INT 21H END BEGIN 返返 回回第5章 汇编语言程序设计 5.6.2 分支程序设

8、计分支程序设计分支程序结构也称条件结构,通常是在两种或两分支程序结构也称条件结构,通常是在两种或两个以上的不同的操作中选择其中的一个,如下图所示:个以上的不同的操作中选择其中的一个,如下图所示:分支是通过条件转移指令来实现的。分支结构有分支是通过条件转移指令来实现的。分支结构有一个共同点:运行方向总是向前的一个共同点:运行方向总是向前的。IP受标志位的影受标志位的影响而跳变,影响标志的指令响而跳变,影响标志的指令CMP、TEST、JXX条件S1S2条件SS1S2Sn条件NNYY第5章 汇编语言程序设计 两路分支程序设计 例4用比较指令和条件转移指令实现两路分支的程序段。 MOV AX,M ;假

9、定M和N为有符号数 MOV BX,N CMP AX,BX ;比较 M和N的大小,影响标志位,准备条件 JG NEXT ;MN时转移,注意若M、N为无符号数时用JA指令 ;分支程序2 JMP DONE NEXT: ;分支程序1 DONE:RET第5章 汇编语言程序设计 例5 现有一符号函数:1 当X0时Y= 0 当X=0时 -1 当X0时假定X为-25,且存放在VARX单元中,函数值Y存放在VARY单元,试编写程序根据X的值确定函数Y的值。根据题意画出流程图如下:第5章 汇编语言程序设计 实现符号函数程序的流程图开始ALXAL0?Y-1结束AL0Y1Y0YYNN第5章 汇编语言程序设计 编写程序

10、如下:DSEGSEGMENTVARX DB -25VARY DB ?DSEGENDSCSEGSEGMENTASSUME CS:CSEG,DS:DSEGSTART:MOV AX, DSEGMOV DS, AXMOV AL, VARXCMP AL, 0JGE NEXTMOV AL, -1JMP HALT第5章 汇编语言程序设计 NEXT:JE HALTMOV AL, 1HALT:MOV VARY, AL MOV AH, 4CHINT 21HCODEENDSEND START第5章 汇编语言程序设计 例 6 已知X是单字节带符号数,请设计计算下列表达式的程序。Y= X+20 (X0)|X| (X0)

11、第5章 汇编语言程序设计 例 6 已知X是单字节带符号数,请设计计算下列表达式的程序。 Y= 程序如下: DATA SEGMENT X DB ? Y DB ? DATA ENDS CODE SEGMENT ;代码段 START:PROC FAR ASSUME CS:CODE,DS:DATA MOV AX,0 X+20 (X0)|X| (X0)l MOV AX,DATA ;初始化DSl MOV DS,AXl MOV AL,X ;取数Xl CMP AL,0 ;准备条件l JNS PLUS ;X0则转移l NEG AL ;X0则求补l JMP DONElPLUS: ADD AL,20 ;X0时,X+

12、20lDONE: MOV Y,AL ;计算结果送Yl RET ;返回lSTART ENDPlCODE ENDSl END START ;汇编结束第5章 汇编语言程序设计 分支结构程序设计的关键在于准确地知道操作结果影响分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确地使用条件转移指令。根据对条件的标志位状态和正确地使用条件转移指令。根据对条件的判断而选择不同的处理方法是人的基本智能体现。的判断而选择不同的处理方法是人的基本智能体现。例例:设内存中有三个互不相等的无符号字数据,分别:设内存中有三个互不相等的无符号字数据,分别是放在是放在ARG开始的字单元,编制程序将其中最大值存

13、开始的字单元,编制程序将其中最大值存入入MAX单元。单元。分析:求三个无符号数中的最大值,只要把三个数据两分析:求三个无符号数中的最大值,只要把三个数据两两比较,用两比较,用JA/JNB/JNA/JC等指令就可判断两数的大小,等指令就可判断两数的大小,从而选出其中最大值。从而选出其中最大值。源程序如下:源程序如下:SSEG SEGMENT STACK STK DB 20 DUP (0)SSEG ENDS 第5章 汇编语言程序设计 DSEG SEGMENTARG DW 7138H,84A6H,29EHMAX DW ?DESG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:

14、DSEG,SS:SSEGFMAX:MOV AX,DSEG MOV DS,AX MOV SS, AX MOV SP, SIZE STK LEA SI, ARG MOV AX, SI MOV BX,SI+2 CMP AX, BX第5章 汇编语言程序设计 JAE FMAX1MOV AX, BXFMAX1 : CMP AX,SI+4JAE FMAX2 MOV AX,SI+4FMAX2 : MOV MAX,AXMOV AH,4CHINT 21HCSEG ENDS END FMAX第5章 汇编语言程序设计 循环结构程序设计循环体图图2先判断后执行循环结构先判断后执行循环结构循环初始化NY循环控制部分循环初

15、始化循环体N循环控制部分Y图图1 先执行后判断循环结构先执行后判断循环结构第5章 汇编语言程序设计 循环程序一般由四个部分组成:循环程序一般由四个部分组成:(1)循环初值部分:这是为了保证循环程序能正常进)循环初值部分:这是为了保证循环程序能正常进行循环操作而必须做的准备工作。循环初值分两类:一行循环操作而必须做的准备工作。循环初值分两类:一类是循环工作部分的初值,别一类是控制循环结束条件类是循环工作部分的初值,别一类是控制循环结束条件的初值。的初值。(2)工作部分:即需要重复执行的程序段。这是循环)工作部分:即需要重复执行的程序段。这是循环的中心,称之为循环体。的中心,称之为循环体。(3)修

16、改部分:按一定规律修改操作数地址及控制变)修改部分:按一定规律修改操作数地址及控制变量,以便每次执行循环体时得到新的数据。量,以便每次执行循环体时得到新的数据。(4)控制部分:用来保证循环程序按规定的次数或特)控制部分:用来保证循环程序按规定的次数或特写条件正常循环。写条件正常循环。 第5章 汇编语言程序设计 例题 例7 把从BUF单元开始的80个16位无符号数按从大到小的顺序排列。第5章 汇编语言程序设计 例题 例4-26 把从BUF单元开始的80个16位无符号数按从大到小的顺序排列。l DSEG SEGMENTl BUF DW 80 DUP(?) l DSEG ENDSl CSEG SEGMENTl ASSUME CS:CSEG,DS:DSEGl START:MOV AX,DSEGl MOV DS,AXl LEA DI,MEMl MOV BL,79l LOOP1:MOV SI,DIl MOV CL,BLlLOOP2:MOV AX,SIl ADD SI,2l CMP AX,SIl JNC NEXTl MOV DX,SIl MOV SI-2,DXl MOV SI,AXl NEXT: DEC CLl JNZ LOOP2 lDEC BL l JNZ LOOP1lMOV AH,4CHl INT 21Hl CSEG ENDSl END START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(2013教科版选修1《程序设计的基本方法》ppt课件1.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|