1 | for Y = [8,16,32,64,DEF] do
2 | let RRW = $((Y=="8" or Y=="16") and "rw" or "r")
3 $(X86(Y)) MOV{_M$(RSZ(Y))} [RAX], $(RNAME("ECX",Y)) {|RAX/r,RCX/r}
4 $(X86(Y)) MOV{_$(RSZ(Y))$(RSZ(Y))} $(RNAME("EAX",Y)), $(RNAME("ECX",Y)) {|RAX/$(RRW),RCX/r}
5 $(X86(Y)) MOV{_$(RSZ(Y))M} $(RNAME("ECX",Y)), [RAX] {|RCX/$(RRW),RAX/r}
8 | let RRW = $((Y=="8" or Y=="16") and "rw" or "r")
9 MOV{_$(RSZ(Y))I} $(RNAME("ECX",Y)), 0x87 {|RCX/$(RRW)}
10 MOV{_M$(MSZ(Y))I} <$(NASMSZ(Y))> [RAX], 0xab {|RAX/r}
12 64: MOV{_M64I32S} <qword> [RAX], 0x12345678 {|RAX/r}
13 64: MOV{_DI} RCX, 0x123456789abcdef0 {|RCX/w}
14 64: MOV{_DI32S} RCX, -1 {|RCX/w}
15 64: MOV{_DI32U RCX} <ECX>, 0x1234 {|RCX/w}
17 MOV{_MI32S} <$(NASMSZ("DEF"))> [RAX], 0x12345678 {|RAX/r}
18 MOV{_RI32S} RCX, -1 {|RCX/w}
19 MOV{_RI32U RCX} <ECX>, 0x1234 {|RCX/w}
21 PUSH{_I} <byte> 0x12 {|}
24 PUSH{_M} <$(NASMSZ("DEF"))> [RAX] {|RAX/r}
25 POP{_M} <$(NASMSZ("DEF"))> [RAX] {|RAX/r}
29 | for X = [O, NO, B, C, NAE, NB, NC, AE, E, Z, NE, NZ, BE, NA, A, NBE, S, NS, PE, P, PO, NP, L, NGE, GE, NL, LE, NG, G, NLE] do
30 | for Y = [16, 32, 64, DEF] do
31 $(X86(Y)) CMOV$(X){_$(RSZ(Y))$(RSZ(Y))} $(RNAME("EDX",Y)),$(RNAME("ECX",Y)) {|RDX/rw,RCX/r,FLAGS/r}
32 $(X86(Y)) CMOV$(X){_$(RSZ(Y))M} $(RNAME("EDX",Y)),[RAX] {|RDX/rw,RAX/r,FLAGS/r}
36 CDQ {|RDX/w,RAX/rw,FLAGS/w}
37 64: CQO {|RDX/w,RAX/rw,FLAGS/w}
39 | for X = [MOVZX, MOVSX] do
40 | for Y = [32, 64, DEF] do
42 $(X86(Y)) $(X){_$(RSZ(Y))$(RSZ(Z))} $(RNAME("ECX",Y)), $(RNAME("EDX",Z)) {|RCX/w,RDX/r}
43 $(X86(Y)) $(X){_$(RSZ(Y))M$(MSZ(Z))} $(RNAME("ECX",Y)), <$(NASMSZ(Z))> [RAX] {|RCX/w,RAX/r}
48 64: {MOVZX_DW RCX} <MOV ECX>, EDX {|RCX/w,RDX/r}
49 64: {MOVZX_DM32 RCX} <MOV ECX>, <dword> [RAX] {|RCX/w,RAX/r}
50 64: MOVSX{_DW} RCX, EDX {|RCX/w,RDX/r}
51 64: MOVSX{_DM32} RCX, <dword> [RAX] {|RCX/w,RAX/r}
53 32: {MOVZX_RW}<MOV> RCX, EDX {|RCX/w,RDX/r}
54 32: {MOVZX_RM32}<MOV> RCX, <dword> [RAX] {|RCX/w,RAX/r}
55 32: {MOVSX_RW}<MOV> RCX, EDX {|RCX/w,RDX/r}
56 32: {MOVSX_RM32}<MOV> RCX, <dword> [RAX] {|RCX/w,RAX/r}
58 64: {MOVZX_RW RCX} <MOV ECX>, EDX {|RCX/w,RDX/r}
59 64: {MOVZX_RM32 RCX} <MOV ECX>, <dword> [RAX] {|RCX/w,RAX/r}
60 64: MOVSX{_RW} RCX, EDX {|RCX/w,RDX/r}
61 64: MOVSX{_RM32} RCX, <dword> [RAX] {|RCX/w,RAX/r}
64 | for X = [O, NO, B, C, NAE, NB, NC, AE, E, Z, NE, NZ, BE, NA, A, NBE, S, NS, PE, P, PO, NP, L, NGE, GE, NL, LE, NG, G, NLE] do
65 SET$(X){_B} CL {|RCX/rw,FLAGS/r}
66 SET$(X){_M8} <byte> [RAX] {|RAX/r,FLAGS/r}
69 MOVBE{_HM} CX,[RAX] {|RCX/rw,RAX/r}
70 MOVBE{_WM} ECX,[RAX] {|RCX/w,RAX/r}
71 64: MOVBE{_DM} RCX,[RAX] {|RCX/w,RAX/r}
72 MOVBE{_MH} [RAX],CX {|RCX/r,RAX/r}
73 MOVBE{_MW} [RAX],ECX {|RCX/r,RAX/r}
74 64: MOVBE{_MD} [RAX],RCX {|RCX/r,RAX/r}
75 MOVBE{_RM} RCX,[RAX] {|RCX/w,RAX/r}
76 MOVBE{_MR} [RAX],RCX {|RCX/r,RAX/r}