zoukankan      html  css  js  c++  java
  • 汇编语言(王爽) 第11章 标志寄存器

    这里讲一个特殊的寄存器,flag

    先看flag的16位显示

    11.1 zf

    指令执行后,结果0,ZF=1

    指令执行后,结果不为0,ZF=0

    11.2 pf

    指令执行后,所有bit位中1的个数是否位偶数,若为偶数,那么pf=1

    若为奇数,pf=0

    11.3 sf

    指令执行后,结果负,SF=1

    指令执行后,结果不为负,SF=0

    11.4 cf

    进位

    若出现进位,那么CF=1

    没有的话CF=0

    11.5 of

    溢出,

    数字的溢出。

    8位范围是-128-127 若130就是溢出了

    11.6 abc指令

    abc a,b

    a=a+b+CF

    为啥需要这个东西呢?

    加法可以分2步,

    1 低位=低位加

    2 高位=高位加+CF

    把加法分步进行了

    11.8 cmp指令

    减法指令,但是不保存实际减法结果,就是用来影响flag的位

    有4种情况把,自己总结的

    1 sf=1,of =0 就A<B

    2 sf=1,of=1 正溢出出现的负值,就是a-b是一个大的正数,要是8位的话,就是大于127的

    3 sf=0,of=1 负溢出才会出现正值,那么a-b就是一个负数,要是8位的话,就是小于128的

    4 sf=0 sf=1 没溢出,就很正常的比较大小

    11.9 讲了一些条件转移指令

    jczx 这种的

    就和高级语言的if switch差不多把

    11.10 串传送

    DF =0 每次操作后 si,di 递增

    DF=1 每次操作后si,di递减

    movsb一次传一个内存单元,配合rep movsb使用

    11.11 pushf popf

    pushf 把标志寄存器的值入栈

    popf 从栈中弹出数据,送到栈中

    这里就讲一个flag寄存器,每个位都下设置0,1,起到不同的作用

    EOF

  • 相关阅读:
    git 码云
    keras训练cnn模型时loss为nan
    将矩阵补齐0
    将dataframe分割为训练集和测试集两部分
    另存了一次网页之后其它word打开格式都变了
    python 判断字符串是否为(或包含)IP地址
    为多维数组添加一列以及reshape用法注意
    memory error python报错
    列表转换为三维矩阵
    LaTeX参考文献出现问号
  • 原文地址:https://www.cnblogs.com/wz0107/p/5380197.html
Copyright © 2011-2022 走看看