成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文詳解匯編語言call和ret指令

開發 前端
在我們平時編程過程中,都會用到函數或子程序,反匯編就是call指令。可以使程序跳轉到指定代碼段,執行結束后,返回主程序繼續向下執行。

什么是call?

在我們平時編程過程中,都會用到函數或子程序,反匯編就是call指令。可以使程序跳轉到指定代碼段,執行結束后,返回主程序繼續向下執行。

分析如下代碼段,程序執行后,ax寄存器中的數值為多少?

首先,mov ax,0執行結束后,ax寄存器中的值為0,該指令機器碼長度為3字節,因此,ip=3。

call far ptr s執行后,程序會跳轉到標號s處,但是需要將該指令的下一條指令地址保存起來,s段執行后要返回。因此push cs=1000,push ip=8。再跳轉cs=1000,ip=9。

pop ax執行后,ax=8h;

add ax,ax執行后,ax=10h;

pop bx執行后,bx=1000h;

add ax,bx執行后,ax=1010h;

由于s沒有返回,最終ax寄存器中的值為1010h。

call 寄存器

call后面不僅可以加標號,也可以直接加寄存器。

call ax執行后,將下一條指令inc ax的偏移地址ip入棧,因此sp指向的內存中數據為5。然后ip=6;

mov bp,sp執行后,bp指向的內存空間數據也為5;

add ax,[bp]執行后,相當于ax=ax+5=11,即0bh。

轉移地址在內存中的call指令

語法:call word ptr 內存單元地址

相當于:

push IP
jmp word ptr 內存單元地址

執行如下指令:

mov sp,10h
mov ax,0123h
mov ds:[0],ax
call word ptr ds:[0]

最終跳轉到ds:[0]=0123h,(IP)=0123H,SP=0EH(10H-2H=0EH)。

語法:call dword ptr 內存單元地址

相當于:

push CS
push IP
jmp dword ptr 內存單元地址

執行如下指令:

mov sp,10h
mov ax,0123h
mov ds:[0],ax
mov word ptr ds:[2],0
call dword ptr ds:[0]

執行后,ds中數據類型為dword,0-1的word類型數據為0123h,因此(IP)=0123h;2-3的word類型數據為0,因此(CS)=0,入棧dword類型是4個字節數據,(SP)=10h-4h=0ch。

閱讀程序

分析如下程序,最終ax寄存器中的值為多少?(debug調試會因為中斷問題造成和理論分析不一致)

首先,棧空間16個字節0,ss棧段為ax,ds數據段也是ax;

ax初始值為0;

當執行call時,首先將call下方第一個inc ax的IP入棧,(SP)=0EH,并跳轉至ds:[0EH],這個值就是SP指向空間保存的IP,程序正常向下運行,inc ax執行三次,最終(ax)=03H。

ret指令

call指令執行時,將當前指令的下一條指令偏移IP保存入棧,然后跳轉至標號處,也就是我們說的函數,函數執行完畢,ret指令會將IP彈出。

上述程序,call s執行三次add ax,ax,最終(ax)=8,然后返回至mov bx,ax,(bx)=08h。


責任編輯:華軒 來源: 今日頭條
相關推薦

2020-12-18 08:49:11

相對跳轉絕對跳轉指令

2010-11-09 09:51:52

匯編語言

2011-01-14 14:08:17

Linux匯編語言

2011-01-14 14:39:32

Linux匯編語言

2023-11-22 16:10:59

編程語言機器語言

2022-07-26 00:00:03

語言模型人工智能

2022-06-26 00:18:05

企業產品化變量

2018-01-11 14:58:40

2012-02-09 09:00:54

匯編語言

2017-01-12 22:36:30

2021-02-11 09:01:32

CSS開發 SDK

2022-04-20 10:25:18

量子區塊鏈計算機

2011-01-14 14:22:50

Linux匯編語言

2021-06-11 10:02:39

語言編程開發

2011-01-04 17:08:10

匯編語言

2011-01-14 14:15:11

Linux匯編語言

2023-02-28 18:09:53

Javascript定時器

2020-12-21 06:13:52

高可用Nacos服務端

2021-05-11 11:05:43

SAL子查詢

2022-08-05 08:22:10

eBPFHTTP項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩黄a | 日本成人在线观看网站 | av在线影院 | 午夜黄色影院 | 国产日韩欧美一区二区 | 精品一区二区三区电影 | 亚洲精品一 | 颜色网站在线观看 | 亚洲国产一区二区三区 | 亚洲一区国产 | 国产午夜精品一区二区三区 | 日韩手机视频 | 中文字幕丁香5月 | 欧美日韩在线一区二区 | 日本h片在线观看 | 成人av电影免费在线观看 | 极品粉嫩国产48尤物在线播放 | 国产精品一区二区三区四区 | 久久国内精品 | 日本电影免费完整观看 | 视频在线观看亚洲 | 久久久91| 91精品国产综合久久久亚洲 | 仙人掌旅馆在线观看 | 亚洲免费视频一区 | 二区三区视频 | 欧美综合久久久 | 中文字幕日韩在线 | 亚洲午夜精品在线观看 | 国产日韩一区二区三区 | 黑人久久 | 国产乱码精品1区2区3区 | 欧美一区免费在线观看 | 日韩精品一区二区三区 | 久久久久久久国产 | 97精品视频在线观看 | 免费a级毛片在线播放 | 精品欧美二区 | 日韩欧美一区二区三区免费观看 | 久久久久9999| 欧美国产精品一区二区三区 |