预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

循环程序设计 分支程序设计分支结构子程序结构编制汇编语言程序的步骤:1.循环程序设计初始化:设置循环的初始状态 循环体:循环的工作部分及修改部分 控制条件:计数控制 特征值控制 地址边界控制BX…… movch,4 rotate:movcl,4 rolbx,cl moval,bl andal,0fh addal,30h;’0’~’9’ASCII30H~39H cmpal,3ah jlprintit addal,7h;’A’~’F’ASCII41H~46H printit:movdl,al movah,2 int21h decch jnzrotate ………… movbx,0 newchar:movah,1;键盘输入 int21h subal,30h jlexit;<0退出 cmpal,9 jgexit;>9退出 cbw xchgax,bx movcx,10 mulcx xchgax,bx addbx,ax jmpnewchar exit:………… movbx,0 newchar:movah,1;键盘输入 int21h subal,30h jlexit;<0退出 cmpal,10 jladd_to subal,27h;‘a’~‘f’ cmpal,0ah jlexit;<‘a’退出 cmpal,10h jgeexit;>’f’退出 add_to:movcl,4 shlbx,cl movah,0 addbx,ax jmpnewchar exit:……xdw? array_headdw3,5,15,23,37,49,52,65,78,99 array_enddw105 ndw32movcx,5;元素个数 deccx;比较遍数 loop1:movdi,cx;比较次数 movbx,0 loop2: movax,A[bx];相邻两数 cmpax,A[bx+2];比较 jlecontinue xchgax,A[bx+2];交换位置 movA[bx],ax continue: addbx,2 looploop2 movcx,di looploop12.分支程序设计例:有数组x(x1,x2,……,x10)和y(y1,y2,……,y10), 编程计算z(z1,z2,……,z10) z1=x1+y1 z2=x2+y2 z3=x3-y3 z4=x4-y4 z5=x5-y5 z6=x6+y6 z7=x7-y7 z8=x8-y8 z9=x9+y9 z10=x10+y10xdwx1,x2,x3,x4,x5,x6,x7,x8,x9,x10 ydwy1,y2,y3,y4,y5,y6,y7,y8,y9,y10 zdwz1,z2,z3,z4,z5,z6,z7,z8,z9,z10 logic_ruledw00dch;0000,0000,1101,1100 …… movbx,0 movcx,10 movdx,logic_rule next:movax,x[bx] shrdx,1 jcsubtract addax,y[bx] jmpshortresult;向前引用 subtract: subax,y[bx] result:movz[bx],ax addbx,2 loopnext ……datasegment arraydw12,11,22,33,44,55,66, 77,88,99,111,222,333 numberdw55 low_idxdw? high_idxdw? dataends12 11 22 33 44 55 66 77 88 99 111 222 333…… leadi,array movax,number;要查找数 cmpax,[di+2];(ax)与第一个元素比较 jachk_last leasi,[di+2] jeexit;(ax)=第一个元素,找到退出 stc jmpexit;(ax)<第一个元素,未找到退出 chk_last: movsi,[di];元素个数 shlsi,1;计算最后一个元素 addsi,di;的地址 cmpax,[si];(ax)与最后一个元素比较 jbsearch jeexit;(ax)=最后一个元素,找到退出 stc jmpexit;(ax)>最后一个元素,未找到退出compare: cmpax,[bx+si] jeexit jahigher deccx movhigh_idx,cx jmpmid higher: inccx movlow_idx,cx jmpmid no_match: stc exit: ……12 11 22 33 44 55 66 77 88 99 111 222 333算法2例:根据AL寄存器中哪一位为1(从低位到高位), 把程序转移到8个不同的程序分支…… cmpal,0;AL为逻辑尺 j