【摘抄】
call和ret指令都是轉移指令
詳細:ret指令用棧中的資料,修改ip的內容,實現近轉移
retf指令用棧中的資料,修改cs和ip的內容,實現遠轉移
cpu執行ret指令
(ip)=((ss)*16+(sp))
(sp)=(sp)+2
cpu執行retf指令
(ip)=((ss)*16+(sp))
(sp)=(sp)+2
(cs)=((ss)*16+(sp))
(sp)=(sp)+2
call指令:
cpu執行此指令,將當前ip和cs或ip壓入棧中,再實現轉移
常用格式如下:
call 標號,ip
call far ptr 標號,cs,ip
call 16位 reg,ip
call word ptr 記憶體單元位址,ip
call dword ptr 記憶體單元位址,cs,ip
call與ret指令共同支援了彙編語音程式設計中的模組化設計。
那麼,有如下問題有待思考:
1、將引數n儲存在哪?
2、計算得到的數值,儲存在哪?
用暫存器來儲存引數和結果是最常用的方法。
另外通用的方法是使用棧來傳遞引數。
《組合語言 第2版 2011040201
8086轉移指令有以下幾類 無條件轉移指令,eg.jmp 條件轉移指令,eg.jz 迴圈指令,eg.loop 過程中斷 操作符offset在組合語言中是由編譯器處理的符號,它的功能是取得標號的偏移位址。eg.start mov ax,offset start jmp指令 jmp short 標號,實...
《組合語言 第2版 2011033101
學習指令 and指令 邏輯與指令,按位進行與運算 and r m,r m data or指令 邏輯或指令,按位進行與運算 or r m,r m data 關於如何靈活訪問位址,以下用mov指令看定位記憶體位址 1 mov ax,bx idata 或mov ax,idata bx 記憶體位址 bx i...
ADS組合語言2
4.2 組合語言的語句格式 arm thumb 組合語言的語句格式為 在組合語言程式設計中,每一條指令的助記符可以全部用大寫 或全部用小寫,但不用許在一條指令中大 小寫混用。同時,如果一條語句太長,可將該長語句分為若干行來書寫,在行的末尾用 表示下一行與本行為同一條語句。4.2.1 在組合語言程式中...