iT邦幫忙

0

組合語言的 neg

neg eax 運算之後CY會設置為1
我自己的印象是neg是將eax取負數
上網查也是說將eax每個bit取相反再+1 (其實就是2補數)
但neg運算完CY會設置為1,是不是可以理解為neg eax就是以eax=0-eax方式來運作的呢?

https://stackoverflow.com/questions/44837231/how-does-the-neg-instruction-affect-the-flags-on-x86

這篇有提到
neg eax
if eax = 0
 cy=0
else
 cy = 1

且影響的旗標和 sub 0 - eax 相同
但不確定底層是如何運作

小弟英文不好,不知道有沒有理解錯誤
wrxue iT邦好手 1 級 ‧ 2019-05-13 09:14:04 檢舉
的確,我去確認了Intel的文件,它的定義是如此,雖然不知道它是如何運作的,暫且把它想成eax = 0-eax去做運算,應該也無不妥,感謝@fysh711426提供資料!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答