diff --git a/basis/cpu/x86/assembler/assembler-tests.factor b/basis/cpu/x86/assembler/assembler-tests.factor index 531110da7b..0a6ae5a484 100644 --- a/basis/cpu/x86/assembler/assembler-tests.factor +++ b/basis/cpu/x86/assembler/assembler-tests.factor @@ -164,3 +164,5 @@ IN: cpu.x86.assembler.tests [ { 15 183 195 } ] [ [ EAX BX MOVZX ] { } make ] unit-test +[ { 100 199 5 0 0 0 0 123 0 0 0 } ] [ [ 0 [] FS 123 MOV ] { } make ] unit-test + diff --git a/basis/cpu/x86/assembler/assembler.factor b/basis/cpu/x86/assembler/assembler.factor index b075b121a5..32eeaaad1d 100644 --- a/basis/cpu/x86/assembler/assembler.factor +++ b/basis/cpu/x86/assembler/assembler.factor @@ -188,6 +188,13 @@ M: register displacement, drop ; PRIVATE> +! Segment override prefixes +: CS ( -- ) HEX: 2e , ; +: ES ( -- ) HEX: 26 , ; +: SS ( -- ) HEX: 36 , ; +: FS ( -- ) HEX: 64 , ; +: GS ( -- ) HEX: 65 , ; + ! Moving stuff GENERIC: PUSH ( op -- ) M: register PUSH f HEX: 50 short-operand ;