VirtualBox

source: vbox/trunk/src/recompiler_new/tests/test-i386-code16.S@ 16254

Last change on this file since 16254 was 2426, checked in by vboxsync, 18 years ago

Removed the old recompiler code. (wonder why subversion didn't pick up these changes right way)

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1 .code16
2 .globl code16_start
3 .globl code16_end
4
5CS_SEG = 0xf
6
7code16_start:
8
9 .globl code16_func1
10
11 /* basic test */
12code16_func1 = . - code16_start
13 mov $1, %eax
14 data32 lret
15
16/* test push/pop in 16 bit mode */
17 .globl code16_func2
18code16_func2 = . - code16_start
19 xor %eax, %eax
20 mov $0x12345678, %ebx
21 movl %esp, %ecx
22 push %bx
23 subl %esp, %ecx
24 pop %ax
25 data32 lret
26
27/* test various jmp opcodes */
28 .globl code16_func3
29code16_func3 = . - code16_start
30 jmp 1f
31 nop
321:
33 mov $4, %eax
34 mov $0x12345678, %ebx
35 xor %bx, %bx
36 jz 2f
37 add $2, %ax
382:
39
40 call myfunc
41
42 lcall $CS_SEG, $(myfunc2 - code16_start)
43
44 ljmp $CS_SEG, $(myjmp1 - code16_start)
45myjmp1_next:
46
47 cs lcall myfunc2_addr - code16_start
48
49 cs ljmp myjmp2_addr - code16_start
50myjmp2_next:
51
52 data32 lret
53
54myfunc2_addr:
55 .short myfunc2 - code16_start
56 .short CS_SEG
57
58myjmp2_addr:
59 .short myjmp2 - code16_start
60 .short CS_SEG
61
62myjmp1:
63 add $8, %ax
64 jmp myjmp1_next
65
66myjmp2:
67 add $16, %ax
68 jmp myjmp2_next
69
70myfunc:
71 add $1, %ax
72 ret
73
74myfunc2:
75 add $4, %ax
76 lret
77
78
79code16_end:
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