1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; UrForth level
1: self
-hosting
32-bit Forth compiler
3 ;; Natural
-syntax x86 assembler
4 ;; Modelled after SMAL32 built
-in assembler
5 ;; Copyright
(C
) 2020 Ketmar Dark
// Invisible Vector
7 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 ;; simple one and two
-byte instructions without operands
9 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
38 $
60 simple
-byte PUSHAD
40 $
9C simple
-byte PUSHFD
41 \ $C3 simple
-byte RET \ moved
to RETN
42 \ $CB simple
-byte RETF \ defined below
61 alias CMC CCF
;; complement carry
62 alias STC SCF
;; set carry
66 \ Performs an operation equivalent
to SBB AL
, AL without modifying any flags
.
67 \ In other words
, AL will be set
to FFh or
0 depending on whether CF is set or clear
.
68 $D6 simple
-byte SETALC
72 \ AAM and AAD has hidden operand
, let
's support it
73 \ $D50A simple-word AAD
74 \ $D40A simple-word AAM
78 $66A7 simple-word CMPSW
79 $666D simple-word INSW
80 $66CF simple-word IRET
81 $66AD simple-word LODSW
82 $66A5 simple-word MOVSW
83 $666F simple-word OUTSW
84 $6661 simple-word POPAW
85 $6660 simple-word PUSHAW
86 $669D simple-word POPFW
87 $669C simple-word PUSHFW
88 $66AF simple-word SCASW
89 $66AB simple-word STOSW
91 $0F06 simple-word CLTS
92 $0F08 simple-word INVD
93 $0F09 simple-word WBINVD
95 $0F30 simple-word WRMSR
96 $0F31 simple-word RDTSC
97 $0F32 simple-word RDMSR
98 $0F33 simple-word RDPMC
99 $0F34 simple-word SYSENTER
100 $0F35 simple-word SYSEXIT
101 $0FA2 simple-word CPUID
102 $0FAA simple-word RSM
104 $0F77 simple-word EMMS