Advertisement
schifazl

fpu mona

Jan 19th, 2013
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .387
  2. assume cs:cseg, ds:dseg
  3.  
  4. uint    TYPEDEF word
  5. integer TYPEDEF word
  6. float   TYPEDEF real4
  7. double  TYPEDEF real8
  8.  
  9. largh   =   320 ;larghezza dello schermo
  10. alt =   200 ;altezza dello schermo
  11.  
  12. dseg    SEGMENT para public 'data'
  13. maxX    integer 0
  14. maxY    integer 0
  15. xCoord  integer 0
  16. yCoord  integer 0  
  17. x0  double  0.0 ;coordinata x del pixel riscalata a (-2.1 - 1.1)
  18. y0  double  0.0 ;coordinata y del pixel riscalata a (-2.1 - 1.1)
  19. scaleX  double  3.2
  20. scaleY  double  2.0 ;scala in X ed in Y delle coordinate
  21. offsetX double  2.1
  22. offsetY double  1.0
  23.  
  24. x   double  0.0
  25. y   double  0.0 ;valori della serie in un determinato punto (xo, yo)
  26. zeroConst   double  0.0 ;costante double 0.0
  27.  
  28.  
  29. dseg    ENDS
  30. cseg    SEGMENT
  31. START:
  32.     mov maxX, largh
  33.     mov maxY, alt
  34.    
  35.     mov xCoord, 0
  36. forX:   cmp xCoord, largh
  37.     jae finish
  38.    
  39.     ;mov    dl,69
  40.     ;mov    ah,2
  41.     ;int    21h ;test loop forX
  42.    
  43.     mov yCoord, 0
  44.     cmp yCoord, alt
  45.     jae nextX
  46. forY:   cmp yCoord, alt
  47.     jnb nextX
  48.    
  49.     ;forY code here
  50.     finit
  51.     fld scaleX  ;coordinate X
  52.     fimul   xCoord
  53.     fidiv   maxX
  54.     fsub    offsetX ;calcolo scala * coordinata / coordinataMax - offset
  55.     fstp    x0
  56.  
  57.  
  58. ;   fld scaleY  ;coordinate Y
  59. ;   fimul   yCoord
  60. ;   fidiv   maxY
  61. ;   fsub    offsetY ;calcolo scala * coordinata / coordinataMax - offset
  62. ;   fstp    y0
  63. ;  
  64. ;   fld zeroConst
  65. ;   fst x
  66. ;   fstp    y
  67.    
  68.    
  69.    
  70.     inc yCoord
  71.     jmp forY
  72.  
  73. nextX:  inc xCoord
  74.     jmp forX
  75.  
  76. finish: mov dl, 70
  77.     mov ah, 2
  78.     int 21h
  79.    
  80.     mov ah, 4Ch ;DOS terminate opcode
  81.     xor al, al
  82.     int 21h ;DOS call  
  83. cseg    ENDS
  84. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement