%macro dhl 1.nolist db (%1) >> 8 db (%1) & 0xFF %endmacro %macro dhla 1.nolist db ((%1)-_f0) >> 8 db ((%1)-_f0) & 0xFF %endmacro SECTION .data global _f0 _f0: ;; lua: return gsub(strings.Cdefs, "#", "%%") %define H_C1 0x00 %define H_RSR 0x01 %define H_COL 0x02 %define FIP_RETURN 0xFFFF %define FIP_RSREXIT 0xFFFE %define FIP_FIPDROP 0xFFFD %define SF_EXIT 0xFF %define SF_DUP 0xFE %define F_EXIT 0xFDFF %define F_STO 0xFDFE %define F_DUP 0xFDFD %define F_2DUP 0xFDFC %define F_TYPE 0xFDFB %define F_PLUS 0xFDFA %define F_1 0xFDF9 %define F_TOS 0xFDF8 %define F_SGOBBLE2 0xFDF7 %define F_SBRANCH 0xFDF6 %define F_S0BRANCH 0xFDF5 ;; lua: return strings.nasmbytecode ADR_strlen: db H_C1 extern strlen dd strlen ADR_0x3cx2ex22x3e: db H_RSR ADR_S0x3cx2ex22x3e: db H_COL dhl F_STO db SF_DUP dhl ADR_strlen -_f0 dhl F_2DUP dhl F_TYPE dhl F_PLUS dhl F_1 dhl F_PLUS dhl F_TOS db SF_EXIT ADR_LITW: db H_RSR db H_COL dhl F_SGOBBLE2 db SF_EXIT ADR_BRANCH: db H_RSR db H_COL dhl F_SBRANCH db SF_EXIT ADR_0BRANCH: db H_RSR db H_COL dhl F_S0BRANCH db SF_EXIT ADR_YESx2fNO: db H_COL dhl ADR_0BRANCH -_f0 dw LBL_1 -_f0 dhl ADR_0x3cx2ex22x3e -_f0 db 'yes',10,0 dhl ADR_BRANCH -_f0 dw LBL_2 -_f0 LBL_1: dhl ADR_0x3cx2ex22x3e -_f0 db 'no',10,0 LBL_2: db SF_EXIT global ADR_DEMO ADR_DEMO: db H_COL dhl ADR_0x3cx2ex22x3e -_f0 db 'Hello',10,0 dhl ADR_LITW -_f0 dw 22 dhl ADR_YESx2fNO -_f0 dhl ADR_LITW -_f0 dw 0 dhl ADR_YESx2fNO -_f0 db SF_EXIT