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

brev


brev R

指令格式

brev R

影响标志

伪代码描述

1
2
3
4
5
6
7
8
R = ((R >> 7) & 0x01)
  | ((R >> 5) & 0x02)
  | ((R >> 3) & 0x04)
  | ((R >> 1) & 0x08)
  | ((R << 7) & 0x80)
  | ((R << 5) & 0x40)
  | ((R << 3) & 0x20)
  | ((R << 1) & 0x10);

指令描述

将寄存器R内容进行位序反转,结果存储到寄存器R中。

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

范例

1
2
3
mov  A, #0x34   //A = 0x34
mov  R, A       //R = 0x34
brev R          //R = 0x2C

brev A, R

指令格式

brev A, R

影响标志

伪代码描述

1
2
3
4
5
6
7
8
A = ((R >> 7) & 0x01)
  | ((R >> 5) & 0x02)
  | ((R >> 3) & 0x04)
  | ((R >> 1) & 0x08)
  | ((R << 7) & 0x80)
  | ((R << 5) & 0x40)
  | ((R << 3) & 0x20)
  | ((R << 1) & 0x10);

指令描述

将寄存器R内容进行位序反转,结果存储到累加器A中。

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

范例

1
2
3
mov  A, #0xC5   //A = 0xC5
mov  R, A       //R = 0xC5
brev A, R       //A = 0xA3