我需要2位,位数为偏移量6。
mov eax, [bitarray]; // get address of bit array
shr eax, 6; // clear first 6 bits
shl eax, 30 // clear last 30 bits
shr eax, 30; // move that 2 bits back to start
现在在eax中我需要这两位,对吧?
当我的存储器从0开始(一个单元是一位)时,位置0的位是在最右边的位置或最左边的位置加载到寄存器eax之后?
答案 0 :(得分:3)
而不是最后的两个班次,你可以使用按位AND
:
AND EAX,3 ; Keep the original value of the two least significant bits; all
; other bits in EAX are cleared.
最左边的位是最重要的位,最右边的位是最不重要的位。
答案 1 :(得分:0)
mov eax,[bitarray]
位掩码?
mov eax,[bitarray]
mov ebx,C0 ;11000000 binary
and ax,bx