2013-02-17 97 views
0

我無法在文檔中找到標籤的確切實現(不在現代裝配中)它指向哪裏?我曾在我的腦海裏這是第一個指令的地址,例如:什麼是標籤地址?

global _start 
section .text 
_start: 
    call exit 
exit: 
    mov eax,1 
    mov ebx,20 
    int 0x80 

section .data 
list: 
    dd exit 

list不應該是相同的地址作爲exit這是第一個由標籤見過? 我想要做這樣的事情:

mov eax,list 
call eax 

這是一個嘗試,使函數指針般的組裝。

+0

該標籤只是一個助記符,指的是第一條指令後面的地址。例如'exit:'指向'mov eax,1'物理存在於RAM中的任何地方。 – 2013-02-17 23:18:21

+0

'mov eax,list \ nmov ebx,exit'爲什麼不是'eax'和'ebx'地址相同? – 2013-02-17 23:22:16

+0

,因爲list指向存儲退出函數地址的內存部分。例如它並沒有指向實際的退出函數,而是指向你存儲指針退出的位置。 – 2013-02-17 23:24:13

回答

1

標籤只是引用標籤後第一條指令地址的助記符。例如exit:指向公羊在mov eax,1物理存在的任何地方。