资源描述:
《汇编语言程序设计基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计基础基本程序结构:顺序结构循环结构分支结构子程序结构复合结构:多种程序结构的组合……14.1循环程序设计结束初始化循环的初始状态循环体循环的工作部分及修改部分计数控制特征值控制地址边界控制修改部分循环控制条件YN2例1.把BX中的二进制数以十六进制的形式显示在屏幕上。BX12343movch,4rotate:movcl,4rolbx,clmoval,blandal,0fhaddal,30h;’0’-’9’ASCII30H-39Hcmpal,3ahjlprintitaddal,7h;’A
2、’-’F’ASCII41H-46Hprintit:movdl,almovah,2int21hdecchjnzrotate4例2.将正数n插入一个已整序的字数组的正确位置。算法:将数组中数逐个与N比较,Si为指针若N3、ARRAY_HEAD特征值控制:表示结束条件的值5例2.将正数n插入一个已整序的字数组的正确位置。xdw?array_headdw3,5,15,23,37,49,52,65,78,99array_enddw105ndw32movax,nmovarray_head-2,0ffffhmovsi,0compare:cmparray_end[si],axjleinsertmovbx,array_end[si]movarray_end[si+2],bxsubsi,2jmpshortcompareinsert:m
4、ovarray_end[si+2],ax-135491552233710599786532xn6例3将首地址为A的字数组从小到大排序(气泡算法,多重循环)Adw32,85,16,15,8序号地址数比较遍数12341A322A+2853A+4164A+6155A+883216158851615832851581632858151632857movcx,10deccxloop1:movdi,cxmovbx,0loop2:movax,A[bx]cmpax,A[bx+2]jlecontinuexchgax,A
5、[bx+2]movA[bx],axcontinue:addbx,2looploop2movcx,dilooploop184.2分支程序设计判定条件ABABX判定条件…(1)两路分支结构(2)多路分支结构9(1)逻辑尺控制(2)条件控制(3)地址跳跃表TABLEDWONE,TWO,THREEJMPTABLE[SI]…1000ONE:…2000TWO:…3000THREE:…??case1case2case3case1case2casen。。。。。。10例1.设有数组x(x1,…,x10)和y(y1,…,
6、y10),编程计算z1=x1+y1z2=x2+y2z3=x3-y3z4=x4-y4z5=x5-y5z6=x6+y6z7=x7-y7z8=x8-y8z9=x9+y9z10=x10+y10逻辑尺:00110111001减法0加法11xdwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10ydwy1,y2,y3,y4,y5,y6,y7,y8,y9,y10zdwz1,z2,z3,z4,z5,z6,z7,z8,z9,z10logic_ruledw00dch……movbx,0movcx,10movdx,
7、logic_rulenext:movax,x[bx]shrdx,1jcsubtractaddax,y[bx]jmpshortresult;向前引用subtract:subax,y[bx]result:movz[bx],axaddbx,2loopnext12例2.根据AL寄存器中哪一位为1(从低位到高位)把程序转移到8个不同的程序分支去。(寄存器间接寻址)branch_tabledwroutine1dwroutine2dwroutine3dwroutine4dwroutine5dwroutine6dwr
8、outine7dwroutine8cmpal,0jecontinueleabx,branch_tableL:shral,1;逻辑右移jncadd1jmpwordptr[bx];段内间接转移add1:addbx,2jmpLcontinue:……routine1:……routine2:…………134.3子程序的设计方法过程(子程序)定义伪操作procedure_namePROCNEAR(FAR)……procedure_nameENDP(1)NEAR属性:调用