Advertisement
Guest User

Untitled

a guest
Aug 31st, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 3.68 KB | None | 0 0
  1.     .file   "Termin5Aufgabe1.c"
  2.     .global max
  3.     .data
  4.     .align  2
  5.     .type   max, %object
  6.     .size   max, 4
  7. max:
  8.     .word   12
  9.     .section    .rodata
  10.     .align  2
  11. .LC0:
  12.     .ascii  "0\000"
  13.     .text
  14.     .align  2
  15.     .global toString
  16.     .type   toString, %function
  17. toString:
  18.     @ args = 0, pretend = 0, frame = 32
  19.     @ frame_needed = 1, uses_anonymous_args = 0
  20.     stmfd   sp!, {r4, r5, r6, r7, r8, sl, fp, lr}
  21.     add fp, sp, #28
  22.     sub sp, sp, #32
  23.     str r0, [fp, #-60]
  24.     mov r0, sp
  25.     mov sl, r0
  26.     ldr r0, .L11
  27.     ldr r0, [r0, #0]
  28.     sub ip, r0, #1
  29.     str ip, [fp, #-56]
  30.     mov ip, r0
  31.     mov r5, ip
  32.     mov r6, #0
  33.     mvn r7, #0
  34.     mov r8, #15
  35.     and r5, r5, r7
  36.     and r6, r6, r8
  37.     mov ip, r5, lsr #29
  38.     mov r2, r6, asl #3
  39.     orr r2, ip, r2
  40.     mov r1, r5, asl #3
  41.     mvn r5, #0
  42.     mov r6, #15
  43.     and r1, r1, r5
  44.     and r2, r2, r6
  45.     mov r2, r0
  46.     mov r1, r2
  47.     mov r2, #0
  48.     mvn r5, #0
  49.     mov r6, #15
  50.     and r1, r1, r5
  51.     and r2, r2, r6
  52.     mov ip, r1, lsr #29
  53.     mov r4, r2, asl #3
  54.     orr r4, ip, r4
  55.     mov r3, r1, asl #3
  56.     mvn r1, #0
  57.     mov r2, #15
  58.     and r3, r3, r1
  59.     and r4, r4, r2
  60.     mov r3, r0
  61.     add r3, r3, #3
  62.     add r3, r3, #3
  63.     mov r3, r3, lsr #2
  64.     mov r3, r3, asl #2
  65.     sub sp, sp, r3
  66.     mov r3, sp
  67.     add r3, r3, #3
  68.     mov r3, r3, lsr #2
  69.     mov r3, r3, asl #2
  70.     str r3, [fp, #-52]
  71.     mov r3, #0
  72.     str r3, [fp, #-44]
  73.     mov r3, #0
  74.     str r3, [fp, #-36]
  75.     ldr r3, [fp, #-60]
  76.     cmp r3, #0
  77.     bge .L2
  78.     mov r3, #1
  79.     str r3, [fp, #-36]
  80.     ldr r3, [fp, #-60]
  81.     cmp r3, #0
  82.     rsblt   r3, r3, #0
  83.     str r3, [fp, #-60]
  84. .L2:
  85.     ldr r3, [fp, #-60]
  86.     cmp r3, #0
  87.     bne .L5
  88.     ldr r0, .L11+4
  89.     bl  puts
  90.     b   .L4
  91. .L6:
  92.     ldr r2, [fp, #-60]
  93.     ldr r3, .L11+8
  94.     smull   r1, r3, r2, r3
  95.     mov r1, r3, asr #2
  96.     mov r3, r2, asr #31
  97.     rsb r1, r3, r1
  98.     mov r3, r1
  99.     mov r3, r3, asl #2
  100.     add r3, r3, r1
  101.     mov r3, r3, asl #1
  102.     rsb r3, r3, r2
  103.     str r3, [fp, #-48]
  104.     ldr r3, [fp, #-60]
  105.     ldr r2, .L11+8
  106.     smull   r1, r2, r3, r2
  107.     mov r2, r2, asr #2
  108.     mov r3, r3, asr #31
  109.     rsb r3, r3, r2
  110.     str r3, [fp, #-60]
  111.     ldr r3, [fp, #-48]
  112.     add r3, r3, #48
  113.     str r3, [fp, #-48]
  114.     ldr r3, [fp, #-48]
  115.     strb    r3, [fp, #-37]
  116.     ldr r3, [fp, #-44]
  117.     ldr r2, [fp, #-52]
  118.     ldrb    r1, [fp, #-37]
  119.     strb    r1, [r2, r3]
  120.     ldr r3, [fp, #-44]
  121.     add r3, r3, #1
  122.     str r3, [fp, #-44]
  123. .L5:
  124.     ldr r3, [fp, #-60]
  125.     cmp r3, #0
  126.     bne .L6
  127.     ldr r3, [fp, #-36]
  128.     cmp r3, #1
  129.     bne .L7
  130.     ldr r3, [fp, #-44]
  131.     ldr r2, [fp, #-52]
  132.     mov r1, #45
  133.     strb    r1, [r2, r3]
  134.     ldr r3, [fp, #-44]
  135.     add r3, r3, #1
  136.     str r3, [fp, #-44]
  137. .L7:
  138.     ldr r3, [fp, #-44]
  139.     sub r3, r3, #1
  140.     str r3, [fp, #-32]
  141.     b   .L8
  142. .L9:
  143.     ldr r3, [fp, #-32]
  144.     ldr r2, [fp, #-52]
  145.     ldrb    r3, [r2, r3]    @ zero_extendqisi2
  146.     mov r0, r3
  147.     bl  putc
  148.     ldr r3, [fp, #-32]
  149.     sub r3, r3, #1
  150.     str r3, [fp, #-32]
  151. .L8:
  152.     ldr r3, [fp, #-32]
  153.     cmp r3, #0
  154.     bge .L9
  155. .L4:
  156.     mov sp, sl
  157.     sub sp, fp, #28
  158.     ldmfd   sp!, {r4, r5, r6, r7, r8, sl, fp, pc}
  159. .L12:
  160.     .align  2
  161. .L11:
  162.     .word   max
  163.     .word   .LC0
  164.     .word   1717986919
  165.     .size   toString, .-toString
  166.     .section    .rodata
  167.     .align  2
  168. .LC1:
  169.     .ascii  "Hallo! \012\000"
  170.     .text
  171.     .align  2
  172.     .global main
  173.     .type   main, %function
  174. main:
  175.     @ args = 0, pretend = 0, frame = 4
  176.     @ frame_needed = 1, uses_anonymous_args = 0
  177.     stmfd   sp!, {fp, lr}
  178.     add fp, sp, #4
  179.     sub sp, sp, #4
  180.     bl  inits
  181.     bl  init_ser
  182.     mov r0, #13
  183.     bl  putc
  184.     mov r0, #10
  185.     bl  putc
  186.     bl  getc
  187.     mov r3, r0
  188.     strb    r3, [fp, #-5]
  189.     ldrb    r3, [fp, #-5]   @ zero_extendqisi2
  190.     mov r0, r3
  191.     bl  putc
  192.     ldr r0, .L15
  193.     bl  puts
  194.     mov r0, #13
  195.     bl  putc
  196.     mov r0, #10
  197.     bl  putc
  198.     mov r0, #1
  199.     bl  toString
  200.     mov r0, #13
  201.     bl  putc
  202.     mov r0, #10
  203.     bl  putc
  204.     mvn r0, #0
  205.     bl  toString
  206.     mov r0, #13
  207.     bl  putc
  208.     mov r0, #10
  209.     bl  putc
  210.     mov r0, #10
  211.     bl  toString
  212.     mov r0, #13
  213.     bl  putc
  214.     mov r0, #10
  215.     bl  putc
  216.     mvn r0, #9
  217.     bl  toString
  218.     mov r3, #0
  219.     mov r0, r3
  220.     sub sp, fp, #4
  221.     ldmfd   sp!, {fp, pc}
  222. .L16:
  223.     .align  2
  224. .L15:
  225.     .word   .LC1
  226.     .size   main, .-main
  227.     .ident  "GCC: (GNU) 4.4.1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement