汇编网首页登录博客注册
younggay的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
好友圈
友情链接

[2009-09-01 14:59] 汇编语言的条件转移指令

条件转移指令是组极其重要转移指令它根据标志寄存器中个(或多个)标志位来决定是否需要转移这就为实现多功能提供了必要手段微机指令系统提供了丰富条件转移指令来满足各种区别转移需要在编时要对它们灵活运用 
条件转移指令又分 3大类:基于无符号数条件转移指令、基于有符号数条件转移指令和基于特殊算术标志位条件转移指令 
、无符号数条件转移指令(Jumps Based on Unsigned (Logic) Data) 
指令助忆符检测转移条件功能描述 
JE/JZZF=1Jump Equal or Jump Zero 
JNE/JNZZF=0Jump Not Equal or Jump Not Zero 
JA/JNBECF=0 and ZF=0Jump Above or Jump Not Below or Equal 
JAE/JNBCF=0Jump Above or Equal or Jump Not Below 
JB/JNAECF=1Jump Below or Jump Not Above or Equal 
JBE/JNACF=1 or AF=1Jump Below or Equal or Jump Not Above 

、有符号数条件转移指令(Jumps Based on Signed (Arithmetic) Data) 
指令助忆符检测转移条件功能描述 
JE/JZZF=1Jump Equal or Jump Zero 
JNE/JNZZF=0Jump Not Equal or Jump Not Zero 
JG/JNLEZF=0 and SF=OFJump Greater or Jump Not Less or Equal 
JGE/JNLSF=OFJump Greater or Equal or Jump Not Less 
JL/JNGESF≠OFJump Less or Jump Not Greater or Equal 
JLE/JNGZF=1 or SF≠OFJump Less or Equal or Jump Not Greater 

、特殊算术标志位条件转移指令(Jumps Based on Special Arithmetic Tests) 
指令助忆符检测转移条件功能描述 
JCCF=1Jump Carry 
JNCCF=0Jump Not Carry 
JOOF=1Jump Overflow 
JNOOF=0Jump Not Overflow 
JP/JPEPF=1Jump Parity or Jump Parity Even 
JNP/JPOPF=0Jump Not Parity or Jump Parity Odd 
JSSF=1Jump Sign (negative) 
JNSSF=0Jump No Sign (positive) 

例5.15 编写段它把寄存器AX-BX绝对值存入BX中 
解: 
next:… 
SUBBX, AX 
JNSnext 
NEGBX 
… 

例5.16 已知个字节变量char试编写段把其所存大写字母变成小写字母 
解: 
next:… 
charDB  ’F’ ;变量介绍说明 
… 
MOVAL, char 
CMPAL, ’A’ 
JBnext;注意:是无符号数不要使用指令JL 
CMPAL, ’Z’ 
JAnext 
ADDchar, 20H;小写字母比大写字母ASCII码大20H 
… 

如果不知道(或忘了)大小写字母ASCII码的间关系那么可用数值表达式’a’-’A’、’b’-’B’、…、’z’-’Z’等来代替具体数值20H 
例5.17 编写段完成下面计算公式其中:变量X和Y都是字类型 
解: 
… 
XDW  ?;变量介绍说明 
YDW  ? 
… 
MOV AX, X 
MOVBX, AX;用BX来临时存放计算结果 
CMPAX, 0 
JLEdata 
CMPAX, 500 
JG3 
ADDBX, 100D;BX=X+100 
JMP data 
next:SUBBX, 50D;BX=X-50 
data:MOVY, BX;把计算结果赋给变量Y 
… 

例5.18 下面循环体指令代码字节数超过128试改写该循环 
… 
MOV CX, COUNT;给循环计数器赋初值(>0) 
  again:循环体指令序列;循环体首地址偏移量大于128 
LOOP again 
解: 
… 
MOV CX, COUNT 
  again:循环体指令序列 
DEC CX 
JNZ again;把LOOP指令改为条件转移指令
评论次数(0)  |  浏览次数(936)  |  类型(水中望月) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码