Cross Reference: test-i386-code16.S
xref
: /
vbox
/
src
/
recompiler
/
tests
/
test-i386-code16.S
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
.
code16
.
globl
code16_start
.
globl
code16_end
CS_SEG
=
0xf
code16_start
:
.
globl
code16_func1
/* basic test */
code16_func1
= . -
code16_start
mov
$
1
, %
eax
data32
lret
/* test
push
/
pop
in 16 bit mode */
.
globl
code16_func2
code16_func2
= . -
code16_start
xor
%
eax
, %
eax
mov
$
0x12345678
, %
ebx
movl
%
esp
, %
ecx
push
%
bx
subl
%
esp
, %
ecx
pop
%
ax
data32
lret
/* test various jmp opcodes */
.
globl
code16_func3
code16_func3
= . -
code16_start
jmp
1f
nop
1
:
mov
$
4
, %
eax
mov
$
0x12345678
, %
ebx
xor
%
bx
, %
bx
jz
2f
add
$
2
, %
ax
2
:
call
myfunc
lcall
$
CS_SEG
, $(
myfunc2
-
code16_start
)
ljmp
$
CS_SEG
, $(
myjmp1
-
code16_start
)
myjmp1_next
:
cs
lcall
*
myfunc2_addr
-
code16_start
cs
ljmp
*
myjmp2_addr
-
code16_start
myjmp2_next
:
data32
lret
myfunc2_addr
:
.
short
myfunc2
-
code16_start
.
short
CS_SEG
myjmp2_addr
:
.
short
myjmp2
-
code16_start
.
short
CS_SEG
myjmp1
:
add
$
8
, %
ax
jmp
myjmp1_next
myjmp2
:
add
$
16
, %
ax
jmp
myjmp2_next
myfunc
:
add
$
1
, %
ax
ret
myfunc2
:
add
$
4
, %
ax
lret
code16_end
: