It makes no sense calculating the difference of offsets in different segments. Consider your AXSAVE is at offset 0 of segment 0 and REGTAB is at offset 2 of segment 0xfe00. This way REGDIF will be a negative value (AXSAVE - REGTAB = 0 - 2 = -2 or 0xfffe). And this isn't the distance between the labels, since the physical address, based on logical ones are, for AXSAVE, 0x00000, and REGDIF, 0xfe002. Even if you use the physical addresses and calculate REGDIF - AXSAVE instead, you'll get 0xfe002 or 1040386, instead of 0xfffe or 65534.
That's why NASM don't allow this:
bits 16
section _data1
a: db 0
section _data2
b: db 0
_diff equ b - a ; ERROR
First, there is the problem mantioned earlier. And there is another: _data1 and _data2 aren't, necessarily, sequential (the linker will arrange it the way it wants)... There is no way NASM knows if a comes first or not.