欢迎来到天天文库
浏览记录
ID:49287805
大小:437.50 KB
页数:79页
时间:2020-02-03
《微型计算机技术.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,4CHMAINPROCFARINT21H
3、ASSUMECS:PROGNAMMAINENDPSTART:MOVCH,4PROGNAMENDSROTATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPIRNTITADDAL,07HPIRNTIT:MOVDL,ALMOVAH,4CHINT21HDECCHJNZROTATE例:统计某字单元中二进制数位值为1的个数,统计结果存放在变量ONE中。DATASEGMENTNUMDW1669HFINI:MOVAH,4CHONEDB?INT21HDATAENDSCODEENDSCODESE
4、GMENTENDSTARTASSNUMCS: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次后,最大的数已经放到了最后,所以在第二遍时,只需比较N-2次,同样道理,第三遍只需比较n-3次…。如
6、果有N个数,最多要比较n-1遍。序号数比较遍数1234比较次数123412312113232321616151588285851616321515168815153161685151515328881616164151585888323232325888585858585第一遍比较5-1=4次挑出最大数85第二遍比较5-2=3次挑出第二大数32第三遍比较5-3=2次挑出第三大数16第四遍比较5-4=1次挑出第四大数15完成整序开始置外循环次数N-1置内循环次数N-1I=0KI≤KI+1?CNUNT2-1=0?=0?CNUNT1-1结束KI
7、←→KI+1I=I+1NNNDSEGSEGMENTNEQU5ADW5DUP(?)DSEGENDSCSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXNUM:ADDSI,2MOXCX,NLOOPLOOP2DECCXMOVCX,DXLOOP1:MOVDX,CXLOOPLOOP1MOVSI,0MOVAH,4CHLOOP2:MOVAX,A[SI]INT21HCMPAX,A[SI+2]MAINENDPJLENUMXCHGAX,A[SI+2]CSEGENDSMOVA[S
8、I],AXENDSTART4.2分支程序设计4.2.1分支程序结构两路(单重)分支结构多路(多重)分支结构这两种结构都要求先对条件进行判定,然后根据判定结果确定执行哪路分支,判定一次只能有一路
此文档下载收益归作者所有