Short-code threading for virtual machine interpreters is substantially similar to direct threading. But short-code threading consumes less memory at the cost of a little performance degradation, as compared with direct threading in a 32-bit or 64-bit address machine. A 16-bit short-code is used to enroll the least two significant bytes of the emulation address at the phase of preparing translated code, and a virtual segment register is used to store the remainder of the address. Experiments on benchmark programs of SPECJVM 98 showed that short-code threading is slightly slower than direct threading but short-code threading requires lesser memory to store the translated address: one half in 32-bit addressing and one quarter in 64-bit addressing. Therefore, short-code threading is much suitable for memory-constrained embedded system.