简答题

移位指令和循环移位指令在执行操作时,有什么差别?在编制乘除法程序中,为什么常用移位指令来代替乘除法指令?试编制一个程序段,实现CX中的数除以4,结果仍放在CX中。 

正确答案

逻辑移位指令用于无符号数的移位,左移时,最低位补0,右移时,最高位补0。
算术移位指令用于对带符号数的移位,左移时,最低位补0,右移时,最高位的符号在右移的同时,且保持。
小循环移位指令ROL、ROR是只对目标操作数进行循环,即不含CF的左、右移循环移位。
大循环移位指令RCL、RCR是把标志位CF也包含在循环中的左、右移循环移位。 
对于二进制数,左移一位相当于乘二,右移一位相当于除二,所以可以用移位指令来代替乘除法指令。
SAR  CX,1;CX算术右移一位,除二
SAR  CX,1;CX算术右移一位,除二

答案解析

相似试题
  • 非循环逻辑移位指令在执行时,实际上是把操作数看成()符号数来进行移位。

    单选题查看答案

  • 非循环算术移位指令在执行时,实际上是把操作数看成()符号数来进行移位。

    单选题查看答案

  • 循环移位指令不影响除()和()以外的其他条件标志。

    填空题查看答案

  • 带符号数乘以2操作用()移位指令实现。

    单选题查看答案

  • 所有移位指令都可以作()或()操作。

    填空题查看答案

  • 所有移位指令都可以作字或字节操作。

    判断题查看答案

  • 当()条件满足时,LOOPNE指令执行循环操作。

    填空题查看答案

  • 在移位类指令中,只有()指令不仅仅是在空缺位补零。

    单选题查看答案

  • 算术移位指令适用于()运算;而逻辑移位指令则用于()运算。

    填空题查看答案