SHARE
TWEET

Untitled

cfrantz Nov 19th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ## Added 'import' and module support:
  2.  
  3.  
  4. cfrantz@bunk:~/src/lang/df$ cat hello2.df
  5.  
  6. import stdio;
  7.  
  8. // Program entry at main
  9. main() -> int32 {
  10.     stdio::printf("Hello World\n");
  11.     return 0;
  12. }
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. cfrantz@bunk:~/src/lang/df$ cat hello2.s
  20.  
  21. SECTION .data
  22. str_2:
  23.         DB         72,101,108,108,111,32,87,111,114,108,100,10,0
  24. SECTION .text
  25. ;
  26. ; hello2.df:0: import stdio;
  27. ;
  28. ;
  29. ; builtin/stdio.df:2: printf: extern __magic__("alias:printf") (format: &uint8, ...) -> int32;
  30. ;
  31. %define stdio$printf printf
  32. EXTERN printf
  33. ;
  34. ; hello2.df:3: main() -> int32 {
  35. ;
  36. GLOBAL main
  37. main:
  38.         PUSH       ebp
  39.         MOV        ebp, esp
  40.         AND        esp, -16
  41.         SUB        esp, 32
  42.         MOV        [ebp-4], ebx
  43.         MOV        [ebp-8], esi
  44.         MOV        [ebp-12], edi
  45. ;
  46. ; hello2.df:4:     stdio::printf("Hello World\n");
  47. ;
  48.         MOV        eax, str_2
  49.         MOV        [esp+0], eax
  50.         CALL       stdio$printf
  51. ;
  52. ; hello2.df:5:     return 0;
  53. ;
  54.         MOV        eax, 0
  55. fnexit_main_1:
  56.         MOV        ebx, [ebp-4]
  57.         MOV        esi, [ebp-8]
  58.         MOV        edi, [ebp-12]
  59.         MOV        esp, ebp
  60.         POP        ebp
  61.         RET
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top