Lua:unregisterAssembler
Jump to navigation
Jump to search
Unregisters a previously registered assembler callback.
The id parameter must be the ID returned by registerAssembler.
Contents
Function Parameters
| Parameter | Type | Description |
|---|---|---|
| id | Integer | The assembler registration ID returned by registerAssembler. |
Returns
This function does not return a value.
Examples
Register and unregister an assembler callback
1 local assemblerID = registerAssembler(function(address, instruction)
2 if instruction:lower() == "customnop" then
3 return {0x90}
4 end
5
6 return nil
7 end)
8
9 unregisterAssembler(assemblerID)
Unregister only if an ID exists
1 local assemblerID = registerAssembler(function(address, instruction)
2 if instruction:lower() == "customnop2" then
3 return {0x66, 0x90}
4 end
5
6 return nil
7 end)
8
9 if assemblerID ~= nil then
10 unregisterAssembler(assemblerID)
11 assemblerID = nil
12 end
Replace an assembler callback
1 if CustomAssemblerID ~= nil then
2 unregisterAssembler(CustomAssemblerID)
3 end
4
5 CustomAssemblerID = registerAssembler(function(address, instruction)
6 if instruction:lower() == "ret0" then
7 return {0x31, 0xC0, 0xC3}
8 end
9
10 return nil
11 end)
Store multiple assembler IDs
1 local assemblerIDs = {}
2
3 assemblerIDs[#assemblerIDs + 1] = registerAssembler(function(address, instruction)
4 if instruction:lower() == "customnop" then
5 return {0x90}
6 end
7
8 return nil
9 end)
10
11 assemblerIDs[#assemblerIDs + 1] = registerAssembler(function(address, instruction)
12 print(string.format("Assembler callback at %X: %s", address, instruction))
13
14 return nil
15 end)
16
17 for i, id in ipairs(assemblerIDs) do
18 unregisterAssembler(id)
19 end
20
21 assemblerIDs = {}
Use an unregister helper
1 local function unregisterCustomAssembler()
2 if CustomAssemblerID ~= nil then
3 unregisterAssembler(CustomAssemblerID)
4 CustomAssemblerID = nil
5 end
6 end
7
8 unregisterCustomAssembler()
Disable a temporary assembler extension after use
1 local assemblerID = registerAssembler(function(address, instruction)
2 if instruction:lower() == "customnop" then
3 return {0x90}
4 end
5
6 return nil
7 end)
8
9 autoAssemble([[
10 customnop
11 ]])
12
13 unregisterAssembler(assemblerID)