条件转移指令是组极其重要转移指令它根据标志寄存器中个(或多个)标志位来决定是否需要转移这就为实现多功能提供了必要手段微机指令系统提供了丰富条件转移指令来满足各种区别转移需要在编时要对它们灵活运用
条件转移指令又分 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指令改为条件转移指令
- [qqblog] 不错啊,起码学习是认真的不要马虎的人来捣乱 11/24 11:29
- [qqblog] 我想做一个自主搜索引擎,可有这方面的资料推荐一下,谢谢! 10/21 12:28
- [younggay] 四楼的“游客”重复了N遍的留言已经删除,真纳闷了,怎么还有这样的人,我都明白说了不欢迎游客留言了,删 09/19 09:39
- [assem] 你看,楼上的就应该是那位知名度超高的“游客”吧?还真不怪别人说你! 我劝你还是早点离开这里吧,你如 09/18 19:31
- [younggay] 真服了那个“游客”了,我从博客里删除了他的发言吧,有跑我留言板里复制出了一模一样的话,看来他的每次发 09/02 15:36
- [blackberry] 博主说的对,我也看到那个人在大家的新学习博文中重复的贴来贴去,我也建议他可以跟网站联系,好像他不想那 09/02 09:24
- [younggay] 游客同志,再说一遍,有问题请与汇编网沟通,不要在我们的博客里发来发去的那些重复的无聊东西。再说,汇编 09/02 08:47
- [younggay] 楼上的两位游客,对网站有疑问自己去跟网站联系,不是有邮箱可以联系么,为什么到我博客里发牢骚? 09/01 14:57
- [891204dh] 我喜欢汇编,因为自己想怎么干自己都可以设置,虽然说高级语言也可以这样,可是我个人感觉没汇编来自由,再 08/27 02:15
- [chns811] 谢谢博主提醒!我来的时候有热心人制作了电子书,还是不怎么习惯看电子书,去清华出版社网购了一本,很期待 08/19 22:00
- [891204dh] 呵呵 谢谢你的评论啊, 我初中英语都还不错,只是到高中没去学了 现在还想去学英语呢 08/27 02:17
- [scuzg] 我是scuzg,写了关于整理论坛正解的建议。我很赞同你的看法:如果弄不好,就成了拿着标准答案做作业了 07/22 11:14
- [rhq2009] 如果只练习指令 怎么上机啊 , 用不用写一个完整的程序啊.... 05/29 22:09
- [rhq2009] 哪里有汇编作业做啊... 05/29 22:07
- [q470393267] 在做实验17和课程设计2中,听说要用仿真虚拟软驱和虚拟机,仿真虚拟软驱我弄了个Winvf不怎么算向里 04/24 19:55
- [chenglw] 敢问这位大哥 怎么才能学好汇编呢 怎么学了一个月什么也不知道呢 尤其是cpu 04/06 19:51
- [miaozaoyang] 是啊,不得不承认当今的两大球王 不过,比赛就是比赛啊! 呵呵 想和你联系下,可否告诉我 QQ。 02/02 18:25
- [amberhuhu] 谢谢你的指导 01/20 08:18
- [dongliang] 汇编2电子书我已经下了,谢谢! 12/12 12:56
- [towersimper] http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&lev 07/23 09:31