位测试操作
點擊下載演示工程
BT指令
功能:用于對指定位進行位測試(將該位送往CF),但并不改變該位的值。
BTS指令
功能:用于對指定位進行位測試(將該位送往CF),并將該位置1。
BTC指令:
功能:用于對指定位進行位測試(將該位送往CF),并將該位取反。
BTR指令:
功能:用于對指定位進行位測試(將該位送往CF),并將該們清0。
JC指令:
功能:用于跳轉,如果CF標志位等于1則跳轉。
JNC指令:
???? 功能:用于跳轉,如果CF標志位等于0則跳轉。
關于二進制串的位:
00001001? 這是一個有8個位的二進制串,從最右邊數起第1個數字'1'稱為第0位,第2個數字稱為第1位,其它的依此類推。最高位是最左邊的數字,最低位是最右邊的數字。
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button4Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); labelNotZero; begin{如果二進制串(00001001b)的第3位(從右數起第1個二進制位叫做第0位,那么第3位即是'1')為1那么跳轉到NotZero,否則退出過程。}asmXOR EAX,EAX;MOV AL,00001001b;BT EAX,3;JC NotZero;end;Exit; NotZero:ShowMessage('程序名稱:位測試操作'+#13+'版本:1.0.0.0'+#13+'日期:2010-10-14'+#13+'作者:江湖一鍵客'+#13+'業務聯系QQ:82530662'); end;procedure TForm1.Button2Click(Sender: TObject); vari:Integer; labelNotZero; begin{如果二進制串(00001001b)的第3位為1那么跳轉到NotZero,(并且把第3位取反,即執行BTC指令后EAX=00000001),否則退出過程。}asmXOR EAX,EAX;MOV AL,00001001b;BTC EAX,3;MOV i,EAX;JC NotZero;end;Exit; NotZero:ShowMessage('位測試并取反后i的值為:'+IntToStr(i)); end;procedure TForm1.Button3Click(Sender: TObject); vari:Integer; labelNotZero; begin{如果二進制串(00001001b)的第3位為1那么跳轉到NotZero,(并且把第3位復位,即執行BTR指令后EAX=00000001),否則退出過程。}asmXOR EAX,EAX;MOV AL,00001001b;BTR EAX,3;MOV i,EAX;JC NotZero;end;Exit; NotZero:ShowMessage('位測試并復位后i的值為:'+IntToStr(i)); end;procedure TForm1.Button4Click(Sender: TObject); vari:Integer; labelIsZero; begin{如果二進制串(00000001b)的第3位為0那么跳轉到IsZero,(并且把第3位置位,即執行BTS指令后EAX=00001001),否則退出過程。}asmXOR EAX,EAX;MOV AL,00000001b;BTS EAX,3;MOV i,EAX;JNC IsZero;end;Exit; IsZero:ShowMessage('位測試并置位后i的值為:'+IntToStr(i)); end;end.轉載于:https://www.cnblogs.com/JiangHuakey/archive/2010/10/14/1851662.html
總結
- 上一篇: 利用序列化进行文件读写
- 下一篇: 深度剖析云计算背后采用的技术(转载)