組合語言中的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
沒有留言:
張貼留言