diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/pcrel.asm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/pcrel.asm b/test/pcrel.asm new file mode 100644 index 00000000..239e8cb8 --- /dev/null +++ b/test/pcrel.asm @@ -0,0 +1,50 @@ + bits 32 +foo: ; Backwards reference + mov eax,[foo - $] + mov ebx,[ebx + foo - $] + mov ecx,foo - $ + mov edx,foo - bar + + mov eax,[bar - $] + mov ebx,[ebx + bar - $] + mov ecx,bar - $ + mov edx,bar - foo + + mov eax,[baz - $] + mov ebx,[ebx + baz - $] + mov esi,[baz - bar] + mov ecx,baz - $ + mov edx,baz - bar + + bits 64 + default rel + + mov eax,[foo] + mov eax,[foo - $] + mov eax,[abs foo - $] + mov ebx,[ebx + foo - $] + mov ecx,foo - $ + mov edx,foo - bar + + mov eax,[bar] + mov eax,[bar - $] + mov eax,[abs bar - $] + mov ebx,[ebx + bar - $] + mov ecx,bar - $ + mov edx,bar - foo + + mov eax,[baz] + mov eax,[baz - $] + mov eax,[abs baz - $] + mov ebx,[ebx + baz - $] + mov esi,[baz - bar] + mov esi,[abs baz - bar] + mov ecx,baz - $ + mov edx,baz - bar + +bar: ; Forwards reference + hlt + + section ".data" +baz: ; Other-segment reference + dd 0 |