彙編裡的跳轉命令的格式是什麼同學代問

時間 2021-09-05 17:55:44

1樓:

jmp 後面跟地址啊。

感覺問的不太清楚。

2樓:沒有感覺真要命

格式: jmp 目標地址

無條件轉移指令jmp:

這種跳轉指令有三種方式:短(short),近(near)和遠(far)。短是指要跳至的目標地址與當前地址前後相差不超過128位元組。

近是指跳轉的目標地址與當前地址在用一個段內,即cs的值不變,只改變eip的值。遠指跳到另一個**段去執行,cs/eip都要改變。短和近在編碼上有所不同,在彙編指令中一般很少顯式指定,只要寫 jmp 目標地址,幾乎任何彙編器都會根據目標地址的距離採用適當的編碼。

遠轉移在32位系統中很少見到,原因前面已經講過,由於有足夠的線性空間,一個程式很少需要兩個**段,就連用到的系統模組也被對映到同一個地址空間。

jmp的運算元自然是目標地址,這個指令支援直接定址和間接定址。間接定址又可分為暫存器間接定址和記憶體間接定址。舉例如下(32位系統):

jmp 8e347d60 ;直接定址段內跳轉

jmp ebx ;暫存器間接定址:只能段內跳轉

jmp dword ptr [ebx] ;記憶體間接定址,段內跳轉

jmp dword ptr [00903dec] ;同上

jmp fward ptr [00903df0] ;記憶體間接定址,段間跳轉

解釋:在32位系統中,完整目標地址由16位段選擇子和32位偏移量組成。因為暫存器的寬度是32位,因此暫存器間接定址只能給出32位偏移量,所以只能是段內近轉移。在記憶體間接定址時,指令後面是方括號內的有效地址,在這個地址上存放跳轉的目標地址。

比如,在[00903dec]處有如下資料:7c 82 59 00 a7 01 85 65 9f 01

記憶體位元組是連續存放的,如何確定取多少作為目標地址呢?dword ptr 指明該有效地址指明的是雙字,所以取

0059827c作段內跳轉。反之,fward ptr 指明後面的有效地址是指向48位完全地址,所以取19f:658501a7 做遠跳轉。

注意:在保護模式下,如果段間轉移涉及優先順序的變化,則有一系列複雜的保護檢查,現在可不加理會。將來等各位功力提升以後可以自己去學習。

條件轉移指令jxx:只能作段內轉移,且只支援直接定址。

字幕的格式是什麼,字幕格式是什麼格式?

外鑲字幕的格式是 srt 昂良猶曼雲 字幕分兩類 一類是圖形格式,如 idx sub字幕,另一類是基於文字格式,如 sub srt ssa ass txt字幕。sub格式較常用。 目前常用的 ssaass smisrt sublrc ssttxt xsspsb ssb注 副檔名就是我上面寫的,在前面...

函的格式是什麼,函的寫作格式是什麼

zxwh中旭 公函由首部 正文和尾部三部分組成。其各部分的格式 內容和寫法要求如下 一 首部 主要包括標題 主送機關兩個專案內容。1 標題。公函的標題一般有兩種形式。一種是由發文機關名稱 事由和文種構成。另一種是由事由和文種構成。2 主送機關。即受文並辦理來函事項的機關單位,於文首頂格寫明全稱或者規...

徵文格式模板是什麼 徵文的格式是什麼

徵文格式的模板指的就是在正文裡面相對一個比較嚴格的。作文的一個流程,然後再寫作文的一些方面,是有相對比較固定的一個格式的,是需要按照這樣子的一個條條框框去進行編寫,才能夠去通過徵文的一個篩選。然後在正文的格式模板裡面,最主要就是先要立一個比較大的正標題,然後在正標題裡面,如果是以電子文件形式的話,還...