通常會有任何語言的路線,但你需要faff約一兩天,因爲這些東西並不總是被記錄在內
聲明一個全局內存操作空間在你的味道HLL。 DIM LABELNAME1(0)
然後搜索這使地址到EAX
mov eax, ^LABELNAME(0)
mov eax, dword [_lablename]
mov eax, ^_lablename
etc etc etc
然後彈出它在ASM
你不會找到pop [^
對谷歌的任何地方ASM語法,但它是一個,這在某些工作高級語言
push eax
pop [^LABELNAME1(0)]
現在你HLL和ASM可以聊天對方,只要你喜歡
所以這是非常值得搞清楚
Undefined symbol _labelname
Probbly需要在程序
._labelname
mov dword [_lablename], 0
最開始的聲明,並通過ASM作爲標籤
以後使用正如我所說,你不得不瞎搞,爲你的特定HLL味道而拼命,並且全球化似乎最有效果
您還需要弄清楚如何申報單獨的內存區儲存ASM動態變量和運行操作碼,否則你會得到緩存覆蓋,這將削弱ASM
一個小程序,我寫的速度優勢不分離這些區域需要20個小時才能運行。隨着分離它耗時1小時
mov ax, OFFSET _labelname
這是16位的東西,(DOS等,與愚蠢的記憶規則)不是你做的32位東西你HLL ???
除非這一切都在一個段發生的事情,你需要一個雙存儲操作數找到_labelname
,dx:ax
等,如前面提到的,你20年太晚
jmp cs:_labelname
作品在同一網段,但對於更大的程序,CS部分需要是特定的段覆蓋和遠程跳轉/返回
此外,如果您的動態asm變量插入到您的asm代碼段中,那麼用於最大化asm速度的基本規則已被破壞
來源
2013-06-22 08:38:19
ady
您是否嘗試在實際的_asm塊中設置標籤? – Cyclonecode
問了20年太晚了。請更新您的編譯器。 –
@Krister是的,試圖在asm塊中定義;它仍然不起作用。 – Mikael