Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD

x86汇编_SHLD/SHRD双精度左右移指令_笔记49 SHLD(双精度左移)指令将目的操作数向左移动指定位数。移动形成的空位由源操作数的高位填充。SHRD(双精度右移)指令将目的操作数向右移动指定位数。移动形成的空位由源操作数的低位填充。源操作数不变,但是符号标志位、零标志位、辅助进位标志位、奇偶标志位和进位标志位会受影响。......... 阅读详情
SHL、SHR、SAL、SAR: 移位指令

;SHL(Shift Left):             逻辑左移
;SHR(Shift Right):            逻辑右移
;SAL(Shift Arithmetic Left):  算术左移
;SAR(Shift Arithmetic Right): 算术右移

;其中的 SHL 和 SAL 相同, 但 SHR 和 SAR 不同.

;SHL、SAL: 每位左移, 低位补 0,  高位进 CF
;SHR     : 每位右移, 低位进 CF, 高位补 0
;SAR     : 每位右移, 低位进 CF, 高位不变

;它们的结果影响 OF、SF、ZF、PF、CF
;它们的指令格式相同:
SHL r/m, i8
SHL r/m, CL

  
; Test24_1.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .code main proc ;SHL、AL   mov al, 11100111b   shl al, 1   PrintHex al ;CE - 11001110b   sal al, 2   PrintHex al ;38 - 00111000b     mov al, 11100111b   mov cl, 2   shl al, cl   PrintHex al ;9C - 10011100b   ;SHR   mov al, 11100111b   shr al, 2   PrintHex al ;39 - 00111001b   ;SAR   mov al, 11100111b   sar al, 2   PrintHex al ;F9 - 11111001b   ret main endp end main

ROL、ROR、RCL、RCR: 循环移位指令

;ROL(Rotate Left):                循环左移
;ROR(Rotate Right):               循环右移
;RCL(Rotate through Carry Left):  带进位循环左移
;RCR(Rotate through Carry Right): 带进位循环右移

;ROL: 循环左移, 高位到低位并送 CF
;ROR: 循环右移, 低位到高位并送 CF
;RCL: 循环左移, 进位值(原CF)到低位, 高位进 CF
;RCR: 循环右移, 进位值(原CF)到高位, 低位进 CF

;它们的结果影响 OF、CF
;它们的指令格式相同:
SHL r/m, i8
SHL r/m, CL

  
; Test24_2.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .code main proc ;ROL   mov al, 11000011b   rol al, 1   PrintHex al ;87 - 010000111b   ;ROR   mov al, 11000011b   ror al, 1   PrintHex al ;E1 - 11100001b   ;RCL   clc   mov al, 10101111b   rcl al, 1   PrintHex al ;5E - 01011110b     stc   mov al, 10101111b   rcl al, 1   PrintHex al ;5F - 01011111b     clc   mov al, 10101111b   rcl al, 2   PrintHex al ;BD - 10111101b   ;RCR   clc   mov al, 11101011b   rcr al, 2   PrintHex al ;BA - 10111010b   ret main endp end main

SHLD、SHRD: 双精度移位

;SHLD(Double-Precision Shift Left):  双精度左移
;SHRD(Double-Precision Shift Right): 双精度右移

;SHLD 和 SHRD 有三个操作数
;操作数三: 是移位数目
;操作数一: 是目的操作数
;SHLD 左边被移出的位由操作数二相同数目的高位填充
;SHRD 右边被移出的位由操作数二相同数目的低位填充
;操作数二不变, 且须是寄存器

;它们的结果影响 OF、SF、ZF、PF、CF
;它们的指令格式相同:
SHLD r16/32/m16/m32, r16/32, i8
SHLD r16/32/m16/m32, r16/32, CL

  
; Test25_3.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .code main proc ;SHLD   mov ax, 1100110011110000b   mov dx, 1111111100000000b   shld ax, dx, 2   PrintHex ax ;33C3 - 0011001111000011b   ;SHRD   mov ax, 0000111100110011b   mov dx, 0000000011111111b   shrd ax, dx, 2   PrintHex ax ;C3CC - 1100001111001100b   ret main endp end main


(转载自:http://www.cnblogs.com/del/archive/2010/04/15/1712490.html

3线SWD接线终极指南:用Jlink调试非3.3V设备的5个关键细节 本文详细解析了使用Jlink调试非3.3V设备时,3线SWD接线的5个关键细节。核心在于正确理解并连接Vref引脚以实现电压适配,避免供电冲突,并掌握精简接线法与固件修复技巧。文章以STM32F205等芯片为例,指导开发者安全、高效地进行混合电压调试。 阅读详情

相关推荐

汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL

汇编移位指令汇编循环移位指令汇编shl指令用法汇编sal指令汇编移位运算

学习笔记 1万+

Win32 汇编[24] - 移位: SHLSHRSALSARROLRORRCLRCRSHLDSHRD

SHLSHRSALSAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR(Shift Arithmetic Right): 算术右移 ;其中的 SHLSAL 相同, 但 SHR ...

weixin_33896726的博客 539

第14.7章 高翔博士最新开源框架Lightning-LM源码解读(七):PoseExtrapolator模块深度剖析,揭秘激光SLAM高频位姿外推核心技术

PoseExtrapolator是Lightning-LM框架中负责高频位姿外推的核心模块,通过融合DR(航位推算)、激光里程计和PGO(位姿图优化)数据实现精准实时定位。模块初始化依赖PGO数据,后续通过DR数据进行高频位姿更新,并利用PGO结果进行误差补偿。关键函数AddDRLocAndExtrapolate处理DR增量位姿,结合速度补偿机制逐步修正误差,保证高频输出的同时提升精度。该模块体现了多传感器融合思想,通过互补性数据(高频DR与低频高精PGO)实现鲁棒定位,代码中使用了SE3位姿表示、互斥锁保

行知SLAM 320

双精度移位指令SHLD,SHRD

转:http://www.feiesoft.com/asm/05-2-053.html 双精度移位指令 此组指令有:双精度左移SHLD(Shift Left Double)和双精度右移SHRD(Shift Right Double)。它们都是具有三个操作数的指令,其指令的格式如下: SHLD/SHRD  Reg/Mem, Reg, CL/Imm ;80386+ 其中:第一操

zhangmiaoping23的专栏 5722

Win32ASM学习[13]:移位指令SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR,SHLD,SHRD

一. SHLSHRSALSAR: 移位指令 ---------------------------------------------------------------------------------------------------- ;SHL(Shift Left):      逻辑左移 ;SHR(Shift Right):      逻辑右移 ;SAL(Shift

bingghost 6561

算术移位操作和逻辑移位操作的区别和联系(转)

移位操作有很多种,一般知道算术移位操作(2个),逻辑移位(2个)这四个,一般的程序就够用了。 移位操作都会引起被移位方向的一些数据丢失,所以需控制好。逻辑移位是连标志位(正负号)一起操作的,所以可能会改变正负号。而算术移位是固定好标志位,移动其他的位,不会改变正负号,但前面被移动的位是补0还是补1,如果标志位是1,则都补1,是0,则都补0。 1.逻辑移位(不管是左移位还是右移位)...

对酒当歌,人生几何 1535

Win32汇编:算术与伪指令

每种汇编语言都有进行操作数移位的指令,移位和循环移位指令在控制硬件设备,加密数据,以及实现高速图形运算时特别有用,移位指令也是汇编语言中最具特征的指令集,移位(Shifting)的含义是在操作数内向左或向右移动数据位,Intel处理器提供了多种移位指令,具体如下表所示。

微软技术分享 1万+

Win32汇编算数指令(2)

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言.在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址.在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令,普遍地说,特定的汇编语言和特定的机器语言指令集是相互...

weixin_30695195的博客 258

汇编学习笔记

一个拼图工具的制作思路 - 回复 "AlwaysBug" 的问题 将 4 个 Byte 合成 1 个 Integer 的五种方法 - 回复 "三足乌" 的问题 学 Win32 汇编[31] - 结构与联合 关于 "高位" 与 "低位" - 回复 "Lovemit" 的问题 学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等 如何把类中的方法做参...

CSDN1332531529的博客 171

汇编

指令 mov 两个操作数必须是同样的大小。 两个操作数不能同时为内存操作数。 指令指针寄存器(IP、EIP 或 RIP)不能作为目标操作数。 64位模式 可以将8位 16位 32位常数送入 高位清零 32位寄存器送入会使高危清零 movzx 全零扩展 无符号整数 movsx 全符号扩展 有符号整数 不能为常数 lahf 将标志寄存器低八位加载到ah sahf 将ah保存到标志寄存器 xchg 交换操作数 不能同时为内存操作数 不能为立即操作数,不影响标志位 inc dec 加一 减一 不会影响进位标志位 .

datouyu0824的博客 1450

24、整数算术运算:移位、旋转、乘除指令详解

本文详细解析了汇编语言中的整数算术运算指令,涵盖SHLDSHRD双精度移位、各类移位与旋转指令的使用方法及应用场景。深入讲解了MUL、IMUL、DIV、IDIV等乘除法指令的操作规则与标志位变化,并结合多双字移位、二进制乘法、位串隔离、数据加密等实际应用案例进行说明。同时介绍了CBW、CWD、CDQ等符号扩展指令在有符号除法中的关键作用,提供了性能优化策略与常见错误处理方法,帮助读者全面掌握底层算术运算机制,提升汇编编程能力。

q6r7s8t9的博客 107

移位指令

移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位; 移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数; 一、算数移位指令: 算数移位指令分为:算数左移SAL(Shift Algebraic Left)和算数右移SAR(...

CHAOS_ORDER的博客 5603

x86移位SHLSHRSALROLRCR等指令

SHL指令使dest左移count位,低位用0补充,高位的值移位到CF位(覆盖原CF位)SHL指令的可用操作类型如下代码示例如下 关于OF位的实验数据 SHR指令 SHR指令使dest右移count位,高位用0补充,低位的值移位到CF位(覆盖原CF位)SHR指令的操作类型和SHL一致代码示例如下 关于OF位的实验数据 SAL指令(算术左移)的操作和SHL一致 SAR指令(算术右移) SAR指令使dest右移count位,高位用dest的最高位补充,低位的值移位到CF位(覆盖原CF

13岁的少年相当白帽子的博客 1万+

汇编学习(7)——指令汇总

文章目录指令汇总简单传送指令mov 传送xchg 交换加减指令add 简单加法sub 简单减法adc 带进位加法sbb 带进位减法inc 自增dec 自减neg 取反乘除指令mul 无符号乘法imul 有符号乘法div 无符号除法idiv 有符号除法符号扩展指令cbw 字节扩展为字cwd 字扩展为双字cdq 双字扩展为四字cwde 另一条字转换为双字指令扩展传送指令movsx 符号扩展传送movz...

lyh_lcz的博客 2368

汇编指令--移位操作SHLSHRSALSAR以及它们的区别

逻辑移位: SHLSHR 算术移位: CAL、CAR 12 无符号数的乘法和除法可以用逻辑移位; 有符号数的乘法和除法可以用算...

deniece1的博客 4万+

(全新整理)新增CRRS调查数据,农村新质生产力等三农研究数据合集

1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/1403373912、代码特点:今年全新,手工精心整理,放心引用,数据来自权威,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题3、适用对象:大学生,本科生,研究生小白可用,容易上手!!!数据指标说明一、2000-2021年各省农业碳排放测算数据(计算过程+结果) 区域范围:全国31个省份二、1981-2021年《中国农业年鉴》合集三、2000-2021年县域农产品产量面板数据四、2000-2022年中国各地级市乡村振兴测算数据五、卡特中心统计数据六、2020年全国农村行政区划名称、代码、经纬度等sph矢量数据七、中国农村统计年鉴(1985-2023)八、2000-2022年中国住户调查年鉴九、2022年中国农产品价格调查年鉴(Excel & PDF 两个版本)十、中国农村统计年鉴面板数据(2008-2022年)十一、2010-2022 年各省新质生产力水平与乡村振兴综合指数

上一篇: OllyDbg小知识【2】- 躲过程序的初始化Anti-Debug
下一篇: 碎碎念【1】- 新的不一定好——OllyDbg2.01和1.1
BetaBin
博客等级 码龄15年 155粉丝 121原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值