第5章循环与分支程序设计.ppt
《第5章循环与分支程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章循环与分支程序设计.ppt(45页珍藏版)》请在三一办公上搜索。
1、第 5 章,循环与分支程序设计,本章要点,1掌握汇编语言程序设计的基本步骤和顺序程序设计的基本结构形式2学会如何分析问题,确定算法,画出程序流程图,分配工作单元和选择合适指令和编写程序的设计思想和方法3掌握简单的算术运算程序设计、直接查表法程序设计和简单的代码转换程序设计。,汇编语言程序的设计步骤,1、分析题意,确定算法2、根据算法画出程序框图 3、根据框图编写程序 4、上机调试程序,程序的结构,程序有:顺序、循环、分支和子程序四种结构形式,顺序结构:每条指令按其在程序中的排列顺序执行,51 循环程序设计,循环程序的结构形式:,循环程序组成,1)设置循环的初始状态 2)循环体。循环工作的主体,
2、由循环的工作部分及修改部分组成。3)循环控制部分 LOOP、LOOPZ、LOOPNZ在循环体中的使用,循环程序设计方法,例5l试编制一个程序把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来,二进制到十六进制数转换的程序框图(略),编程方法-举例1,Data segment mess db Your Hex number is:$bb db 00110100b,00010010bData endsPrognam segment assume cs:prognam,ds:datastart:mov ax,data mov ds,ax lea dx,mess mov ah,9 int 21
3、h,mov bx,word ptr bb mov Ch,4;四个16进制数位,循环4次rotate:mov cl,4;rol bx,cl;右移四位 mov al,bl and al,0fh;取低4位 add al,30h;将16进制转为ASCII码 cmp al,3ah;比较,9?JL printit;是0到9的数码,打印 Add al,7h;是A 到F,转换,Printit:mov dl,al;ASCII码放DL mov ah,2;显示功能 int 21h;Call DOS dec ch jnz rotate;是4个数位吗?如还不是,继续 mov ah,4ch int 21h;return
4、to DOSprognam ends;end of segmentend start;end of assembly,用JNZ或JZ指令,编程方法-举例2,Data segment mess db Your Hex number is:$bb db 00110100b,00010010bData endsPrognam segment assume cs:prognam,ds:datastart:mov ax,data mov ds,ax lea dx,mess mov ah,9 int 21h,mov bx,word ptr bb mov CX,4;四个10进数位rotate:push cx
5、 mov cl,4;rol bx,cl;右移四位 mov al,bl and al,0fh;取低4位 add al,30h;将16进制转为ASCII码 cmp al,3ah;比较,9?JL printit;是0到9的数码,打印 Add al,7h;是A 到F,转换,用LOOP指令,Printit:mov dl,al;ASCII码放DL mov ah,2;显示功能 int 21h;Call DOS pop cx loop rotate;是4个数位吗?如还不是,继续 mov ah,4ch int 21h;return to DOSprognam ends;end of segmentend sta
6、rt;end of assembly,编程方法-举例3,Prognam segmentmain proc far assume cs:prognamstart:push ds;保存data段地址,设置返回栈 sub ax,ax Push ax push bx;修改部分 mov bx,1234h;修改部分,子程序格式,;main part of program mov Ch,4;四个10进数位rotate:mov cl,4;rol bx,cl;右移四位 mov al,bl and al,0fh;取低4位 add al,30h;将16进制转为ASCII码 cmp al,3ah;比较,9?JL pr
7、intit;是0到9的数码,打印 Add al,7h;是A 到F,转换,Printit:mov dl,al;ASCII码放DL mov ah,2;显示功能 int 21h;Call DOS dec ch jnz rotate;是4个数位吗?如还不是,继续 pop bx;修改部分 ret;return to DOSmain endp;end of main part prognam ends;end of segmentend;end of assembly,例5.2,在ADDR单元中存放着数Y的地址,试编制一程序把Y中1的个数存入COUNT单元中。,两个问题:数据段如何定义,需定义哪些变量?需
8、不需要附加段?,Y DW 1234HADDR DW YCOUNT DB?,算法分析与程序框架,逐位测试采用DO-WHILE的结构,子程序形式的程序:m502CNT1.asm,程序,datarea segment addr dw Y Y dw 1234h;修改 count dw?datarea endsPrognam segment assume cs:prognam,ds:datareastart:mov ax,datarea mov ds,ax mov cx,0 mov bx,addr mov ax,bx;将Y中数据=AX,repeat:test ax,0ffffh jz exit jns
9、Shift inc cx Shift:shl ax,1 Jmp repeat exit:mov count,cx mov ax,4c00h int 21hPrognam ends End start,以十进制怎样显示COUNT中数据?,如Y为双字长数据,本程序应怎样修改?,例53,在附加段中有一个首地址为LIST和未经排序的字数组,在数组的第一个字中存放着该数组的长度,数组的首地址已存放在DI寄存器中。AX寄存器中存放着一个数。要求编制一程序:在数组中查找该数,如果找到此数则把它从数组中删除。,分 析,查找元素可使用串处理指令:删除元素可使用循环结构:处理方法:如果找到这一元素则把数组中地址比
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 分支 程序设计

链接地址:https://www.31ppt.com/p-4101801.html