亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我們什么時候以及為什么要簽署extend,并在mul / div中使用cdq?

我們什么時候以及為什么要簽署extend,并在mul / div中使用cdq?

Cats萌萌 2020-02-02 15:48:00
我今天進行了測試,我唯一不了解的問題是將雙字轉換為四字。這讓我開始思考,為什么/何時為擴展或除法簽名?另外,什么時候使用cdq等說明?
查看完整描述

3 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我總是在匯編中混為一談,因為我對寄存器感到困惑。我認為股息總是放在eax / ax中,而一個操作數的指令只是div / idiv ebx(或其他寄存器)。這將有效地執行eax / ebx,商在eax中,余數在edx中。我的考試顯示,在調用包含71的EAX上的idiv和包含-4的另一個寄存器之前,我們使用了cdq。為什么是這樣?我們使用了每個寄存器的全部,我不明白為什么我們需要其中一個成為四字。 

查看完整回答
反對 回復 2020-02-02
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

請閱讀答案的第一行和/或英特爾的insn參考手冊。 idiv ebxeax = (edx:eax)/ebxeax = (edx:eax)%ebxedx始終是股息的高半部分,而顯式操作數始終是除數。沒有div/ 形式idiv會忽略edx2和3操作數形式imul僅產生單寄存器結果的方式。

查看完整回答
反對 回復 2020-02-02
  • 3 回答
  • 0 關注
  • 588 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號