Advertisement
Guest User

Untitled

a guest
Feb 28th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. %include "rw32-2017.inc"
  2.  
  3. section .data
  4. a dw -5;5
  5. b dw -2;2
  6. c dw 10;10
  7.  
  8. d dw 0
  9.  
  10. section .text
  11. main:
  12. mov ebp, esp; for correct debugging
  13. ;mov edx, 0
  14. ;mov eax, 0
  15.  
  16. ;mov bl, -3200
  17. ;mov al, 4
  18.  
  19. ;imul bl; vysledek po provedeni teto instrukce bude v registrech EDX:EAX tzn. EDX:EAX=EBX*EAX
  20.  
  21. ;xor dx, dx ;vynuluje registr edx, protoze delenec bude pouze v registru eax
  22. ;mov ax, 20 ; delenec v eax
  23. ;mov bx, 3; delitel
  24. ;div bx; celociselny vysledek se ulozi do registru AX a zbytek po deleni do registru DX
  25.  
  26. ; d = (4*a + 100*b) / c
  27.  
  28. mov ax, [a]
  29. mov bx, word 4
  30. imul bx ; a * 4
  31.  
  32. add [d], ax ; d += a * 4
  33.  
  34. mov ax, [b]
  35. mov bx, word 100
  36. imul bx ; b * 100
  37.  
  38. add [d], ax ; d += b * 100
  39.  
  40. mov ax, [d]
  41. cwd
  42. mov bx, [c]
  43. idiv bx ; d /= c
  44.  
  45. mov [d], ax
  46.  
  47. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement