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 |
+----+----+----+----+----+----+----+----+
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 |