第5章循环与分支程序设计.ppt
《第5章循环与分支程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章循环与分支程序设计.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机科学与技术系计算机科学与技术系 汇编语言汇编语言第5章循环与分支程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望教学重点教学重点1.掌掌握握基基本本程程序序结结构构顺顺序序结结构构、循循环环结结构构、分分支支结结构构及及其其汇汇编编语语言言程程序序设计设计2.熟悉常见程序设计熟悉常见程序设计问题:问题:数据范围判断数据范围判断数据范围判断数据范围判断(09、AZ、az)字母大小写转换字母大小写转换字母大小写转换字母大小写转换;字符串传送、比较等操作字
2、符串传送、比较等操作字符串传送、比较等操作字符串传送、比较等操作求最大最小值、数据求和、统计字符个数求最大最小值、数据求和、统计字符个数求最大最小值、数据求和、统计字符个数求最大最小值、数据求和、统计字符个数数组排序,查找,插入,删除数组排序,查找,插入,删除数组排序,查找,插入,删除数组排序,查找,插入,删除11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 (3 3)分支结构)分支结构 (4 4)子程序结构子程序结构 程序结构程序结构(5)复合结构:多种程序结构的组合)复合结构:多种程序结构的组合 (1 1)顺序结构顺序结构 (2 2)循环结构循环结构11/1
3、6/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 编制汇编语言程序的步骤编制汇编语言程序的步骤(1)分析题意,确定算法分析题意,确定算法(2)根据算法画出程序框图根据算法画出程序框图(3)根据框图编写程序根据框图编写程序(4)上机调试程序上机调试程序11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言5.0 顺序程序设计顺序程序设计顺顺序序程程序序完完全全按按指指令令书书写写的的前前后后顺顺序序执执行行每每一一条条指指令令,是是最最基基本本、最最常见的程序结构常见的程序结构一一般般纯纯粹粹的的顺顺序序结结构构的的程程序序设设计计较较少。少。1
4、1/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言例例例例data segmentdata segmentX Xdw 5dw 5Y Ydw 6dw 6Z Zdw 7dw 7W Wdw?dw?data endsdata endscode segmentcode segmentmain proc farmain proc far assume cs:code,ds:dataassume cs:code,ds:datastart:start:push dspush ds xor ax,axxor ax,ax push ax push ax mov ax,data mov
5、ax,data mov ds,ax mov ds,ax mov ax,Xmov ax,X add ax,Y add ax,Y add ax,Z add ax,Z mov W,ax mov W,ax ret retmain endpmain endpcode endscode ends end startend startWX+Y+Z11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言例例例例 代码转换代码转换代码转换代码转换;查表法,实现一位;查表法,实现一位1616进制数转换为进制数转换为ASCIIASCII码显示码显示data segmentdata segme
6、nt ASCII db 30h,31h,32h,33h,34h,35hASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h db 36h,37h,38h,39h;0;09 9的的ASCIIASCII码码 db 41h,42h,43h,44h,45h,46hdb 41h,42h,43h,44h,45h,46h;A;AF F的的ASCIIASCII码码 hex hex db 0bh db 0bh;任意设定一个待转换的一位任意设定一个待转换的一位1616进制数进制数data endsdata endscode segmentcode segmentm
7、ain proc farmain proc far 11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言例例例例 代码转换代码转换代码转换代码转换 assume cs:code,ds:dataassume cs:code,ds:datastart:start:push ds push ds xor ax,ax xor ax,ax push ax push ax mov ax,data mov ax,data mov ds,ax mov ds,ax ;-;-mov bx,offset ASCIImov bx,offset ASCII;BX;BX指向指向ASCIIASC
8、II码表码表mov al,hexmov al,hex;AL;AL取得一位取得一位1616进制数,正是进制数,正是ASCIIASCII码表中位移码表中位移 11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 and al,0fh and al,0fh;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlatxlat ;换码:换码:ALDS:BXALDS:BXALALmov dl,almov dl,al;入口参数:入口参数:DLALDLALmov ah,2mov ah,2;02;02号号DOSDOS功能调用功能调用int 21hint 21h;显示
9、一个显示一个ASCIIASCII码字符码字符retretmain endpmain endpcode endscode ends end startend start例例例例 代码转换代码转换代码转换代码转换11/16/2022ch5;查表法,实现一位;查表法,实现一位1616进制数转换为进制数转换为ASCIIASCII码显示码显示data segmentdata segment ASCII db 30h,31h,32h,33h,34h,35h ASCII db 30h,31h,32h,33h,34h,35h db 36h,37h,38h,39h db 36h,37h,38h,39h;0;09
10、 9的的ASCIIASCII码码 db 41h,42h,43h,44h,45h,46hdb 41h,42h,43h,44h,45h,46h;A;AF F的的ASCIIASCII码码 hex hex db 0bh db 0bh;任意设定一个待转换的一位任意设定一个待转换的一位1616进制数进制数data endsdata endscode segmentcode segmentmain proc farmain proc farassume cs:code,ds:dataassume cs:code,ds:datastart:start:push dspush ds xor ax,axxor a
11、x,ax push axpush ax mov ax,datamov ax,data mov ds,axmov ds,ax ;-;-mov bx,offset ASCIImov bx,offset ASCII;BX;BX指向指向ASCIIASCII码表码表mov al,hexmov al,hex;AL;AL取取得得一一位位1616进进制制数数,正正是是ASCIIASCII码码表表中中位位移移and al,0fhand al,0fh;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlatxlat ;换码:换码:ALDS:BXALDS:BXALALmov dl,almov d
12、l,al;入口参数:入口参数:DLALDLALmov ah,2mov ah,2;02;02号号DOSDOS功能调用功能调用int 21hint 21h;显示一个显示一个ASCIIASCII码字符码字符retretmain endpmain endpcode endscode ends end startend start11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言5.1 5.1 循环程序设计循环程序设计循循环环结结构构一一般般是是根根据据某某一一条条件件判判断断为为真或假来确定是否重复执行循环体真或假来确定是否重复执行循环体循循环环指指令令和和转转移移指指令
13、令可可以以实实现现循循环环控控制制11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 循环程序结构形式循环程序结构形式DO-WHILE 结构结构 DO-UNTIL 结构结构控制条件控制条件初始化初始化循环体循环体YN控制条件控制条件初始化初始化循环体循环体YN11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言初始化初始化:设置循环的初始状态设置循环的初始状态循环体循环体:循环的工作部分及修改部分循环的工作部分及修改部分控制条件控制条件:计数控制(:计数控制(LOOP)特征值控制特征值控制(LOOPZ/LOOPNZ/条件跳转指令条件跳转
14、指令)循环程序结构说明循环程序结构说明11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言例:把例:把 BX BX 中的二进制数以十六进制的形式显示在屏幕上中的二进制数以十六进制的形式显示在屏幕上 如:如:1011 0010 1111 1010 B B2FAB2FAH BXBX123411/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言分析:分析:(1)程序结构的确定程序结构的确定 由题意由题意应该把应该把应该把应该把BXBX的内容从左到右每的内容从左到右每的内容从左到右每的内容从左到右每4 4位为一组在屏幕位为一组在屏幕位为一组在屏幕位
15、为一组在屏幕上显示出来上显示出来上显示出来上显示出来,显然这可以用循环结构来完成,每次显示,显然这可以用循环结构来完成,每次显示一个十六进制数位,因而循环次数是已知的,计数值为一个十六进制数位,因而循环次数是已知的,计数值为4。(2)循环体的构成(算法确定)循环体的构成(算法确定)循环体应该包括:循环体应该包括:二进制到所显示字符的二进制到所显示字符的二进制到所显示字符的二进制到所显示字符的ASCIIASCII之间之间之间之间的转换,以及每个字符的显示的转换,以及每个字符的显示的转换,以及每个字符的显示的转换,以及每个字符的显示。需要了解相关知识需要了解相关知识:字符和其字符和其ASCII码之
16、间的关系?码之间的关系?“0”“9”30H39H,“A”F”41H5AH如何显示一个字符?如何显示一个字符?(a)将显示字符的将显示字符的ASCII码放入码放入DL寄存器;寄存器;(b)将将AH的内的内容置为容置为2(功能号);(功能号);(c)执行执行INT 21H(DOS 功能调用)功能调用)。11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言(3)循环控制条件分析)循环控制条件分析因为循环次数已知,可以使用因为循环次数已知,可以使用LOOPLOOPLOOPLOOP指令指令指令指令实现,但是必须注意:实现,但是必须注意:由于循由于循由于循由于循环移位指令中使用
17、环移位指令中使用环移位指令中使用环移位指令中使用CLCLCLCL寄存器作为移寄存器作为移寄存器作为移寄存器作为移位次数寄存器,而位次数寄存器,而位次数寄存器,而位次数寄存器,而LOOP LOOP LOOP LOOP 指令的循环指令的循环指令的循环指令的循环次数隐含在次数隐含在次数隐含在次数隐含在CXCXCXCX寄存器中,因此,必寄存器中,因此,必寄存器中,因此,必寄存器中,因此,必须注意这两者之间的冲突须注意这两者之间的冲突须注意这两者之间的冲突须注意这两者之间的冲突。除了可以使用除了可以使用LOOPLOOP指令之外,还指令之外,还可以使用可以使用条件跳转指令条件跳转指令条件跳转指令条件跳转指
18、令来实现。来实现。LOOP AGAIN DEC 计数器计数器 JNZ AGAIN11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 mov cx,4 mov cx,4 ;初始化;初始化rotate:rotate:push cxpush cxpush cxpush cx mov cl,4 mov cl,4 rol bx,cl rol bx,cl mov al,bl mov al,bl and al,0fh and al,0fh add al,30h add al,30h ;09 ASCII 30H39H;09 ASCII 30H39H cmp al,3ah cmp
19、al,3ah jl printit jl printit add al,7h add al,7h ;AF ASCII 41H46H;AF ASCII 41H46Hprintit:printit:mov dl,almov dl,al mov ah,2 mov ah,2 int 21h int 21h pop cxpop cxpop cxpop cx loop rotate loop rotate 方法方法1(LOOP)11/16/2022ch5计算机科学与技术系计算机科学与技术系 汇编语言汇编语言 mov mov chchchch,4 ,4 ;初始化;初始化rotate:mov rotate:m
20、ov clclclcl,4,4 rol bx,cl rol bx,cl mov al,bl mov al,bl and al,0fh and al,0fh add al,30h add al,30h ;09 ASCII 30H39H;09 ASCII 30H39H cmp al,3ah cmp al,3ah jl printit jl printit add al,7h add al,7h ;AF ASCII 41H46H;AF ASCII 41H46Hprintit:printit:mov dl,almov dl,al mov ah,2 mov ah,2 int 21h int 21h de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 分支 程序设计
限制150内