汇编_标志寄存器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

扫描二维码关注公众号,回复: 13265481 查看本文章

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

猜你喜欢

转载自blog.csdn.net/qq_45931661/article/details/120499355