2020-12-2(详细解释neg指令 以及SCAS ,STOS的运用)
neg指令(求补) 也就是前面我们所提到过的补码的非
也可以把它看做是用0减去后面的数,来判断对标志位的影响
这个neg指令可以配合标志寄存器里面的CF位和OF位使用
a.不为0的操作数求补 CF=1
b.为0的操作数求补 CF=0
(至于为什么会影响CF位的话,把它想象成用0去减一个数,减的如果是非零数CF位肯定改变呀)
c.操作数为-128(字节运算)或操作数为-32768(字运算) OF=1
d.当求补运算的操作数不为-128(字节)或操作数为-32768(字运算) OF=0
解释为什么影响OF位:
8位数的补码,可以表示的是-128~+127。
运算结果超出这个范围,就是溢出。
CPU 就会令 OF = 1。
-----------问---
NEG 指令,是连同符号位一起,求反加一。
NEG 指令,求出的是《相反的数》答。
--------------
mov al,-128 ;al=10000000b
neg al ;al=10000000b, OF = 1
+128,超出了8位数的补码的范围,就是溢专出了。
OF = 1,是属合理的。
--------------
mov al,+127 ;al=01111111b
neg al ;al=10000000b, OF = 0
应该是:
neg al ;al=10000001b, OF = 0
这是-127的补码,不超出范围,没有溢出。
OF = 0,是合理的。
利用这个可以实现条件跳转
SCAS 隐式地把AL/AX/EAX的数值与地址为EDI的内存数值比较(可以实现C语言里面的strlen函数)
xor al,al
mov ebx,edi
repne scasb
sub edi,ebx
STOS 把AL/AX/EAX的数值与写入EDI所指向的内存,常用于把缓存初始化为常量值(可以实现C语言里面的memset()函数)
xor eax,eax
push 9
pop ecx
mov edi,esi
rep stosd
(相当于memset(edi,0,36))
LODS是这个系列的另一个指令,它从ESI读出1,2或4字节数值并存入AL,AX或EAX
2020-12-2(详细解释neg指令 以及SCAS ,STOS的运用)相关推荐
- ps -aux详细解释
ps -aux详细解释 ps-aux 显示其他用户启动的进程(a) 查看系统中属于自己的进程(x) 启动这个进程的用户和它启动的时间(u) 使用"date -s"命令来修改系统时间 ...
- php.ini配置文件中文详细解释
php.ini配置文件中文详细解释 ;;;;;;;;;;; ; 警告 ; ;;;;;;;;;;; ; 此配置文件是对于新安装的PHP的默认设置. ; ; 此配置针对开发目的,并且*不是*针对生产环境 ...
- linux aux是什么命令,Linux命令ps aux详细解释
ps aux详细解释 ps aux 显示其他用户启动的进程(a) 查看系统中属于自己的进程(x) 启动这个进程的用户和它启动的时间(u) 使用"date -s"命令来修改系统时间 ...
- Linux下函数调用堆栈帧的详细解释【转】
转自:http://blog.chinaunix.net/uid-30339363-id-5116170.html 原文地址: Linux下函数调用堆栈帧的详细解释 作者:cssjtuer http: ...
- 英语2020.12.22
英语2020.12.22 第一份(翻译第一段) (成功)7 Many people simply say that they want something, but they do not expen ...
- Python之pandas:pandas.set_option函数的参数详细解释
Python之pandas:pandas.set_option函数的参数详细解释 目录 pandas.set_option函数的参数解释 函数API:pandas.set_option pandas. ...
- linux中useradd的文件路径,linux的useradd命令详细解释
Linux中的useradd命令顾名思义就是添加用户的命令.下面由学习啦小编为大家整理了Linux的useradd命令的详细解释的相关知识,希望对大家有帮助! linux的useradd命令的详细解释 ...
- theano中的Rop和Lop的详细解释
#------------------------------------------序------------------------------------------------------- ...
- MapReduce的工作原理,详细解释WordCount程序
本篇文章主要说两部分:简单介绍MapReduce的工作原理:详细解释WordCount程序. MapReduce的工作原理 在<Hadoop in action>一书中,对MapReduc ...
最新文章
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库01 —— 准备环境,搭建本地仓库,安装ambari...
- android+sdk九宫格游戏,GitHub - mikegame/Android-SDKDemo: 米壳游戏Android SDKDemo
- vscode使用教程python-VS Code 配置 Python 开发环境
- 异步社区本周半价电子书(6月11-17日)
- 保护个人信息需出“重典”
- 离线安装 KubeSphere 2.1.1 与 Kubernetes
- 修改Linux系统默认编辑器
- linux 脚本做成服务,Shell脚本注册到Linux系统服务实例
- JAVA基础之n+=1与n=n+1的区别
- fcm模糊聚类matlab实例_智能控制-Fuzzy控制- matlab
- java_math_BigInteger
- Java实现Unicode编码和中文互转
- python 移动/剪切文件
- win7 微信 代理服务器设置,手把手为你讲解win7系统电脑登录多个微信的详细方法...
- kiv8测量方法_measure_测量 | measure_Scikit image_参考手册_非常教程
- C#操作word定位光标
- sticky 失效问题
- 服务器ae是什么位置,ae 渲染服务器
- 北京大学可视化发展前沿研究生暑期学校第二讲
- Js实现金额转换为中文繁体
热门文章
- ML之ME/LF:基于不同机器学习框架(sklearn/TF)下算法的模型评估指标(损失函数)代码实现及其函数(Scoring/metrics)代码实现(仅代码)
- OpenCV的k - means聚类 -对图片进行颜色量化
- JAVA_OA管理系统(二):SpringMVC笔记基础篇01注入方法
- Codeforces - 662A 思路巧妙的异或
- 【算法总结】图论相关
- GitHub如何删除一个repository(仓库)
- Delphi设置表格样式
- 多线程,线程同步,synchronized关键字的用法
- Linux grep
- ES6(三)数组的扩展