-1
Solved.Thanks的幫助,在網上看到一個很好的例子......但在谷歌搜索引擎~~後面幾頁程序集指令和C++相當於?
我被谷歌搜索,但我似乎無法閱讀組裝一些在線教程找出它們在顯示AND指令時的含義。
有人可以向我解釋它的用法嗎? 什麼是它的等價的C++操作符?
另外我不明白什麼是運算符「!」在C++中用於。
在此先感謝。
Solved.Thanks的幫助,在網上看到一個很好的例子......但在谷歌搜索引擎~~後面幾頁程序集指令和C++相當於?
我被谷歌搜索,但我似乎無法閱讀組裝一些在線教程找出它們在顯示AND指令時的含義。
有人可以向我解釋它的用法嗎? 什麼是它的等價的C++操作符?
另外我不明白什麼是運算符「!」在C++中用於。
在此先感謝。
按位和,意味着您將一個操作數的每個位與另一個操作數的相應位進行比較,如果結果都爲1,則將結果設置爲1,否則將結果設置爲1。因此,考慮這兩個字節AND關係結合在一起:
00000011
& 00000101
----------
00000001
只有最低級位在結果集中,因爲只有該位位置是操作數都爲1
在英特爾x86彙編語言你使用 「與」 運算符來實現這一點:
mov eax, [op1] ; eax is a register
and eax, [op2] ; now eax is the bitwise 'and' of the two.
mov [result], eax
在C++
unsigned result = op1 & op2;
邏輯和工作方式不同。我們不使用每一位,而是使用一個約定,如果值爲零,則值爲「假」,如果不是,則爲「真」。這是高級語言的慣例,它不是彙編語言的概念。所以在x86中我們有:
mov eax, [op1]
test eax, eax ; Test if eax is zero by anding it with itself.
jz isfalse ; just to isfalse if the first operand is false
mov eax, [op2]
test eax, eax
jnz istrue
isfalse:
mov [result], 0
jmp done
istrue:
mov [result], 1
done:
...
這裏這段代碼使用約定,0是假的,1是真的。
的C++當量是:
boolean result = op1 && op2;
邏輯或按位? – Borgleader
事情是我不明白的技術術語,因爲我發現他們比我想要了解的例子更困惑 – Imaginarys
如果它比我的答案更清晰,請張貼它。 –