Dar*_*bik 2 assembly bit-manipulation endianness
当您在 PDP 字节序中进行位移时,此操作是否比在小字节序或大字节序系统上花费的时间稍长一些?
我问这个问题的原因是因为对于计算机来说,似乎很难在一个班次中向各个方向传输位。
我无法以任何方式测试这一点,因为我无法访问 PDP 字节序机器。=(
PDP11 的中端格式源于在 16 位机器上模拟 32 位操作的需要。这是通过首先将高位字存储在存储器中,然后再存储低位字来完成的,即使 PDP11 使用小尾数法存储其数据。这会导致奇怪的字节顺序。不过,实际上并没有真正的性能差异。将存储在内存中的整数左移一位仍然需要三个指令来完成:
mov #var+2,r0 ; load the address of the low word
asl (r0) ; left shift low word
rol -(r0) ; left shift high word with carry
Run Code Online (Sandbox Code Playgroud)
如果var
以小端存储,代码将类似:
mov #var,r0 ; load address of the low word
asl (r0)+ ; left shift low word
rol (r0) ; left shift high word
Run Code Online (Sandbox Code Playgroud)