选修1《程序设计的基本方法》ppt课件1 高中信息技术

上传人:kms****20 文档编号:51632608 上传时间:2018-08-15 格式:PPT 页数:24 大小:460KB
返回 下载 相关 举报
选修1《程序设计的基本方法》ppt课件1 高中信息技术_第1页
第1页 / 共24页
选修1《程序设计的基本方法》ppt课件1 高中信息技术_第2页
第2页 / 共24页
选修1《程序设计的基本方法》ppt课件1 高中信息技术_第3页
第3页 / 共24页
选修1《程序设计的基本方法》ppt课件1 高中信息技术_第4页
第4页 / 共24页
选修1《程序设计的基本方法》ppt课件1 高中信息技术_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《选修1《程序设计的基本方法》ppt课件1 高中信息技术》由会员分享,可在线阅读,更多相关《选修1《程序设计的基本方法》ppt课件1 高中信息技术(24页珍藏版)》请在金锄头文库上搜索。

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

2、S1S2S3开始结束2例1求两个数的平均值。这两个数分别存放在X 单元和Y单元中,而平均值放在Z单元中。源程序编制如 下: DATA SEGMENT X DB 8CH Y DB 64H ;赋予初值 ZDB ? ;分配存储空间 DATA ENDS STACKSEGMENT DW 20H DUP(0) ;给堆栈段分配一个 TOP LABLE WORD ;据区共32个字,每个 STACKENDS ;字的内容均为03CODE SEGMENT MAIN PROC FAR ;定义子程序名为MAIN,类型FARASSUME CS:CODE ;把段寄存器和ASSUME DS:DATA ;段名对应起来ASSUM

3、E SS:STACK START:PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA ;给数据段赋初值 MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOP4MOV AL, X ADD AL, Y ;两数低字节相加结果送 AL MOV AH, 0 ADC AH, 0 ;两数高字节带进位相加 SHR AX, 1 MOV Z, AL RET MAINENDP CODEENDS END START5例2 编写程序,计算(W-(X*Y+Z-100)/W,其中W、 X、Y、Z均为16位带符号数,计算结果的商存入AX,余数

4、存入DX。例3 把非压缩十进制数DAT1转换为压缩十进制数6例2编写程序,计算(W-(X*Y+Z-100)/W,其中W、X 、Y、Z均为16位带符号数,计算结果的商存入AX,余数 存入DX。DATA SEGMENT W DW 268 X DW 73 Y DW 48 Z DW 85 DATA ENDS STACK SEGMENT DW 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,X ;计算X*Y IMUL Y MOV CX,AX ;用CX

5、存储结果低位 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 START7第5章 汇编语言程序设计 金手指考试网 http:/ 2016年金手指驾驶员考试科目一 科目四元贝驾考网 http:/ 科目一科目四仿真考试题C1Grammar 8例3 把非压缩十进制数DAT1转换为压缩十进制数。 STACK 64

6、H 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 返 回 95.6.2 分支程序设计 分支程序结构也称条件

7、结构,通常是在两种或两 个以上的不同的操作中选择其中的一个,如下图所示 :分支是通过条件转移指令来实现的。分支结构有 一个共同点:运行方向总是向前的。IP受标志位的影 响而跳变,影响标志的指令CMP、TEST、JXX条件S1S2条件SS1S2Sn条件NNYY10两路分支程序设计例4用比较指令和条件转移指令实现两路分支的程 序段。 MOV AX,M ;假定M和N为有符号数 MOV BX,N CMP AX,BX ;比较 M和N的大小,影响标志位,准备条件 JG NEXT ;MN时转移,注意若M、N为无符号数时用JA指令 ;分支程序2 JMP DONE NEXT: ;分支程序1 DONE:RET11

8、例5 现有一符号函数: 1 当X0时 Y= 0 当X=0时-1 当X0时 假定X为-25,且存放在VARX单元中,函数 值Y存放在VARY单元,试编写程序根据X的值 确定函数Y的值。 根据题意画出流程图如下:12实现符号函数程序的流程图开始ALXAL0?Y-1结束AL0Y1Y0YYNN13编写程序如下: DSEG SEGMENT VARX DB -25 VARY DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX, DSEG MOV DS, AX MOV AL, VARX CMP AL, 0 JGE NEXT MOV

9、AL, -1 JMP HALT14NEXT:JE HALT MOV AL, 1 HALT:MOV VARY, ALMOV AH, 4CH INT 21H CODEENDS END START15例 6 已知X是单字节带符号数,请设计计算下列表达式的 程序。Y= X+20 (X0) |X| (X0)16例 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

10、) |X| (X0)l MOV AX,DATA ;初始化DS l MOV DS,AX l MOV AL,X ;取数X l CMP AL,0 ;准备条件 l JNS PLUS ;X0则转移 l NEG AL ;X0则求补 l JMP DONE lPLUS: ADD AL,20 ;X0时,X+20 lDONE: MOV Y,AL ;计算结果送Y l RET ;返回 lSTART ENDP lCODE ENDS l END START ;汇编结束17分支结构程序设计的关键在于准确地知道操作结果影响 的标志位状态和正确地使用条件转移指令。根据对条件 的判断而选择不同的处理方法是人的基本智能体现。 例:设内存中有三个互不相等的无符号字数据,分别 是放在ARG开始的字单元,编制程序将其中最大值存入 MAX单元。 分析:求三个无符号数中的最大值,只要把三个数据两 两比较,用JA/JNB/JNA/JC等指令就可判断两数的大小 ,从而选出其中最大值。 源程序如下: SSEG SEGMENT STACK STK DB 20 DUP (0) SSEG ENDS 18DSEG SEGMENT ARG DW 7138H,84A6H,29EH MAX DW ? DESG ENDS CSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:SSEG FMAX:MOV AX,DSEG

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号