汇编_标志寄存器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_串数据的传送的主要内容,如果未能解决你的问题,请参考以下文章

汇编语言——标志寄存器

汇编之标志寄存器(flag)——EFL

汇编11:标志寄存器

汇编LAHF指令学习 - 使用emu8086

8086汇编语言学习 8086标志寄存器

x86汇编指令详解