汇编_标志寄存器flag_串数据的传送
Posted 一只特立独行的猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编_标志寄存器flag_串数据的传送相关的知识,希望对你有一定的参考价值。
引言:
flag寄存器是标志寄存器,其他寄存器是用来存放数据的,但是flag寄存器每一位都有自己的含义。
上述的空位没有任何意义。
ZF
0标志位:
当运算结果为0,zf==1(展示为CY)
当运算结果不为0,zf==0(展示为NC)
PF
奇偶标志位:
当所有二进制位的1的个数是奇数:PF==0(展示为PO)
当所有二进制位的1的个数是偶数:PF==1(展示为PE)
SF
正负标志位:
当运算结果为正:SF==0(展示为PL)
当运算结果为负:SF==1(展示为NG)
CF
(无符号运算)(进位/借位)标志位:
如果运算存在(进位/借位):CF==1(展示为CY)
如果运算不存在(进位/借位):CF==0(展示为NC)
OF
(有符号运算)溢出标志位:
如果存在溢出:OF==1(展示为OV)
如果不存在溢出:OF==0(展示为NV)
adc指令
用于进行无符号数运算:
用法: adc 操作数1,操作数2
意义:操作数1+操作数2+CF
sbb指令
用于无符号数的减法操作
用法:sbb 操作数1,操作数2
意义:操作数1-操作数2-CF
cmp指令
用于判断两个数的状态
用法:cmp 操作数1,操作数2
意义:操作数1-操作数2,不保存结果,仅仅置状态位。
无符号数:
对标志寄存器的检测指令(无符号):
movsb
将ds:[si]的一个字节的值送入es:[di]中。然后根据DF的值,将si,di递增或者递减。也可以传送一个字,movsw。
一般配合rep指令使用,rap movsb,表示将传送cx寄存器中的字节数。
cld:将DF的值设置为0
std:将DF的值设置为1
以上是关于汇编_标志寄存器flag_串数据的传送的主要内容,如果未能解决你的问题,请参考以下文章