就是和硬件操作很密切!
能举例子更好,或着提供资料来源
多谢大侠热心~

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      t,x,y : integer;
    begin
      t := 10;  //  00001010
      x := 2;   //  00000010
      y := t and x;  // Get second.
      showmessage(inttostr(y));   // return y = 2 --> 00000010
      x := 4;   //  00000100
      y := t xor x;  //set third to 1
      showmessage(inttostr(y));   // return y = 14 --> 00001110;end;
      

  2.   

    嵌入式汇编好像不能定义段如es,cs...
    还是直接用位操作好
      

  3.   

    如果要求有很高的效率当然只有用汇编啦,如果不是要求很高的话用delphi自身的运算符也不错的。至少要安全和快捷了许多。
      

  4.   

    直接对10进制的数用and ,or,not 是吗?
    我要保证得到的数是16位或32位,这该怎么办?
      

  5.   

    Integer好像没有直接控制位操作的方法。
    如果一定要这样做, 最好用汇编(delphi+asm):function ASM_32bit_XOR (A : integer; b : integer) : integer;
    asm
      xor eax, edx
    end;function ASM_16bit_XOR (A : integer; b : integer) : integer;
    asm
      xor ax, dx
    end;function ASM_16bit_AND (A : integer; b : integer) : integer;
    asm
      AND ax, dx
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      showmessage(inttostr(ASM_32bit_XOR(10,4)));
      showmessage(inttostr(ASM_16bit_XOR(10,4)));
      showmessage(inttostr(ASM_16bit_AND(10,2)));
    end;end.