当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

shr


shr R

指令格式

shr R

影响标志

伪代码描述

1
R = R >> 1;

指令描述

寄存器R内容右移1位,结果存储到寄存器R中。

指令执行前:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0
     +----+----+----+----+----+----+----+----+
0--->| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |--->
     +----+----+----+----+----+----+----+----+
指令执行后:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0
     +----+----+----+----+----+----+----+----+
     |  0 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
     +----+----+----+----+----+----+----+----+

范例

1
2
3
4
//0xAA >> 1
mov A, #0xAA    //A = 0xAA
mov 0x81, A     //[0x81] = 0xAA
shr 0x81        //[0x81] = 0x55

shr A, R

指令格式

shr A, R

影响标志

伪代码描述

1
A = R >> 1;

指令描述

寄存器R内容右移1位,结果存储到累加器A中。

指令执行前:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0
     +----+----+----+----+----+----+----+----+
0--->| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |--->
     +----+----+----+----+----+----+----+----+
指令执行后:
      A.7  A.6  A.5  A.4  A.3  A.2  A.1  A.0
     +----+----+----+----+----+----+----+----+
     |  0 | b7 | b6 | b5 | b4 | b3 | b2 | b1 |
     +----+----+----+----+----+----+----+----+

范例

1
2
3
4
//0x56 >> 1
mov A, #0x56    //A = 0x56
mov 0x83, A     //[0x83] = 0x56
shr A, 0x83     //A = 0x2B