i386-ops.s 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. Lloop:
  2. mov $0xdeadbeef, %eax
  3. mov $0xdeadbeef, %edi
  4. mov $0xdeadbeef, %esi
  5. mov $0xdeadbeef, %edx
  6. mov $0xdeadbeef, %ecx
  7. mov $0xdeadbeef, %ebx
  8. mov %eax, %edi
  9. mov %eax, %esi
  10. mov %eax, %edx
  11. mov %eax, %ecx
  12. mov %eax, %ebx
  13. mov %ebx, %eax
  14. mov %ebx, %edi
  15. mov %ebx, %esi
  16. mov %ebx, %edx
  17. mov %ebx, %ecx
  18. mov %ebx, %ebx
  19. cmovs %eax, %eax
  20. cmovs %eax, %edi
  21. cmovs %eax, %esi
  22. cmovs %eax, %edx
  23. cmovs %eax, %ecx
  24. cmovs %eax, %ebx
  25. cmovs %edi, %edi
  26. cmovs %edi, %esi
  27. cmovs %esi, %edx
  28. cmovs %esi, %esi
  29. cmove %eax, %eax
  30. cmove %eax, %ecx
  31. cmove %eax, %edx
  32. cmove %ecx, %eax
  33. cmove %edx, %eax
  34. cmovne %eax, %eax
  35. cmovne %eax, %ecx
  36. cmovne %eax, %edx
  37. cmovne %ecx, %eax
  38. cmovne %edx, %eax
  39. mov %esi, %edi
  40. mov (%esi), %edi
  41. mov (%esi), %esi
  42. mov (%edi), %edi
  43. add %esi, %edi
  44. add %edi, %esi
  45. add %edi, %eax
  46. add %esi, %eax
  47. push %edi
  48. push %esi
  49. call *%eax
  50. add $8, %esp
  51. ret
  52. movb (%eax), %dl
  53. movb (%ecx), %dl
  54. movb (%edx), %dl
  55. and $0xff, %eax
  56. and $0xff, %ecx
  57. and $0xff, %edx
  58. movb %dl, (%eax)
  59. movb %dl, (%ecx)
  60. movb %dl, (%edx)
  61. add $0xdeadbeef, %eax
  62. add $0xdeadbeef, %ecx
  63. add $0xdeadbeef, %edx
  64. sub $0xdeadbeef, %eax
  65. sub $0xdeadbeef, %ecx
  66. sub $0xdeadbeef, %edx
  67. sub %eax, %eax
  68. sub %ecx, %eax
  69. sub %edx, %eax
  70. sub %eax, %eax
  71. sub %eax, %ecx
  72. sub %eax, %edx
  73. and %eax, %eax
  74. and %ecx, %eax
  75. and %edx, %eax
  76. and %eax, %eax
  77. and %eax, %ecx
  78. and %eax, %edx
  79. or %eax, %eax
  80. or %eax, %ecx
  81. or %eax, %edx
  82. xor %eax, %eax
  83. xor %eax, %ecx
  84. xor %eax, %edx
  85. not %eax
  86. not %ecx
  87. not %edx
  88. imul %eax, %eax
  89. imul %eax, %ecx
  90. imul %eax, %edx
  91. imul %ecx, %eax
  92. imul %edx, %eax
  93. imul %ebx, %eax
  94. idiv %eax
  95. idiv %ecx
  96. idiv %edx
  97. call *%eax
  98. call *%ecx
  99. call *%edx
  100. cmp $0xdeadcafe, %eax
  101. cmp $0xdeadcafe, %ecx
  102. cmp $0xdeadcafe, %edx
  103. cmp $0xdeadcafe, %ebx
  104. cmp %eax, %eax
  105. cmp %eax, %ecx
  106. cmp %eax, %edx
  107. cmp %eax, %ebx
  108. cmp %eax, %eax
  109. cmp %ecx, %eax
  110. cmp %edx, %eax
  111. jmp Lloop
  112. je Lloop
  113. je Lloop
  114. jne Lloop
  115. jne Lloop
  116. js Lloop
  117. js Lloop
  118. pop %eax
  119. pop %edx
  120. pop %ecx
  121. pop %ebx
  122. pop %esp
  123. shr %cl, %eax
  124. shr %cl, %edx
  125. shl %cl, %ecx
  126. shl %cl, %ebx
  127. mov -4(%esp), %eax
  128. mov -8(%esp), %eax
  129. mov -12(%esp), %eax
  130. mov 4(%esp), %ecx
  131. mov 8(%esp), %ecx
  132. mov 12(%esp), %ecx
  133. mov %eax, 4(%esp)
  134. mov %ecx, 8(%esp)
  135. mov %edx, 12(%esp)
  136. add $0xdeadbeef, %esp
  137. add $8, %esp
  138. add $12, %esp