| ; Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| ; Use of this source code is governed by a BSD-style license that can be |
| ; found in the LICENSE file. |
| |
| ; This file is just a convenient place for experimenting with x86 encodings. |
| |
| BITS 32 |
| |
| ; sldt to detect which processor we are running on. |
| sldt eax |
| sidt [esp] |
| sidt [esp+2] |
| |
| lea eax, [fs:0] |
| |
| mov eax, [fs:0x18] |
| |
| mov ebx, 0x1234567 |
| mov eax, 0x1234567 |
| |
| rdtsc |
| |
| push eax |
| pop eax |
| |
| mov eax, [ecx] |
| mov eax, [esp+4] |
| mov ebx, [esp+4] |
| |
| lock xadd [eax], eax |
| lock xadd [ecx], ecx |
| lock xadd [ecx], eax |
| |
| jmp eax |
| jmp edx |
| |
| lodsd |
| |
| rep stosb |
| |
| rep movsb |
| |
| mov eax, ebx |
| mov edx, edx |
| |
| mov eax, eax |
| |
| stosd |
| |
| add eax, eax |
| add edi, ecx |
| |
| and eax, 0x0000ffff |
| and ecx, 0x0000ffff |
| and edx, 0x0000ffff |
| |
| add edi, 0x12345 |
| add eax, 0x12345 |
| add ecx, 0x12345 |
| |
| push 0x12 |
| push BYTE 0x12 |
| |
| mov eax, [ebp+8] |
| |
| mov eax, 0x1234 |
| mov [fs:0], eax |
| |
| call 0x1234 |
| |
| call eax |
| call ecx |
| |
| add ebx, BYTE 3 |
| or ecx, 0xffff |
| or eax, 0xffff |
| |
| mov eax, [esp+24] |
| |
| movsd |
| movsb |
| |
| jmp blah |
| blah: |
| jmp blah |
| |
| cmp eax, 0x1234567 |
| cmp ecx, 0x1234567 |
| je NEAR blah2 |
| jo NEAR blah2 |
| blah2: |
| |
| add esp, 12 |
| add esp, BYTE 12 |
| sub esp, BYTE 12 |
| |
| cmp eax, 12 |
| cmp ecx, BYTE 12 |
| |
| cmp WORD [esp+6], 0x6666 |
| |
| push DWORD [edi-4] |
| push DWORD [edi-8] |
| push DWORD [edi-12] |
| push DWORD [edi-16] |
| push DWORD [edi-20] |
| |
| x: |
| loop x |
| |
| mov edx, [fs:0x4] |
| |
| cmp ecx, ecx |
| cmp ecx, ebx |
| cmp ebx, ebx |
| |
| mov eax,[dword fs:0x24] |
| mov eax,[fs:0x24] |
| |
| mov ecx,[dword fs:0x24] |
| mov ecx,[fs:0x24] |
| |
| mov eax, [ebx+12] |
| mov ebx, [ebx+12] |
| |
| cmovo eax, eax |
| |
| mov eax, eax |
| |
| xchg eax, ebx |
| xchg ebx, ecx |
| xchg ebx, [esp+4] |