IBM-PC汇编语言(⑤ 循环与分支程序设计).ppt





《IBM-PC汇编语言(⑤ 循环与分支程序设计).ppt》由会员分享,可在线阅读,更多相关《IBM-PC汇编语言(⑤ 循环与分支程序设计).ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章第五章第五章 循环与分支程序设计循环与分支程序设计12/18/2022ch5教学重点教学重点1.掌掌握握基基本本程程序序结结构构顺顺序序结结构构、循循环环结结构构、分支结构分支结构及其汇编语言程序设计及其汇编语言程序设计2.熟悉常见程序设计熟悉常见程序设计问题:问题:数据范围判断数据范围判断数据范围判断数据范围判断(09、AZ、az)字母大小写转换字母大小写转换字母大小写转换字母大小写转换;字符串传送、比较等操作字符串传送、比较等操作字符串传送、比较等操作字符串传送、比较等操作求最大最小值、数
2、据求和、统计字符个数求最大最小值、数据求和、统计字符个数求最大最小值、数据求和、统计字符个数求最大最小值、数据求和、统计字符个数数组排序,查找,插入,删除数组排序,查找,插入,删除数组排序,查找,插入,删除数组排序,查找,插入,删除12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 (3 3)分支结构)分支结构 (4 4)子程序结构子程序结构 程序结构程序结构(5)复合结构:多种程序结构的组合)复合结构:多种程序结构的组合 (1 1)顺序结构顺序结构 (2 2)循环结构循环结构12/18/2022ch5 安徽理工大学
3、安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 编制汇编语言程序的步骤编制汇编语言程序的步骤(1)分析题意,确定算法分析题意,确定算法(2)根据算法画出程序框图根据算法画出程序框图(3)根据框图编写程序根据框图编写程序(4)上机调试程序上机调试程序12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章5.0 顺序程序设计顺序程序设计顺顺序序程程序序完完全全按按指指令令书书写写的的前前后后顺顺序序执执行行每每一一条条指指令令,是是最最基基本本、最最常见的程序结构常见的程序结构一一般
4、般纯纯粹粹的的顺顺序序结结构构的的程程序序设设计计较较少。少。12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章例例例例data segmentdata segmentX Xdwdw 5 5Y Ydwdw 6 6Z Zdwdw 7 7W Wdwdw?data endsdata endscode segmentcode segmentmain proc farmain proc far assume assume cscs:code,:code,dsds:data:datastart:start:pushpush ds
5、 ds xor xor ax,axax,ax push ax push ax mov mov ax,data ax,data mov ds mov ds,ax,ax movmov ax,X ax,X add ax,Y add ax,Y add ax,Z add ax,Z mov mov W,ax W,ax ret retmain main endpendpcode endscode ends end startend startWX+Y+Z12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章例例例例 代码转换代码转换代
6、码转换代码转换;查表法,实现一位;查表法,实现一位1616进制数转换为进制数转换为ASCIIASCII码显示码显示data segmentdata segment 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码码 hexhex db 0bh db 0bh
7、;任意设定一个待转换的一位任意设定一个待转换的一位1616进制数进制数data endsdata endscode segmentcode segmentmain proc farmain proc far 12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章例例例例 代码转换代码转换代码转换代码转换 assume assume cscs:code,:code,dsds:data:datastart:start:push push dsds xor xor ax,axax,ax push ax push ax mov
8、mov ax,data ax,data mov ds mov ds,ax,ax ;-;-movmov bxbx,offset ASCII,offset ASCII;BX;BX指向指向ASCIIASCII码表码表movmov al,hex al,hex;AL;AL取得一位取得一位1616进制数,正是进制数,正是ASCIIASCII码表中位移码表中位移 12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 and al,0fhand al,0fh;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlat
9、xlat ;换码:换码:ALDS:BXALDS:BXALALmovmov dl,al dl,al;入口参数:入口参数:DLALDLALmovmov ah,2 ah,2;02;02号号DOSDOS功能调用功能调用intint 21h 21h;显示一个显示一个ASCIIASCII码字符码字符retretmainmain endp endpcode endscode ends end startend start例例例例 代码转换代码转换代码转换代码转换12/18/2022ch5;查表法,实现一位;查表法,实现一位1616进制数转换为进制数转换为ASCIIASCII码显示码显示data segmen
10、tdata 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 9的的ASCIIASCII码码 db 41h,42h,43h,44h,45h,46hdb 41h,42h,43h,44h,45h,46h;A;AF F的的ASCIIASCII码码 hexhex db 0bh db 0bh;任意设定一个待转换的一位任意设定一个待转换的一位1616进制数进制数data endsdata endscode segmentco
11、de segmentmain proc farmain proc farassumeassume cs cs:code,:code,dsds:data:datastart:start:push push dsds xor xor ax,axax,ax push axpush ax movmov ax,data ax,data mov dsmov ds,ax,ax ;-;-mov bxmov bx,offset ASCII,offset ASCII;BX;BX指向指向ASCIIASCII码表码表movmov al,hex al,hex;AL;AL取取得得一一位位1616进进制制数数,正正是是AS
12、CIIASCII码码表表中中位位移移and al,0fhand al,0fh;只有低只有低4 4位是有效的,高位是有效的,高4 4位清位清0 0 xlatxlat ;换码:换码:ALDS:BXALDS:BXALALmovmov dl,al dl,al;入口参数:入口参数:DLALDLALmovmov ah,2 ah,2;02;02号号DOSDOS功能调用功能调用intint 21h 21h;显示一个显示一个ASCIIASCII码字符码字符retretmainmain endp endpcode endscode ends end startend start12/18/2022ch5 安徽理工
13、大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章5.1 5.1 循环程序设计循环程序设计循循环环结结构构一一般般是是根根据据某某一一条条件件判判断断为为真或假来确定是否重复执行循环体真或假来确定是否重复执行循环体循循环环指指令令和和转转移移指指令令可可以以实实现现循循环环控控制制12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 循环程序结构形式循环程序结构形式DO-WHILE 结构结构 DO-UNTIL 结构结构控制条件控制条件初始化初始化循环体循环体YN控制条件控制条件
14、初始化初始化循环体循环体YN12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章初始化初始化:设置循环的初始状态设置循环的初始状态循环体循环体:循环的工作部分及修改部分循环的工作部分及修改部分控制条件控制条件:计数控制(:计数控制(LOOP)特征值控制特征值控制(LOOPZ/LOOPNZ/条件跳转指令条件跳转指令)循环程序结构说明循环程序结构说明12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章例:把例:把 BX BX 中的二进制数以十六进制
15、的形式显示在屏幕上中的二进制数以十六进制的形式显示在屏幕上 如:如:1011 0010 1111 1010 B B2FAB2FAH BXBX123412/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章分析:分析:(1)程序结构的确定程序结构的确定 由题意由题意应该把应该把应该把应该把BXBX的内容从左到右每的内容从左到右每的内容从左到右每的内容从左到右每4 4位为一组在屏幕位为一组在屏幕位为一组在屏幕位为一组在屏幕上显示出来上显示出来上显示出来上显示出来,显然这可以用循环结构来完成,每次显示,显然这可以用循环结构来完成
16、,每次显示一个十六进制数位,因而循环次数是已知的,计数值为一个十六进制数位,因而循环次数是已知的,计数值为4。(2)循环体的构成(算法确定)循环体的构成(算法确定)循环体应该包括:循环体应该包括:二进制到所显示字符的二进制到所显示字符的二进制到所显示字符的二进制到所显示字符的ASCIIASCII之间之间之间之间的转换,以及每个字符的显示的转换,以及每个字符的显示的转换,以及每个字符的显示的转换,以及每个字符的显示。需要了解相关知识需要了解相关知识:字符和其字符和其ASCII码之间的关系?码之间的关系?“0”“9”30H39H,“A”F”41H5AH如何显示一个字符?如何显示一个字符?(a)将显
17、示字符的将显示字符的ASCII码放入码放入DL寄存器;寄存器;(b)将将AH的内的内容置为容置为2(功能号(功能号););(c)执行执行INT 21H(DOS 功能调用)功能调用)。12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章(3)循环控制条件分析)循环控制条件分析因为循环次数已知,可以使用因为循环次数已知,可以使用LOOPLOOPLOOPLOOP指令指令指令指令实现,但是必须注意:实现,但是必须注意:由于循由于循由于循由于循环移位指令中使用环移位指令中使用环移位指令中使用环移位指令中使用CLCLCLCL寄存器
18、作为移寄存器作为移寄存器作为移寄存器作为移位次数寄存器,而位次数寄存器,而位次数寄存器,而位次数寄存器,而LOOP LOOP LOOP LOOP 指令的循环指令的循环指令的循环指令的循环次数隐含在次数隐含在次数隐含在次数隐含在CXCXCXCX寄存器中,因此,必寄存器中,因此,必寄存器中,因此,必寄存器中,因此,必须注意这两者之间的冲突须注意这两者之间的冲突须注意这两者之间的冲突须注意这两者之间的冲突。除了可以使用除了可以使用LOOPLOOP指令之外,还指令之外,还可以使用可以使用条件跳转指令条件跳转指令条件跳转指令条件跳转指令来实现。来实现。LOOP AGAIN DEC 计数器计数器 JNZ
19、AGAIN12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 mov cxmov cx,4 ,4 ;初始化初始化rotate:rotate:push push push push cxcxcxcx mov cl mov cl,4,4 rol bxrol bx,cl cl mov mov al,al,blbl and al,0fhand al,0fh add al,30h add al,30h ;09 ASCII 30H39H;09 ASCII 30H39H cmp cmp al,3ahal,3ah jl printi
20、tjl printit add al,7h add al,7h ;AF ASCII 41H46H;AF ASCII 41H46Hprintitprintit:mov mov dl,aldl,al mov mov ah,2 ah,2 int int 21h21h pop pop pop pop cxcxcxcx loop rotateloop rotate 方法方法1(LOOP)12/18/2022ch5 安徽理工大学安徽理工大学 计算机科学与技术系计算机科学与技术系 李敬兆李敬兆 汇编语言汇编语言第5章 mov mov chchchch,4 ,4 ;初始化初始化rotate:rotate:mo
21、v mov clclclcl,4,4 rol bxrol bx,cl cl mov mov al,al,blbl and al,0fhand al,0fh add al,30h add al,30h ;09 ASCII 30H39H;09 ASCII 30H39H cmp cmp al,3ahal,3ah jl printitjl printit add al,7h add al,7h ;AF ASCII 41H46H;AF ASCII 41H46Hprintitprintit:mov mov dl,aldl,al mov mov ah,2 ah,2 int int 21h21h dec ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM-PC汇编语言 循环与分支程序设计 IBM PC 汇编语言 循环 分支 程序设计

限制150内