字符按位取反python_汇编 (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
为什么X86汇编中的mov指令不支持内存到内存的寻址?
在X86汇编中,MOV [0012H], [0016H]这种指令是不允许的,至少得有一个操作数是寄存器.当然,这种问题在用高级语言的时候看不到,感觉好像基本上都是从内存到内存啊,为毛到了汇编就不行了? ...
汇编 STD和CLD指令
一.用纯汇编封装函数strcmpW 1.用repnz scasw计算字串长度 2.用repz cmpsw比较字串内容 3.把比较的结果存放在EAX里边返回 __declspec(naked) int ...
7.arm汇编 bic和orr指令
1. bic BIC指令的格式为: BIC{条件}{S} 目的寄存器,操作数1,操作数2 BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中. 操作数1应是一个寄存器, 操作数2可以是一 ...
【汇编】字符串处理指令 stosb、lodsb、movsw、scasb、rep
一.字符串处理指令 (1) lodsb.lodsw:把DS:SI指向的存储单元中的数据装入AL或AX,然后根据DF标志增减SI (2) stosb.stosw:把AL或AX中的数据装入ES:DI指向的 ...
Debug和汇编编译器masm对指令的不同处理
我们在Debug和源程序中写入同样形式的指令 : "mov al,[0]","mov bl,[1]","mov cl,[2]"," ...
汇编 shr 逻辑右移指令,shl 逻辑左移指令,SAL 算术左移指令,SAR 算术右移指令
知识点: shr 逻辑右移指令 shl 逻辑左移指令 一.SHL 逻辑左移指令测试 shr 逻辑右移指令 右移一位相当于整除2 shl 逻辑左移指令 左移一位相当于乘2 //很多时候会溢出 //& ...
汇编 inc 和 dec 指令
知识点: inc 加1指令 dec 减1指令 一.加一指令inc inc a 相当于 add a, //i++ 优点 速度比sub指令快,占用空间小 这条指令执行结果影响AF.OF.PF.SF.Z ...
汇编 MOVSX与MOVZX 指令
知识点: MOVSX符号扩展传送 MOVZX零扩展传送 一.MOVSX与MOVZX格式 MOVSX 操作数A ,操作数B MOVZX 操作数A ,操作数B 相同点:操作数B 空间必须小于 操作 ...
学 Win32 汇编[28] - 跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
http://www.cnblogs.com/del/archive/2010/04/16/1713886.html 跳转指令分三类:一.无条件跳转: JMP;二.根据 CX.ECX 寄存器的值跳转: ...
随机推荐
CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
用Linux自带的Logrotate来管理日志
Logrotate是由cron控制,cron在规定的时间执行 " logrotate /etc/logrotate.conf "命令.将对象日志进行转储,删除,压缩等操作... ...
JSP(include指令与<;jsp:include>;动作的区别)
【bzoj1037】 ZJOI2008—生日聚会Party
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 (题目链接) 题意 有n个boy和m个girl排成一排,求使得任意一段的boy个数girl个数 ...
xaml中绑定单例属性
在项目中经常会遇到,同一个字典表绑定到多个ItemsControl上的情况,可以在单例中创建一个List,xaml上绑定即可.看代码: 1,XAML
修改ruby gem源为ruby.taobao.org
由于网络原因,导致从rubygems.org下载gem文件较慢或者间歇性的连接失败,所以可以修改gem源为ruby.taobao.org.具体可以用 gem install rails -V 来查看执 ...
【转】GIT和SVN之间的五个基本区别
如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等.如果 ...
Spring Boot实战笔记(四)-- Spring常用配置(事件Application Event)
一.事件(Application Event) Spring的事件为Bean和Bean之间的消息通信提供了支持.当一个Bean处理完一个任务之后,希望另一个Bean知道并能做相应的处理,这时我们就需要 ...
[SCOI2015]小凸玩矩阵
Description: 给你一个n*m的网格,每个格子有一个数字,每行每列只能选一个数字,问所选数字中第k大的数字的最小值是多少 Hint: \(n \le 250\) Solution: 显然是二 ...
DRF 版本和认证
Django Rest Framework 版本控制组件 DRF的版本 版本控制是做什么用的, 我们为什么要用 首先我们要知道我们的版本是干嘛用的呢~~大家都知道我们开发项目是有多个版本的~~ 当我们 ...
字符按位取反python_汇编 (NOT)按位取反指令相关推荐
- 汇编语言中xor指令_汇编各类指令用法及含义分析 - 全文
什么是汇编语言 汇编语言(assembly language)是一种用于电子计算机.微处理器.微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指 ...
- debug和汇编编译器masm对指令不同的处理
debug和汇编编译器masm对指令不同的处理 1.在汇编源程序中,如果用指令访问一个内存单元,则在指令中必须用[...]来表示内存单元.如果 在[ ]里用一个常量idata直接给出内存单元的偏移地 ...
- 研究16位汇编NEG求补指令
转自: http://bbs.pediy.com/showthread.php?t=81209 [文章标题]: 研究16位汇编NEG求补指令 [文章作者]: hzmslx 我是个菜鸟··学16位汇 ...
- dec-c 怎么改语言,汇编中的dec指令是什么指令
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:汇编中的dec指令是什么指令?回答:相当于c语言中的自减.如:dec R0就是说R0=R0-1.如果R0=5,那么运算过后,R0=4 ...
- linux汇编语言cmp,汇编语言中cmp指令用法笔记与总结
这篇文章主要介绍了汇编语言中cmp指令用法,结合实例形式总结分析了汇编语言cmp指令基本功能.使用方法及操作注意事项,需要的朋友可以参考下 本文实例讲述了汇编语言中cmp指令用法.分享给大家供大家参考 ...
- 中文字符频率统计python_用Python数据分析方法进行汉字声调频率统计分析
用 Python 数据分析方法进行汉字声调频率统计分析 木合塔尔·沙地克 ; 布合力齐姑丽·瓦斯力 [期刊名称] <电脑知识与技术> [年 ( 卷 ), 期] 2017(013)035 [ ...
- x86汇编-2(第五章)nasm汇编基础知识、指令、显存、bochs调试
一. 汇编程序一般人为地分为代码段与数据段,不同的段的内存分配总是16字节的倍数,公式如下 设数据段或代码段为x字节,分配内存为:(x/16+x%16)*16字节 标号:标识当前位置的偏移地址,如果当 ...
- 汇编学习--7.16--int指令
int指令 中断信息可以来自CPU的内部和外部,当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程. 上一章讲解了0号中断和单步中断,这一章将讲解另一种重要的内中断, ...
- 汇编——操作符和常用指令
操作符 操作符分为四大类,算数操作符.关系操作符.数值回送操作符和属性操作符. 算数操作符 加减乘除和求模,这个就不说了. 注:这里指的是[sp+8]这样的加法,而不是我们的add指令. 关系运算符 ...
最新文章
- Dubbo原理何源码解析之服务暴露
- jedis_通过Jedis API使用排序集
- 中国式微服务技术栈2.0
- 一个简单IOC与DI示例
- 用php实现一个简易的web表单生成器,PHP—Web表单生成器
- ubuntu16.04版本 the system is running in low-graphics mode
- 在discuzNT中加入Adsense广告(只在第一楼显示)
- Acwing 309. 装饰围栏
- where,having与 group by连用的区别
- 人工智能白皮书(2022年) 附下载
- 高等代数---多项式
- 若计算机系统有120个终端,概率论答案 - 李贤平版 - 第五章
- Python学习路线(课程大纲+Python视频教程+下载地址)
- 小猿圈:web前端工程师工资有多高?
- 【Rust精彩blog】Rust 中几个智能指针的异同与使用场景
- MySQL学习笔记整理(上部)
- 手机界面显示无服务器,手机直接投屏电视,电视上显示投屏成功,却没有图像
- Ubuntu14.04 安装 TP_LINK驱动 TL-WDN5200H 1.0无线网卡
- [软件逆向]实战Mac系统下的软件分析+Mac QQ和微信的防撤回
- 046 非常特别的一天
热门文章
- 魅族微信无法连接到服务器,原来魅族手机要搞定这几个设置,微信才会更好用!...
- 计算机网络通信论文,计算机网络通信技术应用
- magic版本和android版本,荣耀Magic有几个版本?荣耀Magic各版本区别对比评测
- 小米mix2s与华为P20谁更值得购买?
- 遭遇WPS演示生成的PPT在PowerPoint 2010中不能显示背景的问题
- datatables使用教程
- MySQL字符集utf8mb4与utf8的区别
- 三目运算符 java_Java三目运算符中的坑
- postfix stmp账号被破解,疯狂往外发诈骗邮件
- day21Java-网络编程Socket-UDP协议