Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. ; res = y1 / y2
  2. ; y1 = 12 if x < 12 else x+1
  3. ; y2 = 2 if x > 2 else a+x
  4.  
  5. .386
  6. .model flat, stdcall
  7. option casemap :none ; case sensitive
  8. include \masm32\include\windows.inc
  9. include \masm32\include\kernel32.inc
  10. include \masm32\include\user32.inc
  11. include \masm32\include\masm32.inc
  12.  
  13. includelib \masm32\lib\kernel32.lib
  14. includelib \masm32\lib\user32.lib
  15. includelib \masm32\lib\masm32.lib
  16.  
  17. .data
  18. x db 1
  19. a db 2
  20. y1 dw ?
  21. y2 dw ?
  22. res dd ? ; окончательный результат
  23. dest db 10 dup (?)
  24. title_1 db "lab3",0
  25.  
  26. .code
  27. start:
  28. cmp x, 12
  29.  
  30. ; if x < 12
  31. jb assign_y1_12
  32. ; else
  33. jmp assign_y1_x_plus_1
  34.  
  35. assign_y1_12:
  36. mov y1, 12
  37. jmp done_1
  38.  
  39. assign_y1_x_plus_1:
  40. mov al, x
  41. inc al
  42. cbw
  43. mov y1, ax
  44. jmp done_1
  45.  
  46. done_1:
  47. cmp x, 2
  48.  
  49. ; if x > 2
  50. ja assign_y2_2
  51. ; else
  52. jmp assign_y2_x_plus_a
  53.  
  54. assign_y2_2:
  55. mov y2, 2
  56. jmp done_2
  57.  
  58. assign_y2_x_plus_a:
  59. mov al, x
  60. cbw
  61. mov y2, ax
  62. mov bx, y2
  63. mov al, a
  64. cbw
  65. add bx, ax
  66. mov y2, bx
  67. jmp done_2
  68.  
  69. done_2:
  70. mov ax, y1
  71. cwd
  72. idiv y2
  73. cwde
  74. mov res, eax
  75.  
  76. invoke dwtoa, res, addr dest
  77.  
  78. invoke MessageBox,0,addr dest,addr title_1,MB_OK
  79.  
  80. invoke ExitProcess, 0
  81.  
  82. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement