zoukankan      html  css  js  c++  java
  • 如何只修改EFLAGS寄存器中一个标志位的值?

    版权声明:本文为博主原创文章,2019-08-23,22:21:42转载请附上原文出处链接和本声明。
    作者By-----溺心与沉浮----博客园

     

    1、写汇编指令只影响CF位的值(不能影响其他标志位

      MOV AX,0xFF00

      ADD AX,0x0101

     2、写汇编指令只影响PF位的值(不能影响其他标志位)

       MOV AX,0x3

      ADD AX,0xC

     

     3、写汇编指令只影响AF位的值(不能影响其他标志位)

       MOV AX,0xF0

      ADD AX,0x10

     

    版权声明:本文为博主原创文章,2019-08-23,22:21:42转载请附上原文出处链接和本声明。
    作者By-----溺心与沉浮----博客园 

     4、写汇编指令只影响SF位的值(不能影响其他标志位)

       MOV AX,0x8000

       ADD AX,0x1

     6、写汇编指令只影响OF位的值(不能影响其他标志位)

       O位,想一想,如果采用两个正数相加(即0x00 ~ 0x7f之间的数),使得它变为一个负数,那么这两个数相加的值必然要越过0x7F这条线,必然会导致Sign Flag发生改变,AF位也会发生字节的进位,使得AF位会发生改变,很显然,让两个正数(即0x00 ~ 0x7f)之间的数相加不行,换个角度思考,那么两个负数相加的情况呢(0x80 ~ 0xFF)它是不是会使得C位发生溢出呢,是的吧,那么怎么解决这个问题,计算机我们可以用大一点的负数,减去一个正数。

      MOV AL,0x80

      SUB AL,0x10

     

     

     版权声明:本文为博主原创文章,2019-08-23,22:21:42转载请附上原文出处链接和本声明。
    作者By-----溺心与沉浮----博客园

  • 相关阅读:
    ORACLE常用SQL(session&badSql)
    归档日志满解决方法
    SPRING MVC总结
    Java中分割字符串
    无废话ExtJs 入门教程二十一[继承:Extend]
    无废话ExtJs 入门教程二十[数据交互:AJAX]
    WAMP 80端口被Microsoft-HTTPAPI/2.0占用的解决办法
    WampServer安装图解教程
    vmware tools安装程序无法继续,Microsoft Runtime DLL安装程序未能完成安装。的解决方法
    WordPress添加网站图标
  • 原文地址:https://www.cnblogs.com/Reverse-xiaoyu/p/11402968.html
Copyright © 2011-2022 走看看