Advertisement
Guest User

Untitled

a guest
Mar 11th, 2024
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;  --- This is autogenerated on 202403-1450184693 from dontknow.frt ----
  2.  
  3. assign    r14    esp        ; Return stack pointer
  4. assign    r11    stack      ; Data stack
  5.  
  6. $second    equ    1         ; Second element
  7.  
  8. function crt0
  9.     load    stack, 0x8000; ��������� ������� �����
  10.     load    esp,   0x7000; ��������� ������� �����
  11.     call    _main
  12.     send
  13. end
  14.  
  15.   include    lib/asm/tty/tty.asm
  16.   include    lib/asm/tty/print_dec.asm
  17.   include    lib/asm/emulate/mul.asm
  18.  
  19. ; --- WORD [0] = :
  20. function cr
  21.     dec   esp, 4
  22.     mov   (esp), r15
  23. ; --- WORD [1] = ^push
  24.     load    r6, 10
  25.     dec    stack, 4
  26.     mov    (stack), r6
  27. ; --- WORD [2] = emit
  28.     mov    r3, (stack)
  29.     inc    stack, 4
  30.     call   _putchar
  31. ; --- WORD [3] = ;
  32.     mov   r15, (esp)
  33.     inc   esp, 4
  34.     return
  35. end
  36.  
  37. ; --- WORD [4] = :
  38. function cells
  39.     dec   esp, 4
  40.     mov   (esp), r15
  41. ; --- WORD [5] = ^push
  42.     load    r6, 4
  43.     dec    stack, 4
  44.     mov    (stack), r6
  45. ; --- WORD [6] = *
  46.     mov    r1, (stack)
  47.     inc    stack, 4
  48.     mov    r2, (stack)
  49.     call   _mul
  50.     mov    (stack), r0
  51. ; --- WORD [7] = ;
  52.     mov   r15, (esp)
  53.     inc   esp, 4
  54.     return
  55. end
  56.  
  57. ; --- WORD [8] = :
  58. function ?
  59.     dec   esp, 4
  60.     mov   (esp), r15
  61. ; --- WORD [9] = @
  62.     mov    r6, (stack)
  63.     mov    r5, (r6)
  64.     mov    (stack), r5
  65. ; --- WORD [10] = .
  66.     mov    r0, (stack)
  67.     load   r3, 0x80000000
  68.     and   r3, r0
  69.     je    label_print_1
  70.     neg    r0
  71.     mov    (stack), r0
  72.     load   r3, 45 ; '-'
  73.     call   _putchar
  74.     mov    r0, (stack)
  75. label_print_1:
  76.     call   _print_dec
  77.     load   r3, 32
  78.     call   _putchar
  79.     inc    stack, 4
  80. ; --- WORD [11] = ;
  81.     mov   r15, (esp)
  82.     inc   esp, 4
  83.     return
  84. end
  85.  
  86. ; --- WORD [12] = :
  87. function print_number
  88.     dec   esp, 4
  89.     mov   (esp), r15
  90. ; --- WORD [13] = .
  91.     mov    r0, (stack)
  92.     load   r3, 0x80000000
  93.     and   r3, r0
  94.     je    label_print_2
  95.     neg    r0
  96.     mov    (stack), r0
  97.     load   r3, 45 ; '-'
  98.     call   _putchar
  99.     mov    r0, (stack)
  100. label_print_2:
  101.     call   _print_dec
  102.     load   r3, 32
  103.     call   _putchar
  104.     inc    stack, 4
  105. ; --- WORD [14] = ^push
  106.     load    r6, 32
  107.     dec    stack, 4
  108.     mov    (stack), r6
  109. ; --- WORD [15] = emit
  110.     mov    r3, (stack)
  111.     inc    stack, 4
  112.     call   _putchar
  113. ; --- WORD [16] = ;
  114.     mov   r15, (esp)
  115.     inc   esp, 4
  116.     return
  117. end
  118.  
  119. ; --- WORD [17] = :
  120. function info
  121.     dec   esp, 4
  122.     mov   (esp), r15
  123. ; --- WORD [18] = dup
  124.     mov    r6, (stack)
  125.     dec    stack, 4
  126.     mov    (stack), r6
  127. ; --- WORD [19] = ^push
  128.     load    r6, 0
  129.     dec    stack, 4
  130.     mov    (stack), r6
  131. ; --- WORD [20] = =
  132.     mov    r6, (stack)
  133.     inc    stack, 4
  134.     xor    r0, r0
  135.     cmp    r6, (stack)
  136.     jnz    notsame_3
  137.     load   r0, -1
  138. notsame_3:
  139.     mov    (stack), r0
  140. ; --- WORD [21] = if
  141.     mov    r0, (stack)
  142.     inc    stack, 4
  143.     or    r0, r0
  144.     jz    nottrue_50
  145. ; --- WORD [22] = ."
  146.     lea   r1, $textline_1
  147.     call   _puts
  148. ; --- WORD [23] = drop
  149.     inc    stack, 4
  150. ; --- WORD [24] = drop
  151.     inc    stack, 4
  152. ; --- WORD [25] = ^jump
  153.     jmp    label_69
  154. nottrue_50:
  155. ; --- WORD [26] = /mod
  156.     mov    r2, (stack)
  157.     inc    stack, 4
  158.     mov    r0, (stack)
  159.     call   _div
  160.     mov    (stack), r2
  161.     dec    stack, 4
  162.     mov    (stack), r0
  163. ; --- WORD [27] = ."
  164.     lea   r1, $textline_2
  165.     call   _puts
  166. ; --- WORD [28]
  167.     call    print_number
  168. ; --- WORD [29] = ."
  169.     lea   r1, $textline_3
  170.     call   _puts
  171. ; --- WORD [30]
  172.     call    print_number
  173. label_69:
  174. ; --- WORD [31]
  175.     call    cr
  176. ; --- WORD [32] = ;
  177.     mov   r15, (esp)
  178.     inc   esp, 4
  179.     return
  180. end
  181.  
  182. ; --- WORD [33] = :
  183. function _main
  184.     dec   esp, 4
  185.     mov   (esp), r15
  186. ; --- WORD [34] = ."
  187.     lea   r1, $textline_4
  188.     call   _puts
  189. ; --- WORD [35] = ^push
  190.     load    r6, 7
  191.     dec    stack, 4
  192.     mov    (stack), r6
  193. ; --- WORD [36] = ^push
  194.     load    r6, 2
  195.     dec    stack, 4
  196.     mov    (stack), r6
  197. ; --- WORD [37]
  198.     call    info
  199. ; --- WORD [38] = ."
  200.     lea   r1, $textline_5
  201.     call   _puts
  202. ; --- WORD [39] = ^push
  203.     load    r6, 7
  204.     dec    stack, 4
  205.     mov    (stack), r6
  206. ; --- WORD [40] = ^push
  207.     load    r6, 0
  208.     dec    stack, 4
  209.     mov    (stack), r6
  210. ; --- WORD [41]
  211.     call    info
  212. ; --- WORD [42] = ."
  213.     lea   r1, $textline_6
  214.     call   _puts
  215. ; --- WORD [43] = ^push
  216.     load    r6, 16
  217.     dec    stack, 4
  218.     mov    (stack), r6
  219. ; --- WORD [44] = ^push
  220.     load    r6, 5
  221.     dec    stack, 4
  222.     mov    (stack), r6
  223. ; --- WORD [45]
  224.     call    info
  225. ; --- WORD [46] = ."
  226.     lea   r1, $textline_7
  227.     call   _puts
  228. ; --- WORD [47] = ^push
  229.     load    r6, 9
  230.     dec    stack, 4
  231.     mov    (stack), r6
  232. ; --- WORD [48] = ^push
  233.     load    r6, 7
  234.     dec    stack, 4
  235.     mov    (stack), r6
  236. ; --- WORD [49]
  237.     call    info
  238. ; --- WORD [50] = ."
  239.     lea   r1, $textline_8
  240.     call   _puts
  241. ; --- WORD [51] = ^push
  242.     load    r6, 133
  243.     dec    stack, 4
  244.     mov    (stack), r6
  245. ; --- WORD [52] = ^push
  246.     load    r6, 5
  247.     dec    stack, 4
  248.     mov    (stack), r6
  249. ; --- WORD [53]
  250.     call    info
  251. ; --- WORD [54] = ;
  252.     mov   r15, (esp)
  253.     inc   esp, 4
  254.     return
  255. end
  256.  
  257. $textline_1 db  'Делить на ноль нельзя!', 0
  258. $textline_2 db  'Частное ', 0
  259. $textline_3 db  'Остаток ', 0
  260. $textline_4 db  '7 / 2 = ', 0
  261. $textline_5 db  '7 / 0 = ', 0
  262. $textline_6 db  '16 / 5 = ', 0
  263. $textline_7 db  '9 / 7 = ', 0
  264. $textline_8 db  '133 / 5 = ', 0
  265.  
  266.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement