欢迎来到天天文库
浏览记录
ID:59438443
大小:358.50 KB
页数:79页
时间:2020-09-18
《2019年 微型计算机技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微型计算机技术学习辅导(4)太原广播电视大学郭建勇第四章汇编语言程序设计基础4.1循环程序设计在程序设计中,常常需要一段程序反复执行若干次,这通常用循环的方法来实现,借助几种循环控制指令和前缀可以方便地实现循环。4.1.1基本结构的循环程序(1)初始化部分:循环前的准备工作,包括建立指针、设置变量及循环初值等。(2)循环体:这是循环程序的工作部分,完成循环的基本操作。(3)修改部分:修改参数,包括操作数地址、循环计数值或其他控制变量。(4)控制部分:根据对循环条件的判断结果,控制循环的执行或结束。初始化循环体初始化修改
2、部分修改部分循环体循环控制循环控制YNNY先工作后判断先判断后工作例:编制一个程序,将BX寄存器中的二进制数用十六进制数的形式显示出来。(1)BX寄存器中的二进制数可用4位十六进制数显示,故循环次数为4,放入CH中。(2)BX循环左移4次,最高位数字移到最低位置;(3)0~9的数字与ASCII码差为30H;A~F(41H~46H)与ASCII码差为37H;故0~9的数字+30H,而A~F应+37H。开始CX←循环记数值BX循环左移4次转换为ASCII码>9?+7显示次数=0?结束PROGNAMSEGMENTMOVAH,
3、4CHMAINPROCFARINT21HASSUMECS:PROGNAMMAINENDPSTART:MOVCH,4PROGNAMENDSROTATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPIRNTITADDAL,07HPIRNTIT:MOVDL,ALMOVAH,4CHINT21HDECCHJNZROTATE例:统计某字单元中二进制数位值为1的个数,统计结果存放在变量ONE中。DATASEGMENTNUMDW1669HFINI:MOVAH,4CHONED
4、B?INT21HDATAENDSCODEENDSCODESEGMENTENDSTARTASSNUMCS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,NUMCOMP:CMPAX,0JZFINISHLAX,1JNCCOMPINCONEJMPCOMP开始AX←NUMAX=0?AX左移一位CF=1?ONE+1结束YY4.1.2多重循环程序一个计算过程可能要依赖几个互相独立变化的参数,这就需要在一个循环过程中再包含一个循环过程,形成外层循环嵌套内层循环的结构形式,这种程序就称为多重循环程序。
5、多重循环程序设计的基本方法和单重循环程序设计是一致的,应分别考虑各层循环的控制条件及其程序实现,相互之间不能混淆。另外要注意在每次通过外层循环再次进入内层循环时,初始条件必须重新设置。例:有一个首地址为A的N字数组,请编制程序使该数组中的数按照从小到大的次序排列(整序)。采用起泡排序算法实现整序:从第一个数开始依次对相邻两个数Ki和Ki十l进行比较,若Ki≤Ki十l,Ki的位置不动,Ki十l继续和Ki十2比较;若Ki>Ki十1,则两者交换位置。Ki十1(交换前的Ki)继续和Ki十2比较。可以看出,在第一遍比较了N-1次
6、后,最大的数已经放到了最后,所以在第二遍时,只需比较N-2次,同样道理,第三遍只需比较n-3次…。如果有N个数,最多要比较n-1遍。序号数比较遍数1234比较次数123412312113232321616151588285851616321515168815153161685151515328881616164151585888323232325888585858585第一遍比较5-1=4次挑出最大数85第二遍比较5-2=3次挑出第二大数32第三遍比较5-3=2次挑出第三大数16第四遍比较5-4=1次挑出第四大数15完
7、成整序开始置外循环次数N-1置内循环次数N-1I=0KI≤KI+1?CNUNT2-1=0?=0?CNUNT1-1结束KI←→KI+1I=I+1NNNDSEGSEGMENTNEQU5ADW5DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXNUM:ADDSI,2MOXCX,NLOOPLOOP2DECCXMOVCX,DXLOOP1:MOVDX,CXLOOPLOOP1MOVSI,0MOVAH,4CHLOOP2:MO
8、VAX,A[SI]INT21HCMPAX,A[SI+2]MAINENDPJLENUMXCHGAX,A[SI+2]CSEGENDSMOVA[SI],AXENDSTART4.2分支程序设计4.2.1分支程序结构两路(单重)分支结构多路(多重)分支结构这两种结构都要求先对条件进行判定,然后根据判定结果确定执行哪路分支,判定一次只能有一路
此文档下载收益归作者所有