两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

  • 歡迎訪問(wèn)C語(yǔ)言網(wǎng)www.sztianhecheng.cn 比賽欄每月有獎(jiǎng)月賽!舉辦比賽聯(lián)系QQ:2045302297
  • 問(wèn)題反饋、粉絲交流 QQ群327452739 藍(lán)橋杯訓(xùn)練群:113766799 申請(qǐng)群時(shí)請(qǐng)備注排名里的昵稱
  • C語(yǔ)言研究中心 為您提供有圖、有料、解渴的C語(yǔ)言專題! 歡迎討論!

C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別

C語(yǔ)言研究中心 CTO 17347次瀏覽 0個(gè)評(píng)論

今天我們來(lái)逆向分析C語(yǔ)言中++和—運(yùn)算符前綴和后綴的區(qū)別,提到這里,相信有不少同學(xué)也早有過(guò)疑問(wèn),如前綴++表示”先加再用”,后綴++表示”先用再加”,今天經(jīng)過(guò)我們的逆向分析,相信大家就會(huì)更加理解這其中的意義!

 

 

我們這里以++為例,分別進(jìn)行逆向分析實(shí)驗(yàn),觀察匯編代碼,先看一個(gè)簡(jiǎn)單的程序:

 

C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別

 

 

在++語(yǔ)句之前,我們下斷點(diǎn),然后點(diǎn)擊view-Debug Windows-Disassembly 打開(kāi)反匯編窗口,可以看到a = i++;這句話對(duì)應(yīng)的匯編語(yǔ)句,如下:

 

C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別

 

 

重點(diǎn)就是這五條匯編語(yǔ)句,請(qǐng)大家對(duì)照;后面的注釋逐條分析!

 

;先把變量i保存到eax中

0040D71F????? mov????? ?eax,dword ptr [ebp-8]

;后把eax也就是i的值放到a里

0040D722 ?????mov???? ??dword ptr [ebp-4],eax

;把i的值取出來(lái),放到ecx里

0040D725 ?????mov???? ??ecx,dword ptr [ebp-8]

;ecx進(jìn)行+1,也就是++這個(gè)動(dòng)作!

0040D728?? ???add?? ????ecx,1

;把ecx放回去,放到i里。完成!

0040D72B????? mov ??????dword ptr [ebp-8],ecx

怎么樣,大家看明白了嗎?

 

 

下面,我們把代碼改一下,將后綴++改為前綴++,再進(jìn)行分析,代碼如下:

C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別

 

 

還是在下斷點(diǎn),看反匯編語(yǔ)句,打開(kāi)如下:

 

C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別

 

 

看一下,還是五條,我們復(fù)制出來(lái),逐行分析:

;將i的值保存到eax里

0040D71F??? ??mov? ?????eax,dword ptr [ebp-8]

;把eax里的值加1

0040D722??? ??add??? ???eax,1

;把eax的值放回i里

0040D725??? ??mov??? ???dword ptr [ebp-8],eax

;把i里的值放到ecx里

0040D728??? ??mov??? ???ecx,dword ptr [ebp-8]

;把ecx里的值放到a里,完成!

0040D72B??? ??mov???? ??dword ptr [ebp-4],ecx

 

怎么樣,大家看懂了嗎?我們可以看出這里VC6其實(shí)把++和賦值(也就是”用”);分開(kāi)處理,前綴就先加,后綴就先賦值。–與++類似,對(duì)應(yīng)的匯編語(yǔ)句會(huì)由add變?yōu)閟ub,大家可以自行實(shí)驗(yàn)對(duì)比。

通過(guò)這個(gè)實(shí)驗(yàn)分析,想必一定會(huì)加深我們對(duì)前綴和后綴的區(qū)別。

建議大家親自上機(jī)實(shí)驗(yàn),可以適當(dāng)改變C語(yǔ)言程序,觀察對(duì)應(yīng)匯編語(yǔ)句的變化。

 

以上

 

有發(fā)現(xiàn)問(wèn)題歡迎大家隨時(shí)溝通!

 

C語(yǔ)言研究中心(www.sztianhecheng.cn)

 

C語(yǔ)言網(wǎng)提供「C語(yǔ)言、C++、算法競(jìng)賽」在線課程,全部由資深研發(fā)工程師或ACM金牌大佬親授課,更科學(xué)、全面的課程體系,以在線視頻+在線評(píng)測(cè)的學(xué)習(xí)模式學(xué)習(xí),學(xué)練同步,拒絕理論派,真正學(xué)會(huì)編程!還有獎(jiǎng)學(xué)金等增值福利等你!

C語(yǔ)言網(wǎng), 版權(quán)所有丨如未注明 , 均為原創(chuàng)丨本網(wǎng)站采用BY-NC-SA協(xié)議進(jìn)行授權(quán) , 轉(zhuǎn)載請(qǐng)注明C語(yǔ)言逆向之自增(++)運(yùn)算符前綴和后綴的區(qū)別
喜歡 (31)
[jinyangH@aliyun.com]
分享 (0)
發(fā)表我的評(píng)論
取消評(píng)論
表情

Hi,您需要填寫(xiě)昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)