首页 > 编程语言 >举例说明常用控制类汇编指令

举例说明常用控制类汇编指令

时间:2022-11-13 19:46:31浏览次数:67  
标签:汇编 cnt 寻址 dst CF 指令 移动 举例说明

1、逻辑左移SHL (shift logical left)

  指令的汇编格式:SHL dst,cnt

  指令的基本功能:SHL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置

2、逻辑右移SHR (shift logical right)

  指令的汇编格式:SHR dst,cnt

  指令的基本功能:SHR指令向右逐位移动cnt次,每次逐位移动后,最高位用0来补充,最低位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

3、算术左移SAL (shift arithmeTIc left)

  指令的汇编格式:SAL dst cnt

  指令的基本功能:SAL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

4、算术右移SAR (shift arithmetic right)

  指令的汇编格式:SAR dst,cnt

  指令的基本功能:SAR指令向右逐位移动cnt次,每次逐位移动后,最高位用符号位来补充,最低位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

5、循环左移ROL (rotate left)

  指令的汇编格式:ROL dst,cnt

  指令的基本功能:ROL 对由dst指定的寄存器或存储器操作数左移循环移动cnt所指定的次数,每左移一次,把最高位同时移入CF和操作数最低位。指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

6、循环右移ROR (rotate right)

  指令的汇编格式:ROR dst,cnt

  指令的基本功能:ROR 对由dst指定的寄存器或存储器操作数右移循环移动cnt所指定的次数,每右移一次,把最低位同时移入CF和操作数最高位。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt》1时,cnt必须放入CL寄存器中。

 

标签:汇编,cnt,寻址,dst,CF,指令,移动,举例说明
From: https://www.cnblogs.com/wangking666/p/16886715.html

相关文章

  • 举例说明常用的传输类汇编指令的使用
    一、通用数据传送指令1、传送指令MOV(move)指令的汇编格式:MOVDST,SRC指令的基本功能:(DST)《-(SRC)将原操作数(字节或字)传送到目的地址。指令支持的寻址方式:目的......
  • 汇编语言(Assembly Language)指令表
    汇编指令英文全称1.通用数据传送指令MOV---->moveMOVdest,src;dest←srcMOV指令把一个字节或字的操作数从源地址src传送至目的地址dest。MOVSX---->extendedm......
  • 怎么封装一个vue的自定义指令
    自定义指令分为全局和局部的指令;1.自定义全局指令:在mian.js中,使用Vue.directive(‘指令名’, 配置对象)2.局部自定义指令在组件中使用directives......
  • risc-vCPU实现 1 指令与译码模块
    riscvCPU实现1译码模块在本模块中,将指令进行译码,输出opcode,func3,func7,Rs1,Rs2,Rd以及符号扩展后的32位imme//输入输出信号input[31:0]instr,output[6......
  • C++预定义指令
    C++预定义指令1.预定义器以#开头的命令,称之为预定义器指令。预定义器指令不在编译器中执行,而是在预定义器中运行。常见的预定义器指令为//文件包含指令#include//宏......
  • bochs调试方法与指令详解
    参考:https://blog.csdn.net/liu0808/article/details/53099099#t0bochs调试FAQ:一基本调试命令1.       Q:如何从引导扇区开始设置断点?A:BIOS被载入内存中......
  • C温故补缺(六):C反汇编常用的AT&Tx86语法
    C语言反汇编用到的AT&Tx86汇编语法参考:CSDN1,CSDN2默认gcc-S汇编出的,以及反汇编出的,都是AT&Tx86代码,可以用-masm=intel指定为intelx86汇编格式gcc-Stest.c-m......
  • [C++]对照代码学习反汇编
    程序代码:1#include<iostream>23intmain()4{5inti,j,k;6intresult=0;7for(i=1;i<=4;i++)8for(j=1;j<=4;......
  • 6 字节码指令简介
    目录1学习总结2关于字节码指令2.1指令组成2.1基本执行模型3字节码指令与数据类型3.1指令编码与数据类型相关性3.2指令不支持的数据类型转换4指令的分类说明4.1加......
  • ARM指令集学习
    What'sthedifferencebetweenMOV,MOVZ,MOVNandMOVKinARMv8assembly?......