133 lines
1.5 KiB
NASM
133 lines
1.5 KiB
NASM
; 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]
|