@toc**
c語言**:
彙編**:if
(a==b)
對於迴圈語句,其實也是一樣的,也是通過跳轉指令來實現。mov eax, a
cmp eax, b ;a == b?
jne l1 ;否:跳過後續指令
mov x, 1 ;是,x,y 賦值
mov y, 2
l1:
c語言**:
彙編**while
(val1 < val2)
其中jne代表不等於時執行mov eax, val1 ;把變數複製到eax中
beginwhile:
cmp eax, val2 ;如果非val1 < val2
jnl endwhile ;退出迴圈
inc eax ;val1++
dec val2 ;val2--
jmp beginwhile ;重複迴圈
endwhile:
mov val1,eax ;儲存val1的值
jnl代表大於等於時執行
inc代表自加
dec代表自減
邏輯判斷的實現也是通過跳轉指令來實現的,具體如下。
c語言**:
彙編**if
(a1 > b1)
and(b1 > c1)
x =1end if
其中ja代表大於執行cmp a1, b1 ;第乙個表示式
ja l1
jmp next
l1: cmp b1, c1 ;第二個表示式
ja l2
jmp next
l2: mov x, 1 ;全為真:將x置為1
next:
jmp代表轉移至
jmp與call指令的對比:
jmp無條件跳轉,無返回,沒有壓棧(起到保護資料的作用)。call通過入口位址跳轉有返回,返回位址壓入堆疊。
下面位址為組合語言指令速查表
ida反彙編工具
ida pro 是乙個世界頂級的互動式反彙編工具,它的使用者囊括了軟體安全專家,軍事工業,資訊部門,逆向工程學者,黑客。從功能上它大大勝過了w32dasm。近來它的盜版已經在網上傳播開了,你可以很輕鬆得到它。ida pro 簡稱ida 英文 interactive disassembler的縮寫。它...
C 反彙編學習筆記(一)
chinese c 整數與浮點數的儲存方式 1 整數型別 無符號整數的所有位都用來表示數值,有符號整數的最高位是符號位,其餘位以補碼格式儲存。補碼規則就是用0減去這個數的絕對值 取反加一 首先我們知道x x 反碼 0xffffffff,因此x x 反碼 1 0,因此x 補碼 0 x x 反碼 1。補...
反彙編學習日記2010 11 14
昨天的第乙個例子是 windows api 這本書裡的,天書夜談 第一章講的是彙編指令與c語言。這是一本好書!乙個最簡單的c程式反彙編後會是什麼樣子呢?debug和release的區別是編譯出來的彙編 是不一樣的。一些彙編小知識 call的本質是push jmp,ret本質是pop jmp xor ...