shithub: rgbds

ref: cd2e59fc8c8256117af2a4cbab235ac2f3f93b06
dir: /doc/asm/rept.htm/

View raw version
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
	<TITLE>xAsm REPT, ENDR</TITLE>
</HEAD>

<BODY BGCOLOR="#692764" TEXT="#F5A0D8" LINK="#8AAEE6" VLINK="#2B9DA4" ALINK="#95F0DA">
<I><H2>REPT<BR>
ENDR
</H2></I>
<HR>

<P>Suppose you're feeling lazy and you want to unroll a time consuming loop. <B>REPT</B> is here for that purpose. Everything between REPT and ENDR will be repeated a number of times just as if you done a copy/paste operation yourself<BR>
<BR>
<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
<TR>
	<TD><FONT COLOR="#00FF00">
<PRE>REPT 4
add  a,c
ENDR</PRE>
</FONT></TD>
</TR>
</TABLE>
<P>This will assemble <B>add a,c</B> four times.<BR>
<P>You can also use REPT to generate tables on the fly:
<TABLE BORDER=0 BGCOLOR="Black" CELLPADDING=8 WIDTH="50%">
<TR>
	<TD><FONT COLOR="#00FF00">
<PRE>; --
; -- Generate a 256 byte sine table with values between 0 and 128
; --
ANGLE   SET     0.0
        REPT    256
        DB      (MUL(64.0,SIN(ANGLE))+64.0)>>16
ANGLE   SET     ANGLE+256.0
        ENDR</PRE>
</FONT></TD>
</TR>
</TABLE>

REPT is also very useful in recursive macros and as in macros you can also use the special label operator \@. REPT-blocks can be nested.<BR>

<H3>See also:</H3>
<UL>
<LI><A HREF="macro.htm#labelsuffix">\@</A>
</UL>

<BR><HR>
<FONT SIZE="-1"><I><P ALIGN=RIGHT>Last updated 21 June 1997 by <A HREF="mailto:[email protected]">Carsten Sorensen</A></P></I></FONT>