關於彙編ROR的運算

2021-05-28 06:34:38 字數 808 閱讀 8215

設(ax)=5,(bx)=3 ,(cx)=2,執行下列程式段後,(ax)=

lop: ror bx,cl

adc ax,bx

loop lop

請問ror是怎麼移位的?謝謝

ror是迴圈右移指令,把目的運算元整體右移由源運算元指定的位數,被移出的位依次回填到左邊空出的位,同時移進標誌位。 

如本題,(bx)=3 ,(cx)=2

3轉換成二進位制數為:00000011b,迴圈右移一位之後變成:10000001b;再迴圈右移一位之後變成:11000000b,第一次執行迴圈體後(bx)=0c000h,這裡一定要注意,第二次迴圈右移時,進製標誌位置位。

程式段

lop: ror bx,cl

adc ax,bx

loop lop

執行後,(ax)=2006h

最佳答案

ror是迴圈右移指令,把目的運算元整體右移由源運算元指定的位數,被移出的位依次回填到左邊空出的位,同時移進標誌位。 

如本題,(bx)=3 ,(cx)=2

3轉換成二進位制數為:00000011b,迴圈右移一位之後變成:10000001b;再迴圈右移一位之後變成:11000000b,第一次執行迴圈體後(bx)=0c000h,這裡一定要注意,第二次迴圈右移時,進製標誌位置位。

程式段

lop: ror bx,cl

adc ax,bx

loop lop

執行後,(ax)=2006h

關於RoR的效能研究 二

參考 netty權威指南 李版 1.1.2 其實我並不關心puma是怎麼安排程序 執行緒的,上文只是驗證了ror框架是支援多程序 多執行緒部署的。現在我們著重研究下passenger nginx部署ror的網路io模型和程序 執行緒安排形況。為了更好地理解,我們通過passenger apache的...

關於內嵌彙編

最近才發現原來noi不給用內嵌彙編 那麼這篇文章除了平常做做oj以外就沒什麼意義了 參考自 嗯 搞oi久了應該都會碰到這麼一種問題 爆棧 當然,手寫棧是最普遍的一種解決方法 比如noi2011 day2 t1,ms是臨時換的一道水題,只要會手寫棧就可以水過 pascal黨是很舒服的,因為可以在 中手...

關於內嵌彙編

參考自 嗯 搞oi久了應該都會碰到這麼一種問題 爆棧 當然,手寫棧是最普遍的一種解決方法 比如noi2011 day2 t1,ms是臨時換的一道水題,只要會手寫棧就可以水過 pascal黨是很舒服的,因為可以在 中手動把棧開大 但是c c 黨不行 因為ms棧的大小是在鏈結時決定的 如果是自己測的話,...