逆向 1 彙編 0x04 加減乘除

2021-10-01 17:10:44 字數 1144 閱讀 9206

0x00 加法運算

4+50000 0100 

0000 0101

---------    xor

0000 0001    (沒有進製的結果)

0000 0100    

0000 0101

---------    and

0000 0100    (不為0,有進製)

---------    << 1

0000 1000    (進製值)

0000 0001    (沒有進製的結果)

0000 1000    (進製值)

---------    xor    -> 判斷是否有進製

0000 1001    -> 沒有進製最終結果(有進製繼續重複and,左移,xor)

a+ba xor b -> c    出去進製的結果    

a and b -> d     進製的位;    d=0 c為最終結果;    d≠0,向下運算

shl d, 1        進製的值

c -> a, d -> b    

a+b                重複a+b過程

0x01 減法運算

4-5 = 4 + (-5) = 4 + 0xfb

0000 0100

1111 1011

---------    xor

1111 1111

0000 0100

1111 1011

---------    and

0000 0000

1111 1111 -> 最終結果 0xff = -1

減法就是加這個數的相反數

0x02 乘法

x * y本質是加法 -> x個y或y個x相加

有限次迴圈加法

0x03 除法

x / y本質是減法 -> x可以減去多少個y

無限次迴圈減法,直到結果小於被除數,也就得到了餘數

0x04 總結

計算機只認識0 和 1,只會做位運算,不會進行 + - * /等基本運算.

通過位運算衍生出加法運算,通過加法運算衍生出 減法/乘法/除法運算.

基於四則運算計算機可以完成一系列更複雜的運算.

資料寬度 -> 有/無符號數 -> 位運算 -> 四則運算

0X04儲存資料

coding utf 8 usr bin python 儲存資料 模組json 讓你能夠將簡單的python資料結構轉儲到檔案中,並在程式再次執行時載入該檔案中的資料。你還可以使用json 在python程式之間分享資料。更重要的是,json資料格式並非python專用的,這讓你能夠將以json格式...

C語言雜記 0x04

函式的返回值可以理解為 定義乙個和返回值型別相同的變數,並且用return後面的語句進行初始化 函式分返回值不是左值,或者說函式表示式不能作為左值,因此下面的表示式是違法的 is even 20 1 遞迴能解決的問題迴圈也能解決,只是解決的思路不一樣 對於遞迴來說,分配和釋放了好多位址空間,所有變數...

逆向 1 彙編 0x09 JCC

0x00 常用標誌位 狀態標誌 位 標誌 含義 通途 0 cf 進製標誌 無符號數最高位進製 借位 進製 借位 1 2 pf 奇偶標誌 常用於資料傳遞,奇偶校驗 最低位元組偶數個1 1 4 af 輔助進製 bcd算術運算中使用 算術操作結果第三位進製 借位 1 6 zf 0標誌 常與cmp test...