汇编-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位立即数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!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--红外接收模块