分支程序设计.pptx
《分支程序设计.pptx》由会员分享,可在线阅读,更多相关《分支程序设计.pptx(53页珍藏版)》请在第壹文秘上搜索。
1、第4章 分支分支程序设计程序设计4.1 简单分支简单分支程序程序4.2 多重分支程序多重分支程序 分支程序的结构形式有两种,如图4.1所示,这两种形式类似于高级语言里面的IF_THEN_ELSE语句和CASE。IF_THEN_ELSE语句可以引出两个分支,而CASE语句可以引出多个分支。在汇编语言里,实现分支选择的语句是通过跳转语句实现的,具体的实现方式如下:先对某一些变量进行比较,然后根据比较的结果跳转到不同的地方去执行。 实现分支的方法: 比较/转移法和跳转表转移法: 比较转移指令可嵌套,但程序结构复杂,跳转表可使程序结构清晰。4.1 简单分支程序简单分支程序 在编写分支程序时,要尽可能避
2、免编写“头重脚轻”的结构 在编写分支结构时,一般先处理简单的分支,再处理较复杂的分支。对多分支的情况,也可遵循“由易到难”的原则。因为简单的分支只需要较少的指令就能处理完,一旦处理完这种情况后,在后面的编程过程中就可集中考虑如何处理复杂的分支 例例4.1 X为任意有符号字节数,若X为负数,则将其取补码,否则与Y相加,和存入AX中。 题目分析:在数据段中定义变量X和Y的值,取出X与比较大小,如果小于,则用求补指令NEG求出补码仍旧存入X存储单元;如果大于0,则计算X+Y的值并存入AX。 .MODEL TINY ;简短模式的程序定义 .DATA X DB -8 ;定义变量X Y DB 210 ;
3、定义变量Y .CODE STARTUP: MOV AX,DATA MOV DS,AX ;取出数据段的段地址 MOV AL,X ;X0?CMP AL,0 JGE BIG;如果X=0,跳转到BIG处与变量Y相加 NEG AL;如果Xhigh,则查找失败,置CF=1,程序结束;否则,计算中间位置mid=(low +high)/2 (3)查找元素k与中点元素rmid比较,若k= rmid,则查找成功,置CF=0,并SImid,程序结束;若krmid, 则转第(5) (4)在低半部分查找。Low值不变, high mid -1,返回第(2),继续查找 (5)在高半部分查找。high值不变,low mid
4、 + 1,返回第(2),继续查找 data segment lw dw ? hg dw ? data ends extra segment arr dw 6,1,2,5,7,9,12 extra ends code segment main proc far assume cs:code,ds:data,es:extra start: mov ax,3 push ax mov ax,data mov ds,ax mov ax,extra mov es,ax pop ax lea di,arr cmp ax,es:di+2 ja chk_last lea si,es:di+2 je exit s
5、tc jmp exit chk_last: mov si,es:di shl si,1 add si,di cmp ax,es:di jb search je exit stc jmp exit search: mov lw,1 mov bx,es:di mov hg,bx mov bx,di mid: mov cx,lw mov dx,hg cmp cx,dx ja no_match add cx,dx shr cx,1 mov si,cx shl si,1 compare: cmp ax,es:bx+si je exit ja higher dec cx mov hg,cx jmp mid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 程序设计
