BENCHSHO.EXE.a2 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. main PROC NEAR
  2. 000 0002FA 55 PUSH bp
  3. 001 0002FB 8BEC MOV bp, sp
  4. 002 0002FD 83EC0E SUB sp, 0Eh
  5. 003 000300 8D46FC LEA ax, [bp-4]
  6. 004 000303 50 PUSH ax
  7. 005 000304 B89401 MOV ax, 194h
  8. 006 000307 50 PUSH ax
  9. 007 000308 E8E914 CALL near ptr scanf
  10. 008 00030B 59 POP cx
  11. 009 00030C 59 POP cx
  12. 010 00030D FF76FE PUSH word ptr [bp-2]
  13. 011 000310 FF76FC PUSH word ptr [bp-4]
  14. 012 000313 B89801 MOV ax, 198h
  15. 013 000316 50 PUSH ax
  16. 014 000317 E8510C CALL near ptr printf
  17. 015 00031A 83C406 ADD sp, 6
  18. 016 00031D 8D46F2 LEA ax, [bp-0Eh]
  19. 017 000320 50 PUSH ax
  20. 018 000321 B8B201 MOV ax, 1B2h
  21. 019 000324 50 PUSH ax
  22. 020 000325 E8CC14 CALL near ptr scanf
  23. 021 000328 59 POP cx
  24. 022 000329 59 POP cx
  25. 023 00032A 8D46F4 LEA ax, [bp-0Ch]
  26. 024 00032D 50 PUSH ax
  27. 025 00032E B8B601 MOV ax, 1B6h
  28. 026 000331 50 PUSH ax
  29. 027 000332 E8BF14 CALL near ptr scanf
  30. 028 000335 59 POP cx
  31. 029 000336 59 POP cx
  32. 030 000337 C746FA0000 MOV word ptr [bp-6], 0
  33. 031 00033C C746F80100 MOV word ptr [bp-8], 1
  34. 033 0003BD 8B56FA L1: MOV dx, [bp-6]
  35. 034 0003C0 8B46F8 MOV ax, [bp-8]
  36. 035 0003C3 3B56FE CMP dx, [bp-2]
  37. 036 0003C6 7D03 JGE L2
  38. 038 000344 C746F60100 L3: MOV word ptr [bp-0Ah], 1
  39. 040 0003AF 837EF628 L4: CMP word ptr [bp-0Ah], 28h
  40. 041 0003B3 7E96 JLE L5
  41. 042 0003B5 8346F801 ADD word ptr [bp-8], 1
  42. 043 0003B9 8356FA00 ADC word ptr [bp-6], 0
  43. 044 JMP L1 ;Synthetic inst
  44. 045 00034B 8B46F2 L5: MOV ax, [bp-0Eh]
  45. 046 00034E 0346F4 ADD ax, [bp-0Ch]
  46. 047 000351 0346F6 ADD ax, [bp-0Ah]
  47. 048 000354 8946F2 MOV [bp-0Eh], ax
  48. 049 000357 8B46F2 MOV ax, [bp-0Eh]
  49. 050 00035A D1F8 SAR ax, 1
  50. 051 00035C 8946F4 MOV [bp-0Ch], ax
  51. 052 00035F 8B46F4 MOV ax, [bp-0Ch]
  52. 053 000362 BB0A00 MOV bx, 0Ah
  53. 054 000365 99 CWD
  54. 055 MOV tmp, dx:ax ;Synthetic inst
  55. 056 000366 F7FB IDIV bx
  56. 057 MOD bx ;Synthetic inst
  57. 058 000368 8956F2 MOV [bp-0Eh], dx
  58. 059 00036B 8B46F4 MOV ax, [bp-0Ch]
  59. 060 00036E 3B46F6 CMP ax, [bp-0Ah]
  60. 061 000371 7505 JNE L6
  61. 062 000373 B80100 MOV ax, 1
  62. 064 00037A 8946F2 L7: MOV [bp-0Eh], ax
  63. 065 00037D 8B46F2 MOV ax, [bp-0Eh]
  64. 066 000380 0B46F6 OR ax, [bp-0Ah]
  65. 067 000383 8946F4 MOV [bp-0Ch], ax
  66. 068 000386 8B46F4 MOV ax, [bp-0Ch]
  67. 069 000389 F7D8 NEG ax
  68. 070 00038B 1BC0 SBB ax, ax
  69. 071 00038D 40 INC ax
  70. 072 00038E 8946F2 MOV [bp-0Eh], ax
  71. 073 000391 8B46F2 MOV ax, [bp-0Eh]
  72. 074 000394 0346F6 ADD ax, [bp-0Ah]
  73. 075 000397 8946F4 MOV [bp-0Ch], ax
  74. 076 00039A 8B46F4 MOV ax, [bp-0Ch]
  75. 077 00039D 3B46F6 CMP ax, [bp-0Ah]
  76. 078 0003A0 7E05 JLE L8
  77. 079 0003A2 B80100 MOV ax, 1
  78. 081 0003A9 8946F2 L9: MOV [bp-0Eh], ax
  79. 082 0003AC FF46F6 INC word ptr [bp-0Ah]
  80. 083 JMP L4 ;Synthetic inst
  81. 084 0003A7 33C0 L8: XOR ax, ax
  82. 085 JMP L9 ;Synthetic inst
  83. 086 000378 33C0 L6: XOR ax, ax
  84. 087 JMP L7 ;Synthetic inst
  85. 088 0003CB 7F08 L2: JG L10
  86. 089 0003CD 3B46FC CMP ax, [bp-4]
  87. 090 0003D0 7703 JA L10
  88. 092 0003D5 FF76F2 L10: PUSH word ptr [bp-0Eh]
  89. 093 0003D8 B8BA01 MOV ax, 1BAh
  90. 094 0003DB 50 PUSH ax
  91. 095 0003DC E88C0B CALL near ptr printf
  92. 096 0003DF 59 POP cx
  93. 097 0003E0 59 POP cx
  94. 098 0003E1 8BE5 MOV sp, bp
  95. 099 0003E3 5D POP bp
  96. 100 0003E4 C3 RET
  97. main ENDP