匯編 影響標志位的運算


 今天翹了毛概課,在宿舍里蓋着小毛毯做匯編作業,遇到一個題目是給出一組指令,問每一步指令完成后,標志位是什么

什么運算會改變標志位呢?在網上查了查

(1)加法指令:ADD、ADC、INC、XADD除了INC不影響CF標志位外,都影響條件標志位。

CF、ZF、SF、OF

CF最高位是否有進位

DF若兩個操作數符號相同而結果符號與之相反OF=1,否則OF=0.

(2)減法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B

前六種除了DEC不影響CF標志外都影響標志位。CMPXHG8B只影響ZF。

CF說明無符號數相減的溢出,同時又確實是被減數最高有效位向高位的借位。

OF位則說明帶符號數的溢出

無符號運算時,若減數>被減數,有借位CF=1,否則CF=0.

OF若兩個數符號相反,而結果的符號與減數相同則OF=1.否則OF=0.

(3)乘法指令:MUL、IMUL

MUL:如果乘積高一半為0,則CF和OF位均為0,否則CF和OF均為1.

IMUL:如果高一半是低一半符號的擴展,則CF位和OF位均為0,否則就均為1.

(4)除法指令:DIV、IDIV
對所有條件位均無定義。

(5)邏輯指令:AND、OR、NOT、XOR、TEST

NOT不允許使用立即數,其它4條指令除非源操作數是立即數,至少要有一個操作數必須存放在寄存器中。另一個操作數則可以使用任意尋址方式。

NOT不影響標志位,其余4種CF、OF、置0,AF無定義,SF、ZF、PF位看情況而定

定位掃描指令:BSF正向位掃描、BSR反向位掃描

源操作數可以是除立即數以外的任一種尋址方式,目的操作數必須是寄存器,影響ZF位。
 天氣越來越冷了,穿的暖暖的會更開心哦~冬天快樂~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM