VirtualBox

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

Last change on this file since 12768 was 11464, checked in by vboxsync, 16 years ago

Iz means sign extend to 64 bits, not zero extend.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1;
2; VBox disassembler:
3; Assembler test routines
4
5;
6; Copyright (C) 2006-2007 Sun Microsystems, Inc.
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; Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
17; Clara, CA 95054 USA or visit http://www.sun.com if you need
18; additional information or have any questions.
19;
20
21;*******************************************************************************
22;* Header Files *
23;*******************************************************************************
24%include "VBox/nasm.mac"
25%include "VBox/vm.mac"
26%include "VBox/err.mac"
27%include "VBox/stam.mac"
28%include "VBox/x86.mac"
29
30BITS 32
31
32BEGINCODE
33
34align 16
35BEGINPROC TestProc
36 mov word [edi], 0123ah
37 movzx eax,byte [edx]
38 movzx eax,word [edx]
39; mov dword es:[ebx + 1234h], 0789h
40; mov word fs:[ebx + ecx], 0654h
41; mov byte [esi + eax*4], 0654h
42; mov bl, byte ds:[ebp + 1234h]
43; mov al, cs:[1234h + ecx*8]
44; mov al, cs:[1234h]
45; mov ax, cs:[1234h]
46; mov eax, cs:[1234h]
47 lock cmpxchg [ecx], eax
48 lock cmpxchg [ecx], ax
49 lock cmpxchg [ecx], dl
50 movzx ESI,word [EAX]
51 in al, dx
52 in ax, dx
53 in eax, dx
54 mov ebx, [ecx + eax*4 + 17]
55 mov ebx, [ebp + eax*4 + 4]
56 mov ebx, [ebp + eax*4]
57 int 80h
58 in al, 60h
59 in ax, dx
60 out 64h, eax
61
62 movss xmm0, xmm1
63 movsd xmm6, xmm1
64
65 pause
66
67ENDPROC TestProc
68
69%ifndef RT_OS_OS2
70BITS 64
71align 16
72BEGINPROC TestProc64
73 db 48h
74 db 0c7h
75 db 42h
76 db 18h
77 db 20h
78 db 3eh
79 db 23h
80 db 80h
81 call qword [r8+10h]
82 ; test
83 db 48h
84 db 8bh
85 db 44h
86 db 0ah
87 db 0f8h
88 ;incorrectly assembled by yasm; REX.W should not be added!
89 ;test rax, dword 0cc90cc90h
90 db 8bh
91 db 04h
92 db 8dh
93 db 00h
94 db 00h
95 db 0feh
96 db 0ffh
97 mov qword [rcx+rdx], 0
98 mov dword [rcx+rdx], 0
99 and [r15], rax
100 movzx rcx, sil
101 and sil, 3
102 movzx ecx, ah
103 and ah, 3
104
105 sub rcx, 1234h
106 mov rax, qword [0cc90cc90h]
107 mov rax, qword [00c90cc90h]
108 mov rax, dword 0cc90cc90h
109 mov rax, qword 0ffffcc90cc90h
110
111 movzx rax,byte [edx]
112 movzx rax,word [edx]
113 movzx rax,byte [rdx]
114 lock cmpxchg [rcx], rax
115 lock cmpxchg [rcx], ax
116 lock cmpxchg [r15], dl
117 movzx RSI, word [R8]
118 in al, dx
119 in ax, dx
120 in eax, dx
121 mov rbx, [rcx + rax*4 + 17]
122 mov rbx, [rbp + rax*4 + 4]
123 mov rbx, [rbp + rax*4]
124 mov rbx, [ebp + eax*4]
125 int 80h
126 in al, 60h
127 in ax, dx
128 out 64h, eax
129
130 movss xmm0, xmm14
131 movsd xmm6, xmm1
132
133 ret
134ENDPROC TestProc64
135%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