1 %macro d2 1.nolist 2 db (%1) >> 8 3 db (%1) & 0xFF 4 %endmacro 5 %macro d2a 1.nolist 6 db ((%1)-_f0) >> 8 7 db ((%1)-_f0) & 0xFF 8 %endmacro 9 SECTION .data 10 global _f0 11 _f0: 12 %define H_COL 0xFF 13 %define H_RSR 0xFE 14 %define H_CON 0xFD 15 %define H_TO 0xFC 16 %define H_AT 0xFB 17 %define H_C1 0xFA 18 %define H_C2 0xF9 19 %define H_C3 0xF8 20 %define SF_EXIT 0xFF 21 %define F_EXIT 0xE5FF 22 %define SF_PLUS 0xFE 23 %define F_PLUS 0xE5FE 24 %define SF_DUP 0xFD 25 %define F_DUP 0xE5FD 26 %define SF_2DUP 0xFC 27 %define F_2DUP 0xE5FC 28 %define SF_1 0xFB 29 %define F_1 0xE5FB 30 %define F_COUNT 0xE5FA 31 %define F_TYPE 0xE5F9 32 %define F_CR 0xE5F8 33 %define F_STO 0xE5F7 34 %define F_TOS 0xE5F6 35 %define FIP_RETURN 0xFFFF 36 %define FIP_RSREXIT 0xFFFE 37 ADR_strlen: 38 00000000 FA db H_C1 39 extern strlen 40 00000001 [00000000] dd strlen 41 ; 0<."> = 0x3cx2ex22x3e 42 ADR_0x3cx2ex22x3e: 43 00000005 FE db H_RSR 44 ; S0<."> = S0x3cx2ex22x3e 45 ADR_S0x3cx2ex22x3e: 46 00000006 FF db H_COL 47 00000007 E5F7 d2 F_STO 48 00000009 FD db SF_DUP 49 0000000A 0000 d2a ADR_strlen 50 0000000C FC db SF_2DUP 51 0000000D E5F9 d2 F_TYPE 52 0000000F FE db SF_PLUS 53 00000010 FB db SF_1 54 00000011 FE db SF_PLUS 55 00000012 E5F6 d2 F_TOS 56 00000014 FF db SF_EXIT 57 global ADR_DEMO 58 ADR_DEMO: 59 00000015 FF db H_COL 60 00000016 0005 d2a ADR_0x3cx2ex22x3e 61 00000018 48656C6C6F00 db 'Hello', 0 62 0000001E E5F8 d2 F_CR 63 00000020 0005 d2a ADR_0x3cx2ex22x3e 64 00000022 54686572652100 db 'There!', 0 65 00000029 FF db SF_EXIT