Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. .386
  2.  
  3. .MODEL FLAT, STDCALL
  4.  
  5. OPTION CASEMAP :NONE ;Case sensitive
  6.  
  7. IDC_OK EQU 1003
  8. IDC_ADD EQU 1004
  9. IDC_FIRSTNUMBEREDIT EQU 1001
  10. IDC_SECONDNUMBEREDIT EQU 1002
  11. IDC_SECONDNUMBERLABEL EQU 1006
  12. IDC_FIRSTNUMBERLABEL EQU 1007
  13. IDC_RESULTLABEL EQU 1008
  14. IDC_SUB EQU 1011
  15. IDC_MUL EQU 1012
  16. IDC_DIV EQU 1013
  17.  
  18.  
  19. Include base.inc
  20.  
  21. .DATA
  22. error db "Error",0
  23. divZero db "Divided by 0",0
  24. buffer db 50 dup (0)
  25. format db "%d.%d",0
  26.  
  27. .DATA?
  28. remain dd ?
  29.  
  30. .CODE
  31.  
  32. Start:
  33. Invoke GetModuleHandle, EAX
  34. Invoke DialogBoxParam, EAX, 101, 0, ADDR DlgProc, 0
  35. Invoke ExitProcess, EAX
  36.  
  37. DlgProc Proc hWin:DWORD, uMsg:DWORD, wParam :DWORD, lParam :DWORD
  38. CMP uMsg,WM_CLOSE
  39. JE CLOSE
  40. JMP COMMAND
  41. CLOSE:
  42. Invoke EndDialog,hWin,0
  43. ret
  44. COMMAND:
  45. CMP wParam,IDC_ADD
  46. JE ADDFUNC
  47. CMP wParam,IDC_SUB
  48. JE SUBFUNC
  49. CMP wParam,IDC_MUL
  50. JE MULFUNC
  51. CMP wParam,IDC_DIV
  52. JE DIVFUNC
  53. CMP wParam,IDC_OK
  54. JE CLOSE
  55. JMP FINISH
  56. ADDFUNC:
  57. Invoke GetDlgItemInt,hWin,IDC_FIRSTNUMBEREDIT,NULL,TRUE
  58. PUSH EAX
  59. Invoke GetDlgItemInt,hWin,IDC_SECONDNUMBEREDIT,NULL,TRUE
  60. POP EBX
  61. ADD EBX,EAX
  62. Invoke SetDlgItemInt,hWin,IDC_RESULTLABEL,EBX,TRUE
  63. JMP FINISH
  64. SUBFUNC:
  65. Invoke GetDlgItemInt,hWin,IDC_FIRSTNUMBEREDIT,NULL,TRUE
  66. PUSH EAX
  67. Invoke GetDlgItemInt,hWin,IDC_SECONDNUMBEREDIT,NULL,TRUE
  68. POP EBX
  69. SUB EBX,EAX
  70. Invoke SetDlgItemInt,hWin,IDC_RESULTLABEL,EBX,TRUE
  71. JMP FINISH
  72. MULFUNC:
  73. Invoke GetDlgItemInt,hWin,IDC_FIRSTNUMBEREDIT,NULL,TRUE
  74. PUSH EAX
  75. Invoke GetDlgItemInt,hWin,IDC_SECONDNUMBEREDIT,NULL,TRUE
  76. POP EBX
  77. MUL EBX
  78. Invoke SetDlgItemInt,hWin,IDC_RESULTLABEL,EAX,TRUE
  79. JMP FINISH
  80. DIVFUNC:
  81. Invoke GetDlgItemInt,hWin,IDC_FIRSTNUMBEREDIT,NULL,TRUE
  82. PUSH EAX
  83. Invoke GetDlgItemInt,hWin,IDC_SECONDNUMBEREDIT,NULL,TRUE
  84. CMP EAX,0
  85. JE DIVZERO
  86. MOV EBX,EAX
  87. POP EAX
  88. DIV EBX
  89. PUSH EAX
  90. MOV EAX,EDX
  91. MOV ECX,10
  92. MUL ECX
  93. DIV EBX
  94. MOV EDX,EAX
  95. POP EAX
  96. Invoke wsprintf,ADDR buffer,ADDR format,EAX,EDX
  97.  
  98. Invoke SetDlgItemText,hWin,IDC_RESULTLABEL,ADDR buffer
  99. JMP FINISH
  100. DIVZERO:
  101. Invoke MessageBox,NULL,addr divZero,addr error,MB_OK
  102. RET
  103. FINISH:
  104. XOR EAX,EAX
  105. XOR EDX,EDX
  106. XOR EBX,EBX
  107. XOR ECX,ECX
  108. ret
  109. DlgProc EndP
  110.  
  111. End Start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement