Changes between Version 29 and Version 30 of ClrxAsmSyntax


Ignore:
Timestamp:
02/15/25 22:21:23 (4 weeks ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ClrxAsmSyntax

    v29 v30  
    2828This is <code>.</code> and is called in this manual as output counter.
    2929Symbol names can contains alphanumeric characters, <code>.</code> and <code>_</code>. First character
    30 must not be a digit. This same rules concerns a labels.</p>
     30must not be a digit. This same rules concerns labels.</p>
    3131<p>Label is symbol that can not be redefined.
    3232Labels precedes statement and can occurred many times. Like that:</p>
     
    3434end:  s_endpgm</code></p>
    3535<p>Special kind of the label is local labels. They can be used only locally. The identifier
    36 of local labels can have only digits. In contrast, local labels can to be
     36of local labels can has only digits. In contrast, local labels can to be
    3737redefined many times.
    3838In source code reference can be to previous or next local label by
     
    5151zx = 10 # zx symbol
    5252v_xor_b32 regpool[zx+1], regpool[zx+5], regpool[zx+7]    # v_xor_b32 v27, v31, v33</code></p>
    53 <p>Additionally, an assembler accepts constant literals in symreganges like <code>zz=%1</code> or
     53<p>Additionally, the assembler accepts constant literals in symreganges like <code>zz=%1</code> or
    5454<code>xx=%0.5</code>. These symreganges are permitted in fields that accepts a scalar sources and
    5555are not permitted in a scalar destination.</p>
     
    6464they can be closed by using <code>.ends</code> or <code>.endscope</code>. We distinguish scope to two types:
    6565normal and temporary scopes.
    66 The temporary scopes doesn't have name and they exists until first close.</p>
     66The temporary scopes doesn't has name and they exists until first close.</p>
    6767<p>If scope will be opened, any object in this scope will directly available (by simple name).
    6868Next available object is in used scopes (declared by <code>.using</code> pseudo-op)
     
    7070<p>The scopes are organized in tree where global scope is root of tree.
    7171This feature, allow to nest scopes (even named scopes inside temporary scopes).
    72 During searching object, an assembler begins from
     72During searching object, the assembler begins from
    7373top (current) scope and ends at global scope. In every scope, it is possible to
    7474start using object from other scopes (by <code>.using</code> pseudo-op).
    75 While searching at scope stack level, an assembler firstly search that scope and
     75While searching at scope stack level, the assembler firstly search that scope and
    7676if not found then search object through 'usings'.</p>
    7777<p>Example of using scopes:</p>
     
    185185<thead>
    186186<tr>
    187 <th align="center">Escape</th>
     187<th style="text-align: center;">Escape</th>
    188188<th>Description</th>
    189189<th>Value</th>
     
    192192<tbody>
    193193<tr>
    194 <td align="center"><code>\a</code></td>
     194<td style="text-align: center;"><code>\a</code></td>
    195195<td>Alarm</td>
    196196<td>7</td>
    197197</tr>
    198198<tr>
    199 <td align="center"><code>\b</code></td>
     199<td style="text-align: center;"><code>\b</code></td>
    200200<td>Backspace</td>
    201201<td>8</td>
    202202</tr>
    203203<tr>
    204 <td align="center"><code>\t</code></td>
     204<td style="text-align: center;"><code>\t</code></td>
    205205<td>Tab</td>
    206206<td>9</td>
    207207</tr>
    208208<tr>
    209 <td align="center"><code>\n</code></td>
     209<td style="text-align: center;"><code>\n</code></td>
    210210<td>Newline</td>
    211211<td>10</td>
    212212</tr>
    213213<tr>
    214 <td align="center"><code>\v</code></td>
     214<td style="text-align: center;"><code>\v</code></td>
    215215<td>Vertical tab</td>
    216216<td>11</td>
    217217</tr>
    218218<tr>
    219 <td align="center"><code>\f</code></td>
     219<td style="text-align: center;"><code>\f</code></td>
    220220<td>Form feed</td>
    221221<td>12</td>
    222222</tr>
    223223<tr>
    224 <td align="center"><code>\r</code></td>
     224<td style="text-align: center;"><code>\r</code></td>
    225225<td>Carriage return</td>
    226226<td>13</td>
    227227</tr>
    228228<tr>
    229 <td align="center"><code>\\</code></td>
     229<td style="text-align: center;"><code>\\</code></td>
    230230<td>Backslash</td>
    231231<td>92</td>
    232232</tr>
    233233<tr>
    234 <td align="center"><code>\"</code></td>
     234<td style="text-align: center;"><code>\"</code></td>
    235235<td>Double-quote</td>
    236236<td>34</td>
    237237</tr>
    238238<tr>
    239 <td align="center"><code>\'</code></td>
     239<td style="text-align: center;"><code>\'</code></td>
    240240<td>Qoute</td>
    241241<td>39</td>
    242242</tr>
    243243<tr>
    244 <td align="center"><code>\aaa</code></td>
     244<td style="text-align: center;"><code>\aaa</code></td>
    245245<td>Octal code</td>
    246246<td>Various</td>
    247247</tr>
    248248<tr>
    249 <td align="center"><code>\HHH..</code></td>
     249<td style="text-align: center;"><code>\HHH..</code></td>
    250250<td>Hexadecimal code</td>
    251251<td>Various</td>
     
    265265<tr>
    266266<th>Type</th>
    267 <th align="center">Operator</th>
    268 <th align="center">Order</th>
     267<th style="text-align: center;">Operator</th>
     268<th style="text-align: center;">Order</th>
    269269<th>Description</th>
    270270</tr>
     
    273273<tr>
    274274<td>Unary</td>
    275 <td align="center">-</td>
    276 <td align="center">1</td>
     275<td style="text-align: center;">-</td>
     276<td style="text-align: center;">1</td>
    277277<td>Negate value</td>
    278278</tr>
    279279<tr>
    280280<td>Unary</td>
    281 <td align="center">~</td>
    282 <td align="center">1</td>
     281<td style="text-align: center;">~</td>
     282<td style="text-align: center;">1</td>
    283283<td>Binary NOT</td>
    284284</tr>
    285285<tr>
    286286<td>Unary</td>
    287 <td align="center">!</td>
    288 <td align="center">1</td>
     287<td style="text-align: center;">!</td>
     288<td style="text-align: center;">1</td>
    289289<td>Logical NOT</td>
    290290</tr>
    291291<tr>
    292292<td>Unary</td>
    293 <td align="center">+</td>
    294 <td align="center">1</td>
     293<td style="text-align: center;">+</td>
     294<td style="text-align: center;">1</td>
    295295<td>Plus (doing nothing)</td>
    296296</tr>
    297297<tr>
    298298<td>Binary</td>
    299 <td align="center">*</td>
    300 <td align="center">2</td>
     299<td style="text-align: center;">*</td>
     300<td style="text-align: center;">2</td>
    301301<td>Multiplication</td>
    302302</tr>
    303303<tr>
    304304<td>Binary</td>
    305 <td align="center">/</td>
    306 <td align="center">2</td>
     305<td style="text-align: center;">/</td>
     306<td style="text-align: center;">2</td>
    307307<td>Signed division</td>
    308308</tr>
    309309<tr>
    310310<td>Binary</td>
    311 <td align="center">//</td>
    312 <td align="center">2</td>
     311<td style="text-align: center;">//</td>
     312<td style="text-align: center;">2</td>
    313313<td>Unsigned division</td>
    314314</tr>
    315315<tr>
    316316<td>Binary</td>
    317 <td align="center">%</td>
    318 <td align="center">2</td>
     317<td style="text-align: center;">%</td>
     318<td style="text-align: center;">2</td>
    319319<td>Signed remainder</td>
    320320</tr>
    321321<tr>
    322322<td>Binary</td>
    323 <td align="center">%%</td>
    324 <td align="center">2</td>
     323<td style="text-align: center;">%%</td>
     324<td style="text-align: center;">2</td>
    325325<td>Unsigned remainder</td>
    326326</tr>
    327327<tr>
    328328<td>Binary</td>
    329 <td align="center">&lt;&lt;</td>
    330 <td align="center">2</td>
     329<td style="text-align: center;">&lt;&lt;</td>
     330<td style="text-align: center;">2</td>
    331331<td>Left shift</td>
    332332</tr>
    333333<tr>
    334334<td>Binary</td>
    335 <td align="center">&gt;&gt;</td>
    336 <td align="center">2</td>
     335<td style="text-align: center;">&gt;&gt;</td>
     336<td style="text-align: center;">2</td>
    337337<td>Unsigned right shift</td>
    338338</tr>
    339339<tr>
    340340<td>Binary</td>
    341 <td align="center">&gt;&gt;&gt;</td>
    342 <td align="center">2</td>
     341<td style="text-align: center;">&gt;&gt;&gt;</td>
     342<td style="text-align: center;">2</td>
    343343<td>Signed right shift</td>
    344344</tr>
    345345<tr>
    346346<td>Binary</td>
    347 <td align="center">&amp;</td>
    348 <td align="center">3</td>
     347<td style="text-align: center;">&amp;</td>
     348<td style="text-align: center;">3</td>
    349349<td>Binary AND</td>
    350350</tr>
    351351<tr>
    352352<td>Binary</td>
    353 <td align="center">vert-line</td>
    354 <td align="center">3</td>
     353<td style="text-align: center;">vert-line</td>
     354<td style="text-align: center;">3</td>
    355355<td>Binary OR</td>
    356356</tr>
    357357<tr>
    358358<td>Binary</td>
    359 <td align="center">^</td>
    360 <td align="center">3</td>
     359<td style="text-align: center;">^</td>
     360<td style="text-align: center;">3</td>
    361361<td>Binary XOR</td>
    362362</tr>
    363363<tr>
    364364<td>Binary</td>
    365 <td align="center">!</td>
    366 <td align="center">3</td>
     365<td style="text-align: center;">!</td>
     366<td style="text-align: center;">3</td>
    367367<td>Binary ORNOT (performs A OR ~B)</td>
    368368</tr>
    369369<tr>
    370370<td>Binary</td>
    371 <td align="center">+</td>
    372 <td align="center">3</td>
     371<td style="text-align: center;">+</td>
     372<td style="text-align: center;">3</td>
    373373<td>Addition</td>
    374374</tr>
    375375<tr>
    376376<td>Binary</td>
    377 <td align="center">-</td>
    378 <td align="center">3</td>
     377<td style="text-align: center;">-</td>
     378<td style="text-align: center;">3</td>
    379379<td>Subtraction</td>
    380380</tr>
    381381<tr>
    382382<td>Binary</td>
    383 <td align="center">==</td>
    384 <td align="center">4</td>
     383<td style="text-align: center;">==</td>
     384<td style="text-align: center;">4</td>
    385385<td>Equal to</td>
    386386</tr>
    387387<tr>
    388388<td>Binary</td>
    389 <td align="center">!=,&lt;&gt;</td>
    390 <td align="center">4</td>
     389<td style="text-align: center;">!=,&lt;&gt;</td>
     390<td style="text-align: center;">4</td>
    391391<td>Not equal to</td>
    392392</tr>
    393393<tr>
    394394<td>Binary</td>
    395 <td align="center">&lt;</td>
    396 <td align="center">4</td>
     395<td style="text-align: center;">&lt;</td>
     396<td style="text-align: center;">4</td>
    397397<td>Less than (signed)</td>
    398398</tr>
    399399<tr>
    400400<td>Binary</td>
    401 <td align="center">&lt;=</td>
    402 <td align="center">4</td>
     401<td style="text-align: center;">&lt;=</td>
     402<td style="text-align: center;">4</td>
    403403<td>Less or equal (signed)</td>
    404404</tr>
    405405<tr>
    406406<td>Binary</td>
    407 <td align="center">&gt;</td>
    408 <td align="center">4</td>
     407<td style="text-align: center;">&gt;</td>
     408<td style="text-align: center;">4</td>
    409409<td>Greater than (signed)</td>
    410410</tr>
    411411<tr>
    412412<td>Binary</td>
    413 <td align="center">&gt;=</td>
    414 <td align="center">4</td>
     413<td style="text-align: center;">&gt;=</td>
     414<td style="text-align: center;">4</td>
    415415<td>Greater or equal (signed)</td>
    416416</tr>
    417417<tr>
    418418<td>Binary</td>
    419 <td align="center">&lt;@</td>
    420 <td align="center">4</td>
     419<td style="text-align: center;">&lt;@</td>
     420<td style="text-align: center;">4</td>
    421421<td>Less than (unsigned)</td>
    422422</tr>
    423423<tr>
    424424<td>Binary</td>
    425 <td align="center">&lt;=@</td>
    426 <td align="center">4</td>
     425<td style="text-align: center;">&lt;=@</td>
     426<td style="text-align: center;">4</td>
    427427<td>Less or equal (unsigned)</td>
    428428</tr>
    429429<tr>
    430430<td>Binary</td>
    431 <td align="center">&gt;@</td>
    432 <td align="center">4</td>
     431<td style="text-align: center;">&gt;@</td>
     432<td style="text-align: center;">4</td>
    433433<td>Greater than (unsigned)</td>
    434434</tr>
    435435<tr>
    436436<td>Binary</td>
    437 <td align="center">&gt;=@</td>
    438 <td align="center">4</td>
     437<td style="text-align: center;">&gt;=@</td>
     438<td style="text-align: center;">4</td>
    439439<td>Greater or equal (unsigned)</td>
    440440</tr>
    441441<tr>
    442442<td>Binary</td>
    443 <td align="center">&amp;&amp;</td>
    444 <td align="center">5</td>
     443<td style="text-align: center;">&amp;&amp;</td>
     444<td style="text-align: center;">5</td>
    445445<td>Logical AND</td>
    446446</tr>
    447447<tr>
    448448<td>Binary</td>
    449 <td align="center">dbl-vert-line</td>
    450 <td align="center">5</td>
     449<td style="text-align: center;">dbl-vert-line</td>
     450<td style="text-align: center;">5</td>
    451451<td>Logical OR</td>
    452452</tr>
    453453<tr>
    454454<td>Binary</td>
    455 <td align="center">?:</td>
    456 <td align="center">6</td>
     455<td style="text-align: center;">?:</td>
     456<td style="text-align: center;">6</td>
    457457<td>Choice (this same as in C++)</td>
    458458</tr>
     
    460460</table>
    461461<p>'vert-line' is <code>|</code>, and 'dbl-vert-line' is <code>||</code>.</p>
    462 <p>The <code>?:</code> operator have this same meanigful as in C/C++ and performed from
     462<p>The <code>?:</code> operator has this same meanigful as in C/C++ and performed from
    463463right to left side. </p>
    464464<p><strong>Important note</strong>: Comparison operators return all ones (-1) value instead 1.</p>
    465465<p>Symbol refering to some place can be added, subtracted, compared or negated if
    466466final result of the expression can be represented as place of the code or absolute value
    467 (without refering to any place). An assembler performs this same operations
     467(without refering to any place). The assembler performs this same operations
    468468on the sections during evaluating an expression. Division, modulo,
    469469binary operations (except negation), logical operations is not legal.</p>