mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
33 lines
1.2 KiB
HTML
33 lines
1.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
||
<title>xAsm REPT, ENDR</title>
|
||
<link rel="stylesheet" type="text/css" href="../style.css">
|
||
</head>
|
||
<body>
|
||
<h1>REPT, ENDR</h1>
|
||
<p>Suppose you’re feeling lazy and you want to unroll a time consuming loop. <dfn>REPT</dfn> 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</p>
|
||
<pre>REPT 4
|
||
add a,c
|
||
ENDR</pre>
|
||
<p>This will assemble <code>add a,c</code> four times.</p>
|
||
<p>You can also use REPT to generate tables on the fly:</p>
|
||
<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>
|
||
<p>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.<p>
|
||
<h1>See also:</h1>
|
||
<ul>
|
||
<li><a href="macro.htm#labelsuffix">\@</a>
|
||
</ul>
|
||
<hr>
|
||
<p>Last updated 21 June 1997 by <a href="mailto:surfsmurf@matilde.demon.co.uk">Carsten Sorensen</a></p>
|
||
</body>
|
||
</html>
|