日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转移指令总结

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转移指令总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉移指令:可以修改ip的指令。 無條件轉移 jmp

(1) jmp short s ?標號,短轉移:用一個字節表示大小,范圍為-128--127

(2) jmp near ptr s ?標號,近轉移:用兩個字節表示大小,范圍為-32768--32767 (3) jmp far ptr s 標號,遠轉移:用四個字節表示地址,低位為ip,高位為cs (4) jmp ax 寄存器,地址,修改ip (5) jmp word ptr ds:[idata] 內存,地址,修改ip (6) jmp dword ptr ds:[idata] 內存,地址,低位為ip,高位為cs 條件轉移 jcxz, ja, jna, je, jne, jb, jnb jcxz s 標號 <==> if (cx == 0){jmp short s;} je s 標號 <==> if (zf == 0){jmp short s;} jne s 標號 <==> if (zf == 1){jmp short s;} 無符號數: ja s 標號 <==> if (cf == 0 && zf == 0){jmp short s;} jna s 標號 <==> if (cf == 1 || zf == 1){jmp short s;} jb s 標號 <==> if (cf == 1){jmp short s;} jnb s 標號 <==> if (cf == 0){jmp short s;} 有符號數:用of ps:所有條件轉移都是短轉移 循環?loop loop s 標號,短轉移 <==> cx--; if (cx != 0){jmp short s;} 過程(與棧結合的無條件轉移) ret, retf, call ret <==> pop ip retf <==> pop ip; pop cs call將jmp的除(1)短轉移外的所有形式,換個指令,功能一樣,增加一個push ip,此ip為下一指令的首地址 (1) call s <==> push ip;jmp near ptr s (2) call?far ptr s <==>?push ip;jmp far ptr s (3) call ax <==>?push ip;jmp ax (4) call?word ptr ds:[idata] <==>?push ip;jmp word ptr ds:[idata] (5) call dword ptr ds:[idata] <==>?push ip;jmp dword ptr ds:[idata] 注:ip地址是在指令進入指令緩沖器后再增加,然后執行指令 中斷 int, iret int n 中斷例程號碼 <==> pushf; IF = 0, TF = 0; push cs, push ip; ip = (n*4), cs = (n*4 + 2); iret <==> pop ip, pop cs; popf;

轉載于:https://www.cnblogs.com/rz-jin/archive/2012/12/13/2816368.html

總結

以上是生活随笔為你收集整理的转移指令总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。