The Easiest Way to Save and Share Code Snippets on the web

Untitled

asm

posted: Jan, 31st 2012 | jump to bottom

#define N0           10 
#define Ampl 0.5r      
#define Amplmstep    0.1r   
#define Argstep      0.2r
#define Iter	10
 
/* переменные */
.section/dm   data1;
.var interval;               		
.var argsin;                 	
.var samplecount; 
.var samplecount2;            	
.var percount;               	
.var widthcount;             	
.var amplm;
.var argstepv;
.var iterv;                   
 
 
.section/pm   pm_da;
 
.section/pm  seg_code2;
.global DataInit, Proc;
.extern sin; 
 
DataInit:
 
	     ar = 0;
         dm(interval) = ar; 
         ar = Argstep;
         dm(argstepv) = ar;
         dm(argsin) = ar;  
         ar = N0;  
         dm(samplecount) = ar;
         dm(samplecount2) = ar;
         ar = Iter;
         dm(iterv) = ar;
        rts;
DataInit.end:
 
Proc:
  ax0 = dm(interval);    	
  af = ax0 - 1;       	 
  if lt jump sinesignal; 
  jump nulevoysignal; 
sinesignal: 
	ax0 = dm(argsin);		
	call sin;				
	my0 = ar;			
	ar = Ampl;         
	mr = ar * my0(ss); 
	sr1 = mr1;  
 
 
	ay0 = dm(argstepv);
	ar = ax0 + ay0;  
	dm(argsin) = ar;
 
	ar = dm(samplecount);
	ar = ar - 1; 
	dm(samplecount) = ar; 
	if ne rts;            		
 
	ar = 1;  
	dm(interval) = ar; 	
	ar = N0;
	dm(samplecount) = ar;
	rts;
 
nulevoysignal:
	sr1 = 0;
	ar = dm(samplecount);
	ar = ar - 1; 
	dm(samplecount) = ar;
	if ne rts;
 
	ar = 0;
	dm(interval) = ar;
 
	ar = dm(samplecount2);
	ay0 = N0;	
	ar = ar + ay0;
	dm(samplecount2) = ar;
	dm(samplecount) = ar;
	ar = dm(iterv);
	ar = ar - 1;
	dm(iterv) = ar;
	if ne rts;
	call DataInit;
    rts;
Proc.end:
71 views