zoukankan      html  css  js  c++  java
  • 汇编 (NOT)按位取反指令

    知识点:
    
     (NOT)按位取反指令
     逻辑取反(!)
     按位取反(~)
     SETZ(SETE)  取ZF位值保存
     SETNZ(SETNE)将ZF位值取反后保存
    
    
    一、逻辑取反(!)
      !111 =0;
      !0=1;
      SETZ(SETE) //取ZF标志位值 放到寄存器里
      SETNZ(SETNE) 
    
     二、按位取反NOT指令
       VC中提供运算符为(~)
        11111111111111111111111111011110 //取反运算后
        00000000000000000000000000100001
    
    // asm_NOT.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int i,j;
    	i=0x8877;
    	j=!i; //0;
    
    	__asm mov edx,edx
    	j=~i;//00000000000000001000100001110111
    	     //11111111111111110111011110001000
    	     //FFFF7788
           
    	  // 11011
    	  // 00100
    //00401000  /$  55            PUSH EBP
    //00401001  |.  8BEC          MOV EBP,ESP
    //00401003  |.  83EC 08       SUB ESP,8
    //00401006  |.  C745 FC 77880>MOV DWORD PTR SS:[EBP-4],8877
    //0040100D  |.  33C0          XOR EAX,EAX                              ;  eax=0;
    //0040100F  |.  837D FC 00    CMP DWORD PTR SS:[EBP-4],0               ;  i>0
    //00401013  |.  0F94C0        SETE AL                                  ;  AL=ZF
    //00401016  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
    //00401019  |.  8BD2          MOV EDX,EDX                              ;  __asm mov edx,edx
    //0040101B  |.  8B4D FC       MOV ECX,DWORD PTR SS:[EBP-4]
    //0040101E  |.  F7D1          NOT ECX                                  ;  ecx=~i; 按位与
    //00401020  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX
    //00401023  |.  33C0          XOR EAX,EAX
    //00401025  |.  8BE5          MOV ESP,EBP
    //00401027  |.  5D            POP EBP
    //00401028  .  C3            RETN
    
    
    	return 0;
    }
    
    
    小结:
    NOT: 取反运算,0变成1,1变成0
    ,  如二进制   NOT 1011=0100
    AND: 按位与运算,有0为0,全1为1,如二进制  1011  AND 1101 = 1001
    
    
    OR  : 按位或运算, 有1为1,全0为0,如二进制  101100  OR  110101 =111101
    
  • 相关阅读:
    前端脚手架的那些事儿
    CSS重置默认样式reset.css代码模板
    Web 3.0 前瞻:基于区块链的下一代浏览器
    关键词定位是网站推广的基础
    6年架构师针对web前端小白,作出的职业规划建议
    和程序员约会的优点和缺点
    如何在软件开发中避免出现漏洞
    Linux下修改时区
    前端需要掌握的Nginx知识
    Nginx入门指南
  • 原文地址:https://www.cnblogs.com/whzym111/p/6372587.html
Copyright © 2011-2022 走看看