1 %macro dhl 1.nolist 2 db (%1) >> 8 3 db (%1) & 0xFF 4 %endmacro 5 %macro dhla 1.nolist 6 db ((%1)-_f0) >> 8 7 db ((%1)-_f0) & 0xFF 8 %endmacro 9 SECTION .data 10 global _f0 11 _f0: 12 13 ;; lua: return gsub(strings.Cdefs, "#", "%%") 14 %define H_C1 0x00 15 %define H_RSR 0x01 16 %define H_COL 0x02 17 %define H_C0 0x03 18 %define H_DROPPING 0x04 19 %define H_LUAC0 0x05 20 %define H_LUAC1 0x06 21 %define H_LUAC2 0x07 22 %define FIP_RETURN 0xFFFF 23 %define FIP_RSREXIT 0xFFFE 24 %define FIP_FIPDROP 0xFFFD 25 %define SF_EXIT 0xFF 26 %define SF_DUP 0xFE 27 %define F_EXIT 0xFDFF 28 %define F_STO 0xFDFE 29 %define F_DUP 0xFDFD 30 %define F_PLUS 0xFDFC 31 %define F_1 0xFDFB 32 %define F_TOS 0xFDFA 33 %define F_lua_statex21 0xFDF9 34 %define F_0 0xFDF8 35 36 ;; lua: return strings.nasmbytecode 37 ADR_strlen: 38 00000000 00 db H_C1 39 extern strlen 40 00000001 [00000000] dd strlen 41 ADR_0x24: 42 00000005 01 db H_RSR 43 ADR_S0x24: 44 00000006 02 db H_COL 45 00000007 FDFE dhl F_STO 46 00000009 FE db SF_DUP 47 0000000A FE db SF_DUP 48 0000000B 0000 dhl ADR_strlen -_f0 49 0000000D FDFC dhl F_PLUS 50 0000000F FDFB dhl F_1 51 00000011 FDFC dhl F_PLUS 52 00000013 FDFA dhl F_TOS 53 00000015 FF db SF_EXIT 54 ADR_lua_open: 55 00000016 03 db H_C0 56 extern lua_open 57 00000017 [00000000] dd lua_open 58 ADR_lua_stdlibsopen: 59 0000001B 04 db H_DROPPING 60 0000001C 05 db H_LUAC0 61 extern lua_stdlibsopen 62 0000001D [00000000] dd lua_stdlibsopen 63 ADR_lua_getglobal: 64 00000021 04 db H_DROPPING 65 00000022 06 db H_LUAC1 66 extern lua_getglobal 67 00000023 [00000000] dd lua_getglobal 68 ADR_lua_pushstring: 69 00000027 04 db H_DROPPING 70 00000028 06 db H_LUAC1 71 extern lua_pushstring 72 00000029 [00000000] dd lua_pushstring 73 ADR_lua_call: 74 0000002D 04 db H_DROPPING 75 0000002E 07 db H_LUAC2 76 extern lua_call 77 0000002F [00000000] dd lua_call 78 global ADR_DEMO 79 ADR_DEMO: 80 00000033 02 db H_COL 81 00000034 0016 dhl ADR_lua_open -_f0 82 00000036 FDF9 dhl F_lua_statex21 83 00000038 001B dhl ADR_lua_stdlibsopen -_f0 84 0000003A 0005 dhl ADR_0x24 -_f0 85 0000003C 7072696E7400 db 'print',0 86 00000042 0021 dhl ADR_lua_getglobal -_f0 87 00000044 0005 dhl ADR_0x24 -_f0 88 00000046 48656C6C6F00 db 'Hello',0 89 0000004C 0027 dhl ADR_lua_pushstring -_f0 90 0000004E FDFB dhl F_1 91 00000050 FDF8 dhl F_0 92 00000052 002D dhl ADR_lua_call -_f0 93 00000054 FF db SF_EXIT