收藏 分享(赏)

第11讲-汇编语言程序设计-2.ppt

上传人:天天快乐 文档编号:780131 上传时间:2018-04-23 格式:PPT 页数:36 大小:1.83MB
下载 相关 举报
第11讲-汇编语言程序设计-2.ppt_第1页
第1页 / 共36页
第11讲-汇编语言程序设计-2.ppt_第2页
第2页 / 共36页
第11讲-汇编语言程序设计-2.ppt_第3页
第3页 / 共36页
第11讲-汇编语言程序设计-2.ppt_第4页
第4页 / 共36页
第11讲-汇编语言程序设计-2.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、例:内存中TABLE开始存放0-9的平方值,通过人机对话,从键盘输入一个数X(0-9),查表得X的平方值,放在AL中。,TABLE+0,TABLE +1,TABLE +2,开始,9号功能调用显示提示输入,查表得平方值AL,结束,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,流 程 图,第11讲 汇编语言程序设计,顺序结构,1,分支结构,2,本讲教学内容,循环结构,3,顺序结构,顺序结构程序是以直线方式一条接一条进行工作,当语句顺序执行完毕,程序结束。 特点:顺序执行,无分支,无循环,也无转移。,例:内存中TABLE开始存放0-9的平方值,通过人机对话,当给定一个数X(0-9),查

2、表得X的平方值,放在AL中,查表前判断数据是否在0和9之间,不在则重新输入。,开始,9号功能调用显示提示输入,查表得平方值AL,结束,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,0=输入值=9,Y,N,分支程序是根据某种判断条件,从两个或两个以上的程序段中选择一个程序段执行。分支判断方法:先用比较指令或位检测指令等来改变标志寄存器相关标志位,然后用条件转移指令进行判断转移。,分支结构,简单分支结构,多分支结构,简单分支结构图,转移指令,条件转移指令,无条件转移指令,间接标志转移,直接标志转移,JMP 无条件转移指令,指令格式:JMP 目的指令功能:使程序无条件地转移到指令中指定

3、的 目的地址去执行,段内转移(近转移):在同一代码段,只修改IP。,段间转移(远转移):不在同一代码段,CS和IP 都要改变。,无条件转移和过程调用指令,直接标志转移指令,间接标志转移指令,开始,9号功能调用显示提示输入,查表得平方值AL,结束,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,0=输入值=9,Y,N,例:内存中TABLE开始存放0-9的平方值,通过人机对话,当给定一个数X(0-9),查表得X的平方值,放在AL中,查表前判断数据如果在0和4之间,将AL的值送SMALL,如果数据在5和9之间,将AL的值存放在GREAT中,如果不在0和9之间,则重新输入。,多分支结构图,

4、LOOP循环指令,指令格式: LOOP 短标号指令功能:预先将重复次数放在CX中,执行时,CX自动减1,若减1后CX0,则转标号处循环执行;否则,顺序执行。说明:使用LOOP指令可代替两条指令: DEC CX JNZ 短标号,循环控制指令,循环控制方法,计数法,条件控制法,循环次数已知,CX-循环计数器,循环次数未知,循环程序设计,for(i=1;i10;i+) j=j+1;,循环控制,例:内存中TABLE开始存放0-9的平方值,通过人机对话,当给定一个数X(0-9),查表得X的平方值,放在AL中,查表前判断数据是否在0和9之间,随机输入5次结束。,单循环程序设计,开始,9号功能调用显示提示输

5、入,查表得平方值AL,结束,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,0=输入值=9,Y,N,开始,9号功能调用显示提示输入,结束,CX=5,查表得平方值AL,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,0=输入值=9,Y,N,CX=0,Y,结束,N,例:内存中TABLE开始存放0-9的平方值,通过人机对话,当给定一个数X(0-9),查表得X的平方值,放在AL中,查表前判断数据是否在0和9之间,输入空格结束。,单循环程序设计,开始,9号功能调用显示提示输入,结束,查表得平方值AL,1号功能调用键入数送AL,计算输入数的地址表首地址+位移量,0=输入值0,0 当

6、X=0,-1 当X 0,分析:此时可以设置两个计数器。一个是循环计数器CX,另一个是负数计数器DL,用来统计负数个数。,已知从BUF单元开始存有10个8位带符号数,要求统计其中的负数个数放在NEGA字节单元,并显示在CRT上(设负数个数在0-9之间)。,例2,开始,SI OFFSET BUFCX 10,DL 0,CX=0?,NEGADL,2号显示,结束,INC DL,N,AL SI,AL为负?,N,Y,Y,INC SI,DATA SEGMENT BUF DB 2,-1,-5,-6,-38,-4,-98,-13,-24,-45 NEGA DB ?DATA ENDSCODE SEGMENT ASS

7、UME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF ;置数据指针SI MOV DL,0 ;负数计数器清零 MOV CX,10 ;置循环次数 MOV AH,4CH INT 21HCODE ENDS END START,LP: MOV AL,SI CMP AL,0 ;置标志位 JGE NEXT ;为正,转NEXT INC DL ;为负,计数器加1NEXT: INC SI ;修改指针 LOOP LP MOV NEGA,DL OR DL,30H ;转换成ASCII码 MOV AH,2 INT 21H,总结:判断AL为正为负

8、的程序段。,1、CMP AL,80H;而后用JAE代表负数转移,JB代表正数转移2、CMP AL,00H;而后用JGE代表负数转移,JL代表正数转移3、TEST AL,80H;而后用JNS代表负数转移,JS代表正数转移4、TEST AL,80H;而后用JNZ代表负数转移,JZ代表正数转移5、OR AL,AL;而后用JNS代表负数转移,JS代表正数转移6、AND AL,AL;而后用JNS代表负数转移,JS代表正数转移7、SUB AL,00H;而后用JGE代表负数转移,JL代表正数转移,编写程序完成求123N的累加和,直到累加和超过1000为止。统计被累加的自然数的个数送CN单元,累加和送SUM。

9、,例3,开始,初始化0送AX,0送BX,AX1000?,BX BX+1,结束,AX BX+AX,BX送N,AX送SUM,Y,N,DATA SEGMENT SUM DW ? CN DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AH,4CH INT 21H CODE ENDS END START,MOV AX,0 ;AX存累加和 MOV BX,0 ;BX存加数 LP: INC BX ADD AX,BX CMP AX,1000 JBE LP ;1000 循环 MOV SUM,AX MOV CN,BX,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报