lua c函式的堆疊變化標記

2021-04-30 21:58:29 字數 335 閱讀 8119

lua文件中每乙個函式都有乙個堆疊變化標記類似

[-o,+p,x]

第一部分o代表有多少元素出棧,第二部分p代表有多少元素入棧(有些函式總是出棧它的引數,入棧它的結果)這部分在一些情況下,有可能是 x|y 形式出現,代表有x或y個元素入棧(出棧), ?標記的意思不能知道有多少個元素出、入棧。

第三部分 x說明函式是否可以丟擲錯誤:-代表函式從不丟擲錯誤。m代表函式只有not enough memory的時候才丟擲錯誤。 e代表這個函式可以丟擲其他型別的錯誤。 v代表函式可以有目的的丟擲錯誤。

參考:lua 5.1 reference manual 3.7 functions and types

函式呼叫堆疊變化分析

比如 我們有這樣乙個c函式 include long test int a,int b void main 寫成32位彙編就是這樣 386 model flat,stdcall 這裡我們用stdcall 就是函式引數 壓棧的時候從最後乙個開始壓,和被呼叫函式負責清棧 option casemap n...

函式呼叫堆疊變化分析

跟乙個朋友談堆疊的時候 就寫下了這段文字,順便發到這裡給需要的看看吧 彙編初學者比較頭痛的乙個問題 比如 我們有這樣乙個c函式 include long test int a,int b void main 寫成32位彙編就是這樣 386 model flat,stdcall 這裡我們用stdcal...

緩衝區溢位 函式呼叫時的堆疊變化

乙個正常的程式在記憶體中通常分為程式段,資料端和堆疊三部分。程式段裡放著程式的機器碼和唯讀資料,這個段通常是唯讀,對它的寫操作是非法的。資料段放的是程式中的靜態資料。動態資料則通過堆疊來存放。在記憶體中,它們的位置如下 記憶體低端 程式段 資料段 堆疊 記憶體高階 堆疊是記憶體中的乙個連續的塊。乙個...