首页 > 编程知识 正文

cmp指令用法,cmp指令功能是什么

时间:2023-05-06 10:47:26 阅读:51865 作者:2905

我之前看过延迟函数的段。

delay:

ldr r2,=7000000

ldr r3,=0x0

delay_loop:

sub r2、r2、#1 //r2=r2-1

cmp r2,r3 //cmp影响z标志位,r2=r3时Z=1; 以下语句中eq成立

bne delay_loop //

mov pc,lr //函数返回延迟函数

让我们分析一下这个函数的各个指令。

1、cmp比较指令

假设现在AX寄存器的数量为0004H,BX寄存器的数量为0007H。

要执行的命令是CMP AX、BX

运行此命令时,首先从AX的数量中减去BX的数量。 每个标志位分别设置为以下值:

CF :有进位或借位吗

ZF:0标志位,结果是否为0

OF :溢出标志,计算机结果是否溢出

SF :符号位,0为正,1为负

2、bne指令

BNE:标志寄存器的z标志位非零时,跳至bne后的标签

BEQ:标志寄存器的z标志位为零时,跳至beq后的标签处

上面的函数比较r2和r3,并减去它们,如果结果为0,则z标志的位置位不跳。 否则,跳下去,变成循环

3、子r2、r2、#1

减去r2中的数,返回r2中。

转载于:https://blog.51cto.com/11962449/1837571

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。