日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

位测试操作

發布時間:2025/3/21 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位测试操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊下載演示工程

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

總結

以上是生活随笔為你收集整理的位测试操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。