小華的部落格: Strong/Weak 語法與"::"標籤表示法

搜尋此網誌

網頁

星期一, 5月 07, 2007

Strong/Weak 語法與"::"標籤表示法

組合語言中的Strong/Weak 語法簡單說就是如果A存在就跳躍過去A執行,如果A不存在就跳到B去執行
假如我有一段程式如下面所示:

PUBLIC BBB&Return
EXTERN AAA(BBB&Return):NEAR <--Strong/weak寫法

Test1 Proc
...
Jmp AAA
...
BBB&Return:: <--如果AAA不存在會跳到這邊執行
ret
Test1 EndP

AAA Proc <--如果AAA存在會跳到這邊執行
...
ret
AAA EndP

除了上面的Strong/Weak之外,還可以看到標籤是BBB&Return:: 而"::"代表的意思有兩種:
1.PUBLIC 出來的標籤,要把它標示成"::",簡單說就是不同程序間也可以跳躍
2."::"不同程序間的跳躍,如下面範例所示:
[註]功能還是跟 ":"一樣,只是表示方式不同而已。

Public Label2
Test1 proc near

Label1:

Label2::

ret
Test1 endp

Test2 proc near

jmp Label1 ; compiler 會錯誤, 因為該 label 找不到

jmp Label2 ; 正確, 該 label2 是可以找到的,因為有把他Public

ret
Test2 endp

沒有留言: