rorc¶
rorc R¶
指令格式¶
rorc R
影响标志¶
C Z
伪代码描述¶
1 2 3 4  | TEMP = R; R = ((R >> 1) & 0xff) | (C << 7); C = TEMP & 1; Z = A == 0 ? 1 : 0;  | 
指令描述¶
寄存器R内容带C标志循环右移1位,结果存储到寄存器R中。
指令执行前:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0         C
     +----+----+----+----+----+----+----+----+    +----+
+--->| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |--->|  c |---+
|    +----+----+----+----+----+----+----+----+    +----+   |
|                                                          |
+----------------------------------------------------------+
指令执行后:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0         C
     +----+----+----+----+----+----+----+----+    +----+
     |  c | b7 | b6 | b5 | b4 | b3 | b2 | b1 |    | b0 |
     +----+----+----+----+----+----+----+----+    +----+
范例¶
1 2 3 4 5  | //0x3C >> 1 //C = 0, AC = 0, Z = 0, OV = 0 mov A, #0x3C //A = 0x3C mov 0xDD, A //[0xDD] = 0x3C rorc 0xDD //[0xDD] = 0x1E, C = 0, AC = 0, Z = 0, OV = 0  | 
rorc A, R¶
指令格式¶
rorc A, R
影响标志¶
C Z
伪代码描述¶
1 2 3  | A = ((R >> 1) & 0xff) | (C << 7); C = R & 1; Z = A == 0 ? 1 : 0;  | 
指令描述¶
寄存器R内容带C标志循环右移1位,结果存储到累加器A中。
指令执行前:
      R.7  R.6  R.5  R.4  R.3  R.2  R.1  R.0         C
     +----+----+----+----+----+----+----+----+    +----+
+--->| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |--->|  c |---+
|    +----+----+----+----+----+----+----+----+    +----+   |
|                                                          |
+----------------------------------------------------------+
指令执行后:
      A.7  A.6  A.5  A.4  A.3  A.2  A.1  A.0         C
     +----+----+----+----+----+----+----+----+    +----+
     |  c | b7 | b6 | b5 | b4 | b3 | b2 | b1 |    | b0 |
     +----+----+----+----+----+----+----+----+    +----+
范例¶
1 2 3 4 5  | //0x2B >> 1 //C = 0, AC = 0, Z = 0, OV = 0 mov A, #0x2B //A = 0x2B mov 0xD6, A //[0xD6] = 0x2B rorc A, 0xD6 //A = 0x15, C = 1, AC = 0, Z = 0, OV = 0  |