File: intelok.s

package info (click to toggle)
binutils 2.17-3%2Betch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 113,888 kB
  • ctags: 124,514
  • sloc: ansic: 839,382; asm: 272,634; exp: 47,779; makefile: 44,950; sh: 17,107; yacc: 9,818; lisp: 8,739; lex: 2,082; perl: 1,401; cpp: 1,336; sed: 306; pascal: 175; awk: 26
file content (194 lines) | stat: -rw-r--r-- 3,919 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
	.intel_syntax noprefix
	.equiv byte, 1
	.equiv word, 2
	.equiv dword, 4
	.equiv fword, 6
	.equiv qword, 8
	.equiv tbyte, 10
	.equiv oword, 16
	.equiv xmmword, 16
	.text
start:

	# operand sizes

	add	al, [eax]
	add	al, byte ptr [eax]
	add	ax, [eax]
	add	ax, word ptr [eax]
	add	eax, [eax]
	add	eax, dword ptr [eax]
	add	byte ptr [eax], 1
	add	dword ptr [eax], 1
	add	word ptr [eax], 1
	addpd	xmm0, [eax]
	addpd	xmm0, xmmword ptr [eax]
	addps	xmm0, [eax]
	addps	xmm0, xmmword ptr [eax]
	addsd	xmm0, [eax]
	addsd	xmm0, qword ptr [eax]
	addss	xmm0, [eax]
	addss	xmm0, dword ptr [eax]
	call	word ptr [eax]
	call	dword ptr [eax]
	call	fword ptr [eax]
	cmps	[esi], byte ptr es:[edi]
	cmps	dword ptr [esi], es:[edi]
	cmps	word ptr [esi], word ptr es:[edi]
	cmpxchg8b qword ptr [eax]
	fadd	dword ptr [eax]
	fadd	qword ptr [eax]
	fbld	[eax]
	fbld	tbyte ptr [eax]
	fbstp	[eax]
	fbstp	tbyte ptr [eax]
	fiadd	dword ptr [eax]
	fiadd	word ptr [eax]
	fild	dword ptr [eax]
	fild	qword ptr [eax]
	fild	word ptr [eax]
	fist	dword ptr [eax]
	fist	word ptr [eax]
	fistp	dword ptr [eax]
	fistp	qword ptr [eax]
	fistp	word ptr [eax]
	fisttp	dword ptr [eax]
	fisttp	qword ptr [eax]
	fisttp	word ptr [eax]
	fld	dword ptr [eax]
	fld	qword ptr [eax]
	fld	tbyte ptr [eax]
	fldcw	[eax]
	fldcw	word ptr [eax]
	fldenv	[eax]
	fldenvd	[eax]
	fldenvw	[eax]
	fst	dword ptr [eax]
	fst	qword ptr [eax]
	fstp	dword ptr [eax]
	fstp	qword ptr [eax]
	fstp	tbyte ptr [eax]
	lds	ax, [eax]
	lds	eax, [eax]
	lds	ax, dword ptr [eax]
	lds	eax, fword ptr [eax]
	lea	eax, [eax]
	lea	eax, byte ptr [eax]
	lea	eax, dword ptr [eax]
	lea	eax, fword ptr [eax]
	lea	eax, qword ptr [eax]
	lea	eax, tbyte ptr [eax]
	lea	eax, word ptr [eax]
	lea	eax, xmmword ptr [eax]
	lgdt	[eax]
	lgdtd	[eax]
	lgdtw	[eax]
	movs	es:[edi], byte ptr [esi]
	movs	dword ptr es:[edi], [esi]
	movs	word ptr es:[edi], word ptr [esi]
	movsx	eax, byte ptr [eax]
	movsx	eax, word ptr [eax]
	paddb	mm0, [eax]
	paddb	mm0, qword ptr [eax]
	paddb	xmm0, [eax]
	paddb	xmm0, xmmword ptr [eax]
	pinsrw	mm0, word ptr [eax], 3
	pinsrw	xmm0, word ptr [eax], 7
	push	dword ptr [eax]
	xlat	[ebx]
	xlat	byte ptr [ebx]
	xlatb

	# memory operands

	mov	eax, dword ptr [byte+eax]
	mov	eax, dword ptr byte[eax]
	mov	eax, [dword+eax]
	mov	eax, dword[eax]
	mov	eax, [fword+eax]
	mov	eax, fword[eax]
	mov	eax, [qword+eax+dword]
	mov	eax, qword[eax+dword]
	mov	eax, [tbyte+eax+dword*2]
	mov	eax, tbyte[eax+dword*2]
	mov	eax, [word+eax*dword]
	mov	eax, word[eax*dword]

	mov	eax, [eax*+2]
	mov	eax, [+2*eax]
	mov	eax, [ecx*dword]
	mov	eax, [dword*ecx]
	mov	eax, 1[eax]
	mov	eax, [eax]+1
	mov	eax, [eax - 5 + ecx]
	mov	eax, [eax + 5 and 3 + ecx]
	mov	eax, [eax + 5*3 + ecx]
	mov	eax, [oword][eax]
	mov	eax, [eax][oword]
	mov	eax, xmmword[eax][ecx]
	mov	eax, [eax]+1[ecx]
	mov	eax, [eax][ecx]+1
	mov	eax, [1][eax][ecx]
	mov	eax, [eax][1][ecx]
	mov	eax, [eax][ecx][1]
	mov	eax, [[eax]]
	mov	eax, [eax[ecx]]
	mov	eax, [[eax][ecx]]
	mov	eax, es:[eax]

	# expressions

	push	+ 1
	push	- 1
	push	not 1
	push	1 + 1
	push	2 - 1
	push	2 * 2
	push	3 / 2
	push	3 mod 2
	push	4 shl 1
	push	5 shr 2
	push	6 and 3
	push	7 xor 4
	push	8 or 5

	push	+dword
	push	-dword
	push	not dword
	push	not +dword
	push	not -dword
	push	not not dword

	# offset expressions

	mov	eax, offset x
	mov	eax, offset flat:x
	mov	eax, flat:x
	mov	eax, offset [x]
	mov	eax, offset flat:[x]
	mov	eax, flat:[x]
	mov	eax, [offset x]
	mov	eax, [eax + offset x]
	mov	eax, [eax + offset 1]
	mov	eax, [offset x + eax]
	mov	eax, offset x+1[eax]
	mov	eax, [eax] + offset x
	mov	eax, [eax] + offset 1
	mov	eax, offset x + [1]
	mov	eax, [offset x] - [1]
	mov	eax, offset x + es:[2]
	mov	eax, offset x + offset es:[3]
	mov	eax, [4] + offset x
	mov	eax, [5] + [offset x]
	mov	eax, ss:[6] + offset x
	mov	eax, ss:[7] + [offset x]
	mov	eax, dword ptr [8]

	# other operands
	call	3:5
	jmp	5:3
	call	dword ptr xtrn
	jmp	word ptr xtrn

	# Force a good alignment.
	.p2align	4,0