;计算X一Y的绝对值 例2.41求绝对值 mov ax. X sub ax. y Jns nonneg;条件满足(X-Y≥0)? neg ax 条件不满足,求补 nonneg: mov result,ax;条件满足 ;计算AX的绝对值 mov ax. o Jge honneg;条件满足(AX≥0)? neg ax 条件不满足,求礼 nonneg: moy result,ax;条件满足
;计算X-Y的绝对值 例2.41 求绝对值 mov ax,X sub ax,Y jns nonneg ;条件满足(X-Y≥0)? neg ax ;条件不满足,求补 nonneg: mov result,ax ;条件满足 ;计算AX的绝对值 mov ax,0 jge nonneg ;条件满足(AX≥0)? neg ax ;条件不满足,求补 nonneg: mov result,ax ;条件满足
例题无符号数除以2 ;将AX中存放的无符号数除以2,如果是奇数,则 加1后除以2 test ax,0h;测试AX最低位 JZ even ;最低位为0:AX为偶数 add ax. 1 ;最低位为1:AX为奇数,需要加1 even. rcr ax, ;AX←AX÷2 如果采用SHR指令,在不能处理AX=FFFH 的特殊情况
例题 无符号数除以2 ;将AX中存放的无符号数除以2,如果是奇数,则 加1后除以2 test ax,01h ;测试AX最低位 jz even ;最低位为0:AX为偶数 add ax,1 ;最低位为1:AX为奇数,需要加1 even: rcr ax,1 ;AX←AX÷2 ;如果采用SHR指令,在不能处理AX=FFFFH 的特殊情况
第4 双分支程序设计 条件成立跳转执行第 1c条件满足?> 2个分支语句体,否 则顺序执行第1个分 N 分支语句体1 支语句体。注意第1 JUIP 个分支体后一定要有 个JMP指令跳到第 分支语句体2 2个分支体后 〔b)双分支结构
双分支程序设计 条件成立跳转执行第 2个分支语句体,否 则顺序执行第1个分 支语句体。注意第1 个分支体后一定要有 一个JMP指令跳到第 2个分支体后 第4章
例题显示BX最高位 sh1bx,1;BX最高位移入CF Jc one;CF=1,即最高位为1,转移 mov dl. 30h ;CF=0,即最高位为0,D←′0′ Jmp two;一定要跳过另一个分支体 one: moy dl,3lh;DL←′1 two: moy ah, 2 int2lh;显示 ·编写分支程序,需留心分支的开始和结束
例题 显示BX最高位 shl bx,1 ;BX最高位移入CF jc one ;CF=1,即最高位为1,转移 mov dl,30h ;CF=0,即最高位为0,DL←’0’ jmp two ;一定要跳过另一个分支体 one: mov dl,31h;DL←’1’ two: mov ah,2 int 21h;显示 编写分支程序,需留心分支的开始和结束
例43判断有无实根-1/2 startup mov al. b imul al moⅴbx,ax;BX中为b2 mov al. a imul 4 imu1cx;AX中为4ac(DX无有效数据)
例4.3 判断有无实根-1/2 .startup mov al,_b imul al mov bx,ax ;BX中为b 2 mov al,_a imul _c mov cx,4 imul cx ;AX中为4ac(DX无有效数据)