rdftest1.asm
上传用户:yuppie_zhu
上传日期:2007-01-08
资源大小:535k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

C/C++

  1. ;; program to test RDOFF production and linkage
  2. ;; items to test include:
  3. ;; [1] relocation within the same segment in each module
  4. ;; [2] relocation to different segments in same module
  5. ;; [3] relocation to same segment in different module
  6. ;; [4] relocation to different segment in different module
  7. ;; [5] relative relocation to same module
  8. ;; [6] relative relocation to different module
  9. ;; [7] correct generation of BSS addresses
  10. [SECTION .text]
  11. [BITS 32]
  12. _main:
  13. mov ax,localdata ; [2] (16 bit) => 66 b8 0000
  14. mov eax,localdata2 ; [2] (32 bit) => b8 0000000a
  15. [EXTERN _fardata]
  16. mov eax,[_fardata] ; [4] => a1 00000000 (+20)
  17. mov cx,next ; [1] => 66 b9 0012
  18. next:
  19. call localproc ; [5] => e8 00000019
  20. [EXTERN _farproc]
  21. mov eax,_farproc ; [3] => b8 00000000 (+40+0)
  22. call _farproc ; [6] => e8 -$ (-0+40+0) (=1f)
  23. mov eax,localbss ; [7] => b8 00000000
  24. [GLOBAL _term]
  25. _term: xor ax,ax ; => 66 31 c0
  26. int 21h ; => cd 21
  27. jmp _term ; => e9 -0a (=fffffff6)
  28. localproc:
  29. ret ; => c3
  30. [GLOBAL _test1proc]
  31. _test1proc:
  32. call localproc ; [5] => e8 -$ (-0+0+?) (=-6=fffffffa)
  33. ret ; => c3
  34. [SECTION .data]
  35. [GLOBAL localdata2]
  36. localdata: db 'localdata',0
  37. localdata2: db 'localdata2',0
  38. farref: dd _fardata ; [3] => 0 (+20)
  39. localref: dd _main ; [2] => 0 (+0)
  40. [SECTION .bss]
  41. localbss: resw 4 ; reserve 8 bytes BSS