經本人研究內嵌匯編不能取自定義類型(成員非4字節,取來的是對齊結構的指針,比如成員為字節型分配4個字節),和非小數和整數,文本型數組不可以取指針,其它的都可以
要注意的是易的子程序前有EBP入棧操作,所以要有出棧操作才行
這是我寫的取整數型指針的例子(字節型,短整數型,小數型,日期時間型,雙精度小數型都通用,注意參數要為參考):
.版本 2
.支持庫 spec
.子程序 取整數型指針, 整數型, 公開
.參數 整數, 整數型, 參考
'push ebp <------------這兩句已經是易原有的
'mov ebp, esp置入代碼 ({ 139, 69, 8, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' leave <------------賦值給ESP,從堆棧中彈出到EBP
' ret 0004
返回 (0)
取文本指針的例子:
.版本 2
.支持庫 spec
.子程序 取文本型指針, 整數型, 公開
.參數 文本, 文本型置入代碼 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' leave
' ret 0004
返回 (0)
取字節集指針的例子:
.版本 2
.支持庫 spec
.子程序 取字節集指針, 整數型, 公開
.參數 字節集, 字節集, 參考置入代碼 ({ 139, 69, 8, 139, 0, 131, 192, 8, 201, 194, 4, 0 })
' mov eax, dword ptr [ebp+08]
' mov eax, dword ptr [eax]
' add eax, 00000008
' leave
' ret 0004
返回 (0)
以上就是本次給大家介紹內嵌匯編去變量指針的全部內容,感謝大家對VeVb武林網的支持。
新聞熱點
疑難解答