首先说下理论:

汇编语言中SAR和SHR指令都是右移指令,SAR是算数右移指令(shift arithmetic right),而SHR是逻辑右移指令(shift logical right)。

两者的区别在于SAR右移时保留操作数的符号,即用符号位来补足,而SHR右移时总是用0来补足。

例如10000000算数右移(SAR)一位是11000000,而逻辑右移(SHR)一位是01000000。

那么:

#include "stdio.h"

int main()

{

// int a=10;

// printf("%d\n",a>>2);

__asm

{

mov al,0xD5

sar al,2

}

return 0;

}

中的我们的内嵌汇编

mov al,0xD5

sar al,2
执行完之后是什么?

0xD5即 16进制D5,换算成二进制为1101 0101;sar右移2位,即相当于右移1次,再右移1次;每次补符号位1,2次右移后结果为二进制1111 0101,即为16进制F5。

执行:

mov al,0xD5

再执行:

sar al,2

这里一定要清楚,右移2次,相当于右移了2个1次,这样就容易理解为什么左边补了2个1了。

汇编指令sar与shr相关推荐

  1. 关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR

    关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR 书上说 ROL的功能为,对操作数进行循环左移,每执行一次,把最高位移到最低位,同时还把最高位移到CF 那么 CF=0 ...

  2. 【Android 逆向】x86 汇编 ( add / sub / mul / div 数值运算指令 | xor / not / sal / sar / shl / shr 位运算指令 )

    文章目录 一.add / sub / mul / div 数值运算指令 二.xor / not / sal / sar / shl / shr 位运算指令 总结 一.add / sub / mul / ...

  3. 32位汇编寄存器及汇编指令

    32位CPU所含有的寄存器有: 4个数据寄存器(EAX.EBX.ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES.CS.SS.DS.FS和 ...

  4. 寄存器和常用的汇编指令

    为了学习需要,最近查看了一下汇编,因为是个初学者很多东东基本不动,所以记录一下基本指令和寄存器,那样就会对汇编慢慢的适应,看得懂那些华丽花哨的反汇编代码了.学习这个东东基本是为了破解和逆向工程使用,因 ...

  5. 8086 汇编指令手册查询(转)

    8086 汇编指令手册查询,编语言是一种面向机器的语言.它能够利用计算机所在硬件性并能直接控制硬件,在微型计算机系统的开发应用和过程控制和特别受到重视. 一.数据传输指令 -------------- ...

  6. 【整理】X86常用的汇编指令及寄存器

    X86常用的汇编指令及寄存器 这几天需要用到反编译的工具,发现好多年不用的汇编快忘光了,赶紧整理一下. 一.寄存器 在X86指令集中寄存器分为四类:通用寄存器.指令指针寄存器.段寄存器.标志寄存器. ...

  7. 汇编指令大全(带注释)转

    原文:汇编指令大全(带注释) X86和X87汇编指令大全(有注释) ---------- 一.数据传输指令 ---------------------------------------------- ...

  8. 操作系统开发--所有汇编指令集合

    想要开发操作系统,怎么能不知道汇编指令呢?于是翻看intel开发文档,把所有的汇编指令都做了一个整理,大家也可以收藏一下,以后肯定会用得着. 1 通用指令 1.1 数据传输指令 MOV--Move指令 ...

  9. 【Android 逆向】x86 汇编 ( 参考资料 | Intel 官方的文档 | x86 汇编中文文档 | 汇编指令查询器 )

    文章目录 一.x86 汇编参考文档 1.Intel 官方的文档 2.常用 x86 汇编文档 3.x86 汇编指令查询器 总结 一.x86 汇编参考文档 下面的所有资料 , 都可以在博客资源 https ...

最新文章

  1. 域名无法加入域解决方法
  2. java 强制垃圾回收_Java垃圾回收机制
  3. JavaScript 同源策略
  4. 第七阶段 jsp(369---el---jstl)
  5. 2.分布式文件系统HDFS之一
  6. wota dance
  7. C#8.0的两个有趣的新特性以及gRPC
  8. linux网络编程之Socket编程
  9. wpf 自定义窗口,最大化时覆盖任务栏解决方案
  10. 大学计算机第一学期期末考试试题,《大学计算机基础》期末考试试题(A卷)..doc...
  11. 那些年,我们信了课本里的那些鬼话
  12. 【BZOJ4972】小Q的方格纸 前缀和
  13. 免费的云数据库平台Planetscale
  14. OCR中文文字识别软件
  15. SmartWin++笔记
  16. 面试智力题:如何才能证明自己不怕老婆
  17. DAY5-URDF优化 简单小练习 工具
  18. 【Python】Python xlwt : More than 4094 XFs (styles) 解决方法
  19. 台大机器学习基石学习笔记
  20. 怎么查询ESI排名(ESI全称:Essential Science Indicators)

热门文章

  1. RSF 分布式服务框架-服务端工作原理
  2. 《中国航海》投稿经验
  3. Linux 网桥代码分析 六 网桥数据转发函数分析
  4. 如何在手机上拍摄专业证件照片
  5. 【142期】List 中 remove() 方法的“陷阱”,被坑惨了!
  6. 计算机房无管网消防中七氟丙烷的药剂用量
  7. DB2 PC服务器本地磁盘集群部署模式简介
  8. python四边形转矩形_如何用PIL将矩形图像映射成四边形?
  9. Mac jdk版本更新
  10. 送给80、90后的人生经典语录,别再孩子气了