8086彙編下的ret指令和retf指令

2021-08-19 18:11:43 字數 1468 閱讀 5824

在這裡主要是想做個記錄

當cpu執行指令ret的時候,會進行下面的操作當cpu執行指令retf的時候相當於進行了下面的操作其實就相當於cpu在執行ret指令的時候就是在執行下面的彙編語句

pop ip

cpu在執行retf指令的時候其實就是在執行下面的彙編語句

pop ip

pop cs

關於下面的程式的執行過程

assume cs:code

stack segment

db 16 dup(0)

stack ends

code segment

mov ax,4c00h

int 21h

start:

mov ax,stack

mov ss,ax

mov sp,16

mov ax,0

push ax

mov bx,0

retcode ends

end start

當執行到ret指令的時候的暫存器的值,這裡ret指令還沒有執行

執行完ret指令的值

關於retf指令的程式

assume cs:code

stack segment

db 16 dup(0)

stack ends

code segment

mov ax,4c00h

int 21h

start:

mov ax,stack

mov ss,ax

mov sp,16

mov ax,0

push cs

push ax

mov bx,0

retf

code ends

end start

cs和ip入棧完畢

執行完畢

組合語言 CALL 和RET指令

call和ret指令都是轉移指令,它們都修改ip,但同時修改cs和ip。ret指令用棧中的資料,修改ip的內容,從而實現近轉移。retf指令用棧中的資料,修改cs和ip的內容,從而實現遠轉移。cpu執行ret指令時,進行下面兩步操作 ip ss 16 sp sp sp 2 cpu執行retf指令時,...

組合語言 call和ret指令

call和ret指令都是轉移指令,它們都修改ip,或同時修改cs和ip。它們經常被共同用來實現子程式的設計。ret指令用棧中的資料,修改ip的內容,從而實現近轉移 retf指令用棧中的資料,修改cs和ip的內容,從而實現遠轉移 cpu執行ret指令時,進行下面兩步操作 cpu執行retf指令時,進行...

彙編10 CALL和RET指令

call和ret指令都是轉移指令,它們經常被共同用來實現子程式的設計。ret指令用棧中的資料實現修改ip的內容,從而完成近轉移,執行ret指令時相當於執行 pop ipretf指令用棧中的資料實現修改cs和ip的內容,從而完成遠轉移,執行retf指令相當於執行 pop ip pop cs在程式中就可...