Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
来源:互联网 发布:淘宝我的收藏在哪里 编辑:程序博客网 时间:2024/04/26 04:28
SHL、SHR、SAL、SAR: 移位指令
ROL、ROR、RCL、RCR: 循环移位指令
SHLD、SHRD: 双精度移位
;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, i8SHL r/m, CL
; Test24_1.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain 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 retmain endpend 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, i8SHL r/m, CL
; Test24_2.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain 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 retmain endpend 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, i8SHLD r16/32/m16/m32, r16/32, CL
; Test25_3.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain 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 retmain endpend main
(转载自:http://www.cnblogs.com/del/archive/2010/04/15/1712490.html)
- Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
- Win32ASM学习[13]:移位指令SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR,SHLD,SHRD
- 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
- 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR 汇编移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR
- ROL,ROR,SAR,SHR,SAL,SHL区别
- DAA 、DAS 、ROR 、ROL 、RCR 、RCL
- 关于循环位移指令ROL,RCL ;逻辑右移指令 SHR , 算术右移指令 SAR
- 双精度移位指令SHLD,SHRD
- 汇编指令--移位操作SHL、SHR、CAL、CAR
- Delphi Shl与Shr 移位操作介绍
- 8086逻辑移位指令SHL和SHR
- 汇编 shl和shr指令的使用
- 8086算术移位指令SAL和SAR
- 汇编指令---ROL和ROR指令
- shl,shr 移位处理字模提取的数据
- shl和shr
- shl 和 shr
- RCL与ROL的区别
- 数据库邮件使用
- 15亿数据重复性校验程序
- main(int argc, char **argv)中argc和argv的具体含义,以及操作系统如何处理
- sicily 1063. Who's the Boss
- extern C
- Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
- 2011年上海交通大学计算机研究生机试真题
- vs2008快捷键使用及诀窍
- Rendering objects in a solid/wire mix
- 64位平台以及对应用程序开发的影响
- 配合WIN8,Visual Studio 11(2012) Beta 版本发布,与以往软件改观很大!
- Graphics2D 使用详解 【转】
- 问题集锦(26-29)
- 重写Object类中的Equals方法(Java)