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 |