微机原理及应⽤实验——数据⽐较及排序程序数据⽐较及排序程序
⽐较指令CMP
格式
CMP OPRD1,OPRD2
操作
OPRD1- OPRD2
两个数的⼤⼩由OF和SF共同决定:
指令执⾏的结果不影响⽬标操作数,仅影响6个标志位!
⽤途
⽤于⽐较两个数的⼤⼩,可作为条件转移指令转移的条件
案例
在内存数据段从DATA开始的单元中存放了两个8位⽆符号数,试⽐较他们的⼤⼩,并将⼤的输送MAX单元。
核⼼代码:
LEA BX, DATA ;DATA偏移地址送BX
MOV AL, [BX];第⼀个⽆符号数送AL
INC BX ;BX加1,指向第⼆个数
CMP AL, [BX];两个⽆符号数进⾏⽐较
JNC DONE ;若CF=0(⽆进位,表⽰第⼀⼀个数⼤),转向DONE
MOV AL, [BX];否则,第⼆个⽆符号数送AL
DONE :
MOV MAX,AL ;将较⼤的⽆符号数送MAX
HLT ;停⽌
转移指令
转移指令是通过修改指令的偏移地址或段地址及偏移地址实现程序的转移的⼀类指令。
转移指令⼜分为⽆条件转移指令和有条件转移指令:
⽆条件转移指令: ⽆条件转移到⽬标地址,执⾏新的指令
条件转移指令: 在具备⼀定条件的情况下转移到⽬标地址
⽆条件转移指令
寻⽬标地址的⽅法有两种:
直接的⽅式;
间接的⽅式
⽆条件段内转移
转移的⽬标地址在当前代码段内,段地址不改变。即⽬标地址是16位偏移地址。
段内直接转移
转移的⽬标地址由指令直接给出
格式
JMP Label
段内转移时的标号前可加运算符NEAR,也可不加,省略时为段内转移。
下⼀条要执⾏指令的偏移地址:
新IP=当前IP+位移量(CS不变)
案例
段内间接转移比较指令cmp怎么用
转移的⽬标地址存放在某个16位寄存器或存储器的某两个单元中
格式
JMP OPRD
案例
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论