有人可以向我解釋以下匯編代碼的輸出值嗎?比如我怎樣才能找到解決方案?
Arr Byte 5D, 2E, 97, 4B, A5 , 7E , 84 , 9A , 61 , 8B
mov ecx, 5
mov esi, offset Arr
LI: rcr array[esi], 1
Addi esi,esi, 2
Loop LI
uj5u.com熱心網友回復:
讓我們替換Addi esi,esi, 2為lea esi, [esi 2]因為:
Addix86 中沒有- 意圖似乎是增加
esi2 add命令影響CF,并且rcr大概期望CF從前一次迭代
不知道是否有一些匯編程式可以接受Addi。
然后整個回圈在偶數索引元素中運行Arr(假設索引是從零開始的)
RCR 通過CF(進位標志)回圈位。即在每個元素的八位中,每個位都向較低的重要性移動,最低有效位被放入CF,最高有效位從 中提取CF。也可以看看:
- 旋轉指令(x86 上的 ROL、RCL)的目的是什么?
- RCR 和 ROR 有什么區別?
知道了這一點,您可以計算Arr元素的新值,除了第 0 個元素:您不知道 的初始值CF。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/396812.html
