VirtualBox

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

Last change on this file since 29676 was 28800, checked in by vboxsync, 15 years ago

Automated rebranding to Oracle copyright/license strings via filemuncher

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