8-第三章、程序设计的基本技巧(3.3-3.7)课件.ppt
《8-第三章、程序设计的基本技巧(3.3-3.7)课件.ppt》由会员分享,可在线阅读,更多相关《8-第三章、程序设计的基本技巧(3.3-3.7)课件.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计的基本技术程序设计的基本技术(3.33.7内容内容)复复 习习v8086的指令系统的指令系统数据传送类指令数据传送类指令 MOVMOV、XCHGXCHG、PUSHPUSH、POPPOP、ININ、OUTOUT、XLATXLAT、LEALEA、PUSHFPUSHF、POPFPOPF、ADD ADD、ADC ADC、INCINC、SUBSUB、SBBSBB、DECDEC、NECNEC、CMPCMP、MULMUL、DIVDIV、CBWCBW、CWDCWD、DAADAA逻辑运算类指令逻辑运算类指令 ANDAND、OROR、XORXOR、NOTNOT、TESTTEST、SALSAL、SARSAR
2、、SHLSHL、SHRSHR、ROLROL、RORROR、RCLRCL、RCRRCR程序控制类指令程序控制类指令callcall、jmpjmp、retret、jxxjxx、looploop、intint、iretiret处理器控制类指令处理器控制类指令 XXX:STCXXX:STC、CLCCLC串操作类指令串操作类指令 reprep、movsmovs8086的汇编程序框架的汇编程序框架(简化定义格式):(简化定义格式):.model small .stack .data ;数据定义数据定义 .code start:mov ax,data ;程序中要执行的第一条指令的标号程序中要执行的第一条指令
3、的标号 mov ds,ax ;程序代码程序代码 mov ah,4ch;或者或者 mov ax,4c00h int 21h end start ;8086的汇编程序框架:的汇编程序框架:DATA SEGMENT (DB、DW、$)DATA ENDSSTACK SEGMNET STACK STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATA ;程序中要执行的第一条指令的标号;程序中要执行的第一条指令的标号 MOV DS,AX;MOV ES,AX .MOV AH,4CH ;返回;返回DOS操作
4、系统操作系统 INT 21HCODE ENDS END START ;程序设计的几种基本结构程序设计的几种基本结构顺序程序结构顺序程序结构分支程序结构分支程序结构循环程序结构循环程序结构子程序结构子程序结构一一、顺序程序设计顺序程序设计 特点:特点:程序运行时,完全按照编写的指令顺序执行,程序运行时,完全按照编写的指令顺序执行,且每条指令仅执行一次。且每条指令仅执行一次。例例1:1:两个字型单元两个字型单元M1M1和和M2M2中各有一中各有一1616位无符号数位无符号数,将它们相将它们相乘的结果存入乘的结果存入N1N1和和N2N2单元单元.分析:要使用到无符号数乘法指令分析:要使用到无符号数乘
5、法指令 MULMUL格式:格式:MUL OPRD MUL OPRD;OPRDOPRD为其中的一个操作数;另一个隐含放在为其中的一个操作数;另一个隐含放在ALAL或或AXAX中中程序流程图程序流程图:AX M1DX,AX (AX)M2N1 (AX)N2 (DX)开始开始结束结束源程序:源程序:.model small.stack.data m1 dw 1234H m2 dw 2345H n1 dw?n2 dw?.code Start:mov ax,data mov ds,ax mov ax,m1 mul m2 mov n1,ax mov n2,dx mov ah,4cH ;int 21H END
6、 Start v见书见书P60例例3.4例例3:3:利用查表法,从键盘上输入利用查表法,从键盘上输入0 0到到9 9中的任一自然数中的任一自然数x x,将其立方值送将其立方值送xxxxxx字存储单元。字存储单元。X3值所在地址的值所在地址的EA与与X对应关系为:对应关系为:(tab2*X)为)为X3值所在地址值所在地址EA 具体程序见文档具体程序见文档程序程序-立方立方作业作业14(课堂)(课堂)1、将、将AX中小于中小于255大于大于0的的3位压缩位压缩BCD码数转换为二进制码数转换为二进制数,存放于字节变量数,存放于字节变量SB中。(要求:完整的简化段定义书中。(要求:完整的简化段定义书写
7、)写)二、分支程序设计二、分支程序设计特点:特点:在程序运行过程中,依据不同情况,在几个程序段中选在程序运行过程中,依据不同情况,在几个程序段中选择其一,由转移指令来实现。择其一,由转移指令来实现。复习:用于实现分支的转移指令:复习:用于实现分支的转移指令:一、无条件转移指令一、无条件转移指令 格式:格式:JMP 目标地址目标地址 功能:执行指令后,无条件地转移到功能:执行指令后,无条件地转移到“目标地址目标地址”处,而不处,而不执行下一条指令。执行下一条指令。二、条件转移指令二、条件转移指令 格式:格式:J*目标地址目标地址 功能:功能:若条件成立,则转移至目标处指令,否则顺序执行。若条件成
8、立,则转移至目标处指令,否则顺序执行。该该指令都是以标志寄存器中某一个或几个标志位作为判断指令都是以标志寄存器中某一个或几个标志位作为判断条件(标志位有:条件(标志位有:CF、ZF、SF、OF和和PF)如:如:JC L1v见书见书P61例例3.5v见书见书P62例例3.6作业作业14(课堂)(课堂)2、X为符号数为符号数,要求要求Y1 X00 X=01 X=(SI)?AL (SI)N Y(CX)-1=0?MAX (AL)YNBIGER:LOP:开始开始结束结束程序代码段:程序代码段:MOV SI,OFFSET ARRAY MOV CX,9 ;重复次数;重复次数 MOV AL,SI ;赋初值;赋
9、初值 LOP:INC SI ;取下一个数;取下一个数 CMP AL,SI ;比较大小;比较大小 JAE BIGER MOV AL,SI ;重新赋最大值;重新赋最大值 BIGER:LOOP LOP ;继续循环;继续循环 MOV MAX,AL ;最大值送存储单元;最大值送存储单元 v计数控制循环,见书计数控制循环,见书P64例例3.8、3.9、3.10v条件控制循环,见书条件控制循环,见书P66例例3.11、3.12v串操作类指令,见书串操作类指令,见书P68例例3.13、3.14作业作业14(课堂)(课堂)3、编写将某数据区中的十六进制数加密的程序,每个数字占编写将某数据区中的十六进制数加密的程
10、序,每个数字占一个字节。其中数据放在一个字节。其中数据放在data起始的起始的10个字节单元中。(要个字节单元中。(要求:完整的简化段定义书写)求:完整的简化段定义书写)十十六六进进制制数数0123456789ABCDEF加加密密数数A98EF10B25D3746C四、子四、子 程程 序序主要讨论的问题:主要讨论的问题:v子程序的定义子程序的定义v子程序的调用与返回指令子程序的调用与返回指令v子程序的设计要求子程序的设计要求v子程序设计举例子程序设计举例(1)子程序的定义)子程序的定义 定义:在程序设计中,通常将多次反复使用、具有定义:在程序设计中,通常将多次反复使用、具有一定功能的程序段设计
11、为一个子程序,在程序中使一定功能的程序段设计为一个子程序,在程序中使用程序过程定义伪指令来定义子程序。用程序过程定义伪指令来定义子程序。过程定义伪指令语句格式过程定义伪指令语句格式 过程名过程名 PROC NEAR/FAR ;PROC表示过程的起始表示过程的起始 RET 过程名过程名 ENDP ;ENDP表示过程的结束表示过程的结束 过程名有过程名有3个属性个属性:偏移量属性、段属性和类型属性。:偏移量属性、段属性和类型属性。(2 2)子程序的调用与返回)子程序的调用与返回 调用指令:调用指令:段内直接调用段内直接调用段内间接调用段内间接调用段间直接调用段间直接调用段间间接调用段间间接调用返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 程序设计 基本 技巧 3.3 3.7 课件
限制150内