VirtualBox

source: vbox/trunk/src/VBox/Disassembler/DisasmTestA.asm@ 39656

Last change on this file since 39656 was 37955, checked in by vboxsync, 13 years ago

Moved VBox/x86.h/mac to iprt/x86.h/mac.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.0 KB
Line 
1; $Id: DisasmTestA.asm 37955 2011-07-14 12:23:02Z vboxsync $
2;; @file
3; VBox disassembler: Assembler test routines
4;
5
6;
7; Copyright (C) 2006-2010 Oracle Corporation
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License (GPL) as published by the Free Software
13; Foundation, in version 2 as it comes in the "COPYING" file of the
14; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17
18;*******************************************************************************
19;* Header Files *
20;*******************************************************************************
21%include "VBox/nasm.mac"
22%include "VBox/vmm/vm.mac"
23%include "VBox/err.mac"
24%include "VBox/vmm/stam.mac"
25%include "iprt/x86.mac"
26
27BITS 32
28
29BEGINCODE
30
31align 16
32BEGINPROC TestProc
33 xor eax, eax
34 mov al, 4
35 lea edx, [4]
36 mov edx, 4
37 mov eax, 4
38 shl eax, 4
39 shl edx, 4
40 shr edx, 4
41 mov eax, edx
42 mov eax, ecx
43 mov edx, eax
44 mov ecx, eax
45 DB 0xF0, 0x0F, 0x22, 0xC0
46 DB 0xF0, 0x0F, 0x20, 0xC0
47 smsw word [edx+16]
48; invept eax, qword [ecx]
49 DB 0x66, 0x0F, 0x38, 0x80, 0x1
50; invept eax, qword [ecx]
51 DB 0x66, 0x0F, 0x38, 0x81, 0x1
52 mov eax, dword [ecx]
53 mov word [edi], 0123ah
54 movzx eax,byte [edx]
55 movzx eax,word [edx]
56; mov dword es:[ebx + 1234h], 0789h
57; mov word fs:[ebx + ecx], 0654h
58; mov byte [esi + eax*4], 0654h
59; mov bl, byte ds:[ebp + 1234h]
60; mov al, cs:[1234h + ecx*8]
61; mov al, cs:[1234h]
62; mov ax, cs:[1234h]
63; mov eax, cs:[1234h]
64 lock cmpxchg [ecx], eax
65 lock cmpxchg [ecx], ax
66 lock cmpxchg [ecx], dl
67 movzx ESI,word [EAX]
68 in al, dx
69 in ax, dx
70 in eax, dx
71 mov ebx, [ecx + eax*4 + 17]
72 mov ebx, [ebp + eax*4 + 4]
73 mov ebx, [ebp + eax*4]
74 int 80h
75 in al, 60h
76 in ax, dx
77 out 64h, eax
78
79 movss xmm0, xmm1
80 movsd xmm6, xmm1
81
82 pause
83
84ENDPROC TestProc
85
86%ifndef RT_OS_OS2
87BITS 64
88align 16
89BEGINPROC TestProc64
90 mov cr8, rax
91 mov cr8, rbx
92 mov [0xfffe0080], rax
93 mov [0xfffe0080], rbx
94 mov rax, cr8
95 mov rbx, cr8
96 mov rax, [0xfffe0080]
97 mov rbx, [0xfffe0080]
98 divsd xmm1, xmm0
99 ; invept rdi, qword [rsi]
100 DB 0x66, 0x0F, 0x38, 0x80, 0x3E
101; invept rcx, qword [rdx]
102 DB 0x66, 0x0F, 0x38, 0x80, 0xA
103 ;invvpid rdi, qword [rsi]
104 DB 0x66, 0x0F, 0x38, 0x81, 0x3E
105; invvpid rcx, qword [rdx]
106 DB 0x66, 0x0F, 0x38, 0x81, 0xA
107 mov rdi, [rsi]
108 mov rcx, [rdx]
109 db 48h
110 db 0c7h
111 db 42h
112 db 18h
113 db 20h
114 db 3eh
115 db 23h
116 db 80h
117 call qword [r8+10h]
118 ; test
119 db 48h
120 db 8bh
121 db 44h
122 db 0ah
123 db 0f8h
124 ;incorrectly assembled by yasm; REX.W should not be added!
125 ;test rax, dword 0cc90cc90h
126 db 8bh
127 db 04h
128 db 8dh
129 db 00h
130 db 00h
131 db 0feh
132 db 0ffh
133 mov qword [rcx+rdx], 0
134 mov dword [rcx+rdx], 0
135 and [r15], rax
136 movzx rcx, sil
137 and sil, 3
138 movzx ecx, ah
139 and ah, 3
140
141 sub rcx, 1234h
142 mov rax, qword [0cc90cc90h]
143 mov rax, qword [00c90cc90h]
144 mov rax, dword 0cc90cc90h
145 mov rax, qword 0ffffcc90cc90h
146
147 movzx rax,byte [edx]
148 movzx rax,word [edx]
149 movzx rax,byte [rdx]
150 lock cmpxchg [rcx], rax
151 lock cmpxchg [rcx], ax
152 lock cmpxchg [r15], dl
153 movzx RSI, word [R8]
154 in al, dx
155 in ax, dx
156 in eax, dx
157 mov rbx, [rcx + rax*4 + 17]
158 mov rbx, [rbp + rax*4 + 4]
159 mov rbx, [rbp + rax*4]
160 mov rbx, [ebp + eax*4]
161 int 80h
162 in al, 60h
163 in ax, dx
164 out 64h, eax
165
166 movss xmm0, xmm14
167 movsd xmm6, xmm1
168
169 ret
170ENDPROC TestProc64
171%endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette