DX 0B9H, CL 3, CF 1,執行操作SAR DX,CL後,DX

2021-05-05 19:22:47 字數 1292 閱讀 9879

1樓:匿名使用者

sar是迴圈右移指令,它的功能是將目的地址內的內容向右移動指定的位數,最低位移入cf中,最高位儲存不變

所以sar dx,cl => sar 0b9h,3現在我們將0b9h 轉換成 二進位制數,這樣方便右移的時候,看出變化0b9h = 0000 0000 1011 1001b而sar 0b9h,3是右移3位,所以0000 0000 1011 1001b最右邊的3位(001)

不要了,就變成了(這裡缺3個位)0 0000 0001 0111b然後我們,在缺少3個位的地方,新增3個位,而這3個位數有講究的哦,這裡我們要新增3個與符號位(最高位)相同的位,所以這3個位都是0所以就變成了0000 0000 0001 0111b而0000 0000 0001 0111b轉換成 十六進位制就是 0017h

終上所述: dx = 0017h

ps: 若有不明白的地方,可以追問

2樓:

算術右移sar把目的運算元的高位向低位移,空出的高位用最高位(符號位)填補。

sar 操作影響標誌暫存器的狀態位cf,sf,zf,pf。指令執行時,不受當前cf值影響,指令執行後影響cf的值。

過程分解:

sar dx,1 ; dx=0000 0000 0101 1100 (05ch) cf=1

sar dx,1 ; dx=0000 0000 0010 1110 (02eh) cf=0

sar dx,1 ; dx=0000 0000 0001 0111 (017h) cf=0

3樓:村夫兒

這尼瑪什麼東西啊 太深奧了吧

若al=98h,cl=3,則執行指令sar al,cl後,al= 10

4樓:v精準

mov al,200(c8) ;(al=c8h)

sar al,1 ;al算數右移一位(al=64h)

mov bl,al ;把al的值給bl(al=bl=64h)

mov cl,2 ;(cl=2)

sar al,cl ;al算數右移兩位(al=19h)

add al,bl ;al和bl求和結果放到al,bl不變(al=7dh,bl=64h)

所以最後(al=7dh,bl=64h;十進位制的話al=125,bl= 100)

補充一句算數右移一次相當於原數除以2,左移一位相當於乘以2

請問在紙箱中的abbbwba3b3a9b9是指的什麼

450g屬於高克重的紙箱,一般紙箱的紙分好幾個等級的,a1 a2 b1 b2 c 拿到紙箱最簡單摸外箱的光滑程度,及雜質。有的紙皮上有很多小黑點摸起來粗糙的就是差質量的紙,其抗壓,耐破度不行的,如果是美國進口的紙 美卡紙 其兩面顏色基本是 一致的,聞起來有木漿的氣味 每家紙板廠的代號都不一樣 有的用...

玩極品飛車9時,電腦說丟失D3DX

可以留下郵箱我傳送給你 為什麼玩極品飛車9時。會顯示缺少d3dx9 26.dll 在資料夾搜尋欄中查詢並找到d3dx9 26.dll檔案,直接複製到遊戲第一層資料夾中,然後開啟遊戲啟動快捷方式試試。樓主你好,你可以bai重新下du載一個d3dx9 26.dll檔案zhi檔案,然後按如下步 驟操作 d...

solidworks中0x69ba3a96指令用0x00000000記憶體,該記憶體不能為written

我知道是什麼原因了,我的是xp系統,裝好sw也是出現同樣的問題。我的解決辦法是 開始 控制面板 顯示 高階 疑難解答選項卡 硬體加速全關掉,然後確定 之後開啟sw就沒問題了 只是畫圖的時候反應比較慢,這時可以把硬體加速全部開啟,反應速度就快了。唯一的缺點就是每次開啟sw之前都必須得把硬體加速關閉才行...