汇编-SHLD/SHRD双精度左右移位指令

 

SHLD(双精度左移) 指令

将目的操作数向左移动指定的位数。移位形成的空位由源操作数的最高有效位填充。源操作数不受影响,但是符号标志、零标志、辅助进位标志、奇偶标志及进位标志会受影响:

 

 

复制代码
.386  
.model flat,stdcall 
option casemap:none
.stack 4096

Include Irvine32.inc
includelib Irvine32.lib

ExitProcess PROTO,dwExitCode:DWORD  
 
.data       

 
.code   
main PROC   
    
    mov cx,1011100000000100b
    mov bx,1011100000000100b
    shld bx,cx,2
    ;cx=B804=1011100000000100b  没有改变
    ;bx=E012=1110000000010010b
    ;移动次数是2,cx的高2位复制到bx的低2位
    

    
    quit:
    mov eax,[esi]
    INVOKE ExitProcess,0  
main ENDP   
END main
复制代码

 

 

 

 

SHRD(双精度右移) 指令

将目的操作数向右移动指定的位数。移动形成的空位由源操作数的最低有效位填充:

 

 

 

形式:

下面的指令格式可应用于SHLD和SH RD。目的操作数可以是寄存器或内存操作数, 源操作数必须是寄存器。移位次数操作数可以是CL寄存器或者8位立即操作数:

SHLD 16位寄存器,16位寄存器,cl寄存器或者8位立即数
SHLD 16位内存数,16位寄存器,cl寄存器或者8位立即数
SHLD 32位寄存器,32位寄存器,cl寄存器或者8位立即数
SHLD 32位内存数,32位寄存器,cl寄存器或者8位立即数

 

 

 

 

 

 

posted @   天子骄龙  阅读(348)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2021-12-21 qt5--android
2021-12-21 opencv-equalizeHist均衡化直方图-增强对比度
2021-12-21 opencv-getRotationMatrix2D旋转函数
2020-12-21 Arduino--红外接收模块
点击右上角即可分享
微信分享提示

目录导航