Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; --- This is autogenerated on 202403-1450184693 from dontknow.frt ----
- assign r14 esp ; Return stack pointer
- assign r11 stack ; Data stack
- $second equ 1 ; Second element
- function crt0
- load stack, 0x8000; ��������� ������� �����
- load esp, 0x7000; ��������� ������� �����
- call _main
- send
- end
- include lib/asm/tty/tty.asm
- include lib/asm/tty/print_dec.asm
- include lib/asm/emulate/mul.asm
- ; --- WORD [0] = :
- function cr
- dec esp, 4
- mov (esp), r15
- ; --- WORD [1] = ^push
- load r6, 10
- dec stack, 4
- mov (stack), r6
- ; --- WORD [2] = emit
- mov r3, (stack)
- inc stack, 4
- call _putchar
- ; --- WORD [3] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- ; --- WORD [4] = :
- function cells
- dec esp, 4
- mov (esp), r15
- ; --- WORD [5] = ^push
- load r6, 4
- dec stack, 4
- mov (stack), r6
- ; --- WORD [6] = *
- mov r1, (stack)
- inc stack, 4
- mov r2, (stack)
- call _mul
- mov (stack), r0
- ; --- WORD [7] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- ; --- WORD [8] = :
- function ?
- dec esp, 4
- mov (esp), r15
- ; --- WORD [9] = @
- mov r6, (stack)
- mov r5, (r6)
- mov (stack), r5
- ; --- WORD [10] = .
- mov r0, (stack)
- load r3, 0x80000000
- and r3, r0
- je label_print_1
- neg r0
- mov (stack), r0
- load r3, 45 ; '-'
- call _putchar
- mov r0, (stack)
- label_print_1:
- call _print_dec
- load r3, 32
- call _putchar
- inc stack, 4
- ; --- WORD [11] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- ; --- WORD [12] = :
- function print_number
- dec esp, 4
- mov (esp), r15
- ; --- WORD [13] = .
- mov r0, (stack)
- load r3, 0x80000000
- and r3, r0
- je label_print_2
- neg r0
- mov (stack), r0
- load r3, 45 ; '-'
- call _putchar
- mov r0, (stack)
- label_print_2:
- call _print_dec
- load r3, 32
- call _putchar
- inc stack, 4
- ; --- WORD [14] = ^push
- load r6, 32
- dec stack, 4
- mov (stack), r6
- ; --- WORD [15] = emit
- mov r3, (stack)
- inc stack, 4
- call _putchar
- ; --- WORD [16] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- ; --- WORD [17] = :
- function info
- dec esp, 4
- mov (esp), r15
- ; --- WORD [18] = dup
- mov r6, (stack)
- dec stack, 4
- mov (stack), r6
- ; --- WORD [19] = ^push
- load r6, 0
- dec stack, 4
- mov (stack), r6
- ; --- WORD [20] = =
- mov r6, (stack)
- inc stack, 4
- xor r0, r0
- cmp r6, (stack)
- jnz notsame_3
- load r0, -1
- notsame_3:
- mov (stack), r0
- ; --- WORD [21] = if
- mov r0, (stack)
- inc stack, 4
- or r0, r0
- jz nottrue_50
- ; --- WORD [22] = ."
- lea r1, $textline_1
- call _puts
- ; --- WORD [23] = drop
- inc stack, 4
- ; --- WORD [24] = drop
- inc stack, 4
- ; --- WORD [25] = ^jump
- jmp label_69
- nottrue_50:
- ; --- WORD [26] = /mod
- mov r2, (stack)
- inc stack, 4
- mov r0, (stack)
- call _div
- mov (stack), r2
- dec stack, 4
- mov (stack), r0
- ; --- WORD [27] = ."
- lea r1, $textline_2
- call _puts
- ; --- WORD [28]
- call print_number
- ; --- WORD [29] = ."
- lea r1, $textline_3
- call _puts
- ; --- WORD [30]
- call print_number
- label_69:
- ; --- WORD [31]
- call cr
- ; --- WORD [32] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- ; --- WORD [33] = :
- function _main
- dec esp, 4
- mov (esp), r15
- ; --- WORD [34] = ."
- lea r1, $textline_4
- call _puts
- ; --- WORD [35] = ^push
- load r6, 7
- dec stack, 4
- mov (stack), r6
- ; --- WORD [36] = ^push
- load r6, 2
- dec stack, 4
- mov (stack), r6
- ; --- WORD [37]
- call info
- ; --- WORD [38] = ."
- lea r1, $textline_5
- call _puts
- ; --- WORD [39] = ^push
- load r6, 7
- dec stack, 4
- mov (stack), r6
- ; --- WORD [40] = ^push
- load r6, 0
- dec stack, 4
- mov (stack), r6
- ; --- WORD [41]
- call info
- ; --- WORD [42] = ."
- lea r1, $textline_6
- call _puts
- ; --- WORD [43] = ^push
- load r6, 16
- dec stack, 4
- mov (stack), r6
- ; --- WORD [44] = ^push
- load r6, 5
- dec stack, 4
- mov (stack), r6
- ; --- WORD [45]
- call info
- ; --- WORD [46] = ."
- lea r1, $textline_7
- call _puts
- ; --- WORD [47] = ^push
- load r6, 9
- dec stack, 4
- mov (stack), r6
- ; --- WORD [48] = ^push
- load r6, 7
- dec stack, 4
- mov (stack), r6
- ; --- WORD [49]
- call info
- ; --- WORD [50] = ."
- lea r1, $textline_8
- call _puts
- ; --- WORD [51] = ^push
- load r6, 133
- dec stack, 4
- mov (stack), r6
- ; --- WORD [52] = ^push
- load r6, 5
- dec stack, 4
- mov (stack), r6
- ; --- WORD [53]
- call info
- ; --- WORD [54] = ;
- mov r15, (esp)
- inc esp, 4
- return
- end
- $textline_1 db 'Делить на ноль нельзя!', 0
- $textline_2 db 'Частное ', 0
- $textline_3 db 'Остаток ', 0
- $textline_4 db '7 / 2 = ', 0
- $textline_5 db '7 / 0 = ', 0
- $textline_6 db '16 / 5 = ', 0
- $textline_7 db '9 / 7 = ', 0
- $textline_8 db '133 / 5 = ', 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement