十進制數值: 4 8 1 16 32 64
對應為2的n次方數 2 3 0 4 5 6 (次方數)
下面用Delphi Pascal內聯彙編演示計算該值
代碼: 選擇全部
var ByteNum:Byte;
begin
asm
mov al, 1111101B // 狀態為全開
//xor al, al // 把0轉1 1轉0 也叫作取反 作用:開變關關變開
xor al, 8 // 把交易的狀態:由開變關或由關變開
mov ByteNum, al
end;
ShowMessage(IntToStr(ByteNum)); // 打印出值看看對不對:)
// (4+8+1+16+32+64)-8 =117
end;
代碼: 選擇全部
function InterativeSwitch(ByteNum: Byte):Byte; // 自訂 取反函數
asm
mov al, ByteNum
xor al, 1111101B
mov @RESULT, al
end;
function ISwitch1(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 4
mov @RESULT, al
end;
function ISwitch2(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 8
mov @RESULT, al
end;
function ISwitch3(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 1
mov @RESULT, al
end;
function ISwitch4(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 16
mov @RESULT, al
end;
function ISwitch5(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 32
mov @RESULT, al
end;
function ISwitch6(ByteNum: Byte):Byte;
asm
mov al, ByteNum
xor al, 64
mov @RESULT, al
end;