procedure getBits(aByte:Byte; bitArr: array of Byte); asm mov ecx,0 @@1: shr al,1 jnc @@2 mov [edx],1 @@2: inc cx inc edx cmp ecx,8 jnz @@1 end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; aByte: Byte; bitArr: array [0..7] of Byte; begin aByte := $0F; ZeroMemory(@bitArr,SizeOf(bitArr)); getBits(aByte,bitArr); for i := 0 to 7 do if bitArr[i]>0 then ShowMessageFmt('%d bit = 1',[i]); end;
procedure getBits(aByte:Byte; bitArr: array of Byte);overload; asm mov ecx,0 @@1: shr al,1 jnc @@2 mov [edx],1 @@2: inc cx inc edx cmp ecx,8 jnz @@1 end; procedure getBits(aWord:Word; bitArr: array of Byte);overload; asm mov ecx,0 @@1: shr ax,1 jnc @@2 mov [edx],1 @@2: inc cx inc edx cmp ecx,16 jnz @@1 end;