Changes between Version 29 and Version 30 of ClrxAsmSyntax
- Timestamp:
- 02/15/25 22:21:23 (4 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ClrxAsmSyntax
v29 v30 28 28 This is <code>.</code> and is called in this manual as output counter. 29 29 Symbol names can contains alphanumeric characters, <code>.</code> and <code>_</code>. First character 30 must not be a digit. This same rules concerns alabels.</p>30 must not be a digit. This same rules concerns labels.</p> 31 31 <p>Label is symbol that can not be redefined. 32 32 Labels precedes statement and can occurred many times. Like that:</p> … … 34 34 end: s_endpgm</code></p> 35 35 <p>Special kind of the label is local labels. They can be used only locally. The identifier 36 of local labels can ha veonly digits. In contrast, local labels can to be36 of local labels can has only digits. In contrast, local labels can to be 37 37 redefined many times. 38 38 In source code reference can be to previous or next local label by … … 51 51 zx = 10 # zx symbol 52 52 v_xor_b32 regpool[zx+1], regpool[zx+5], regpool[zx+7] # v_xor_b32 v27, v31, v33</code></p> 53 <p>Additionally, anassembler accepts constant literals in symreganges like <code>zz=%1</code> or53 <p>Additionally, the assembler accepts constant literals in symreganges like <code>zz=%1</code> or 54 54 <code>xx=%0.5</code>. These symreganges are permitted in fields that accepts a scalar sources and 55 55 are not permitted in a scalar destination.</p> … … 64 64 they can be closed by using <code>.ends</code> or <code>.endscope</code>. We distinguish scope to two types: 65 65 normal and temporary scopes. 66 The temporary scopes doesn't ha vename and they exists until first close.</p>66 The temporary scopes doesn't has name and they exists until first close.</p> 67 67 <p>If scope will be opened, any object in this scope will directly available (by simple name). 68 68 Next available object is in used scopes (declared by <code>.using</code> pseudo-op) … … 70 70 <p>The scopes are organized in tree where global scope is root of tree. 71 71 This feature, allow to nest scopes (even named scopes inside temporary scopes). 72 During searching object, anassembler begins from72 During searching object, the assembler begins from 73 73 top (current) scope and ends at global scope. In every scope, it is possible to 74 74 start using object from other scopes (by <code>.using</code> pseudo-op). 75 While searching at scope stack level, anassembler firstly search that scope and75 While searching at scope stack level, the assembler firstly search that scope and 76 76 if not found then search object through 'usings'.</p> 77 77 <p>Example of using scopes:</p> … … 185 185 <thead> 186 186 <tr> 187 <th align="center">Escape</th>187 <th style="text-align: center;">Escape</th> 188 188 <th>Description</th> 189 189 <th>Value</th> … … 192 192 <tbody> 193 193 <tr> 194 <td align="center"><code>\a</code></td>194 <td style="text-align: center;"><code>\a</code></td> 195 195 <td>Alarm</td> 196 196 <td>7</td> 197 197 </tr> 198 198 <tr> 199 <td align="center"><code>\b</code></td>199 <td style="text-align: center;"><code>\b</code></td> 200 200 <td>Backspace</td> 201 201 <td>8</td> 202 202 </tr> 203 203 <tr> 204 <td align="center"><code>\t</code></td>204 <td style="text-align: center;"><code>\t</code></td> 205 205 <td>Tab</td> 206 206 <td>9</td> 207 207 </tr> 208 208 <tr> 209 <td align="center"><code>\n</code></td>209 <td style="text-align: center;"><code>\n</code></td> 210 210 <td>Newline</td> 211 211 <td>10</td> 212 212 </tr> 213 213 <tr> 214 <td align="center"><code>\v</code></td>214 <td style="text-align: center;"><code>\v</code></td> 215 215 <td>Vertical tab</td> 216 216 <td>11</td> 217 217 </tr> 218 218 <tr> 219 <td align="center"><code>\f</code></td>219 <td style="text-align: center;"><code>\f</code></td> 220 220 <td>Form feed</td> 221 221 <td>12</td> 222 222 </tr> 223 223 <tr> 224 <td align="center"><code>\r</code></td>224 <td style="text-align: center;"><code>\r</code></td> 225 225 <td>Carriage return</td> 226 226 <td>13</td> 227 227 </tr> 228 228 <tr> 229 <td align="center"><code>\\</code></td>229 <td style="text-align: center;"><code>\\</code></td> 230 230 <td>Backslash</td> 231 231 <td>92</td> 232 232 </tr> 233 233 <tr> 234 <td align="center"><code>\"</code></td>234 <td style="text-align: center;"><code>\"</code></td> 235 235 <td>Double-quote</td> 236 236 <td>34</td> 237 237 </tr> 238 238 <tr> 239 <td align="center"><code>\'</code></td>239 <td style="text-align: center;"><code>\'</code></td> 240 240 <td>Qoute</td> 241 241 <td>39</td> 242 242 </tr> 243 243 <tr> 244 <td align="center"><code>\aaa</code></td>244 <td style="text-align: center;"><code>\aaa</code></td> 245 245 <td>Octal code</td> 246 246 <td>Various</td> 247 247 </tr> 248 248 <tr> 249 <td align="center"><code>\HHH..</code></td>249 <td style="text-align: center;"><code>\HHH..</code></td> 250 250 <td>Hexadecimal code</td> 251 251 <td>Various</td> … … 265 265 <tr> 266 266 <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> 269 269 <th>Description</th> 270 270 </tr> … … 273 273 <tr> 274 274 <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> 277 277 <td>Negate value</td> 278 278 </tr> 279 279 <tr> 280 280 <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> 283 283 <td>Binary NOT</td> 284 284 </tr> 285 285 <tr> 286 286 <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> 289 289 <td>Logical NOT</td> 290 290 </tr> 291 291 <tr> 292 292 <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> 295 295 <td>Plus (doing nothing)</td> 296 296 </tr> 297 297 <tr> 298 298 <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> 301 301 <td>Multiplication</td> 302 302 </tr> 303 303 <tr> 304 304 <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> 307 307 <td>Signed division</td> 308 308 </tr> 309 309 <tr> 310 310 <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> 313 313 <td>Unsigned division</td> 314 314 </tr> 315 315 <tr> 316 316 <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> 319 319 <td>Signed remainder</td> 320 320 </tr> 321 321 <tr> 322 322 <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> 325 325 <td>Unsigned remainder</td> 326 326 </tr> 327 327 <tr> 328 328 <td>Binary</td> 329 <td align="center"><<</td>330 <td align="center">2</td>329 <td style="text-align: center;"><<</td> 330 <td style="text-align: center;">2</td> 331 331 <td>Left shift</td> 332 332 </tr> 333 333 <tr> 334 334 <td>Binary</td> 335 <td align="center">>></td>336 <td align="center">2</td>335 <td style="text-align: center;">>></td> 336 <td style="text-align: center;">2</td> 337 337 <td>Unsigned right shift</td> 338 338 </tr> 339 339 <tr> 340 340 <td>Binary</td> 341 <td align="center">>>></td>342 <td align="center">2</td>341 <td style="text-align: center;">>>></td> 342 <td style="text-align: center;">2</td> 343 343 <td>Signed right shift</td> 344 344 </tr> 345 345 <tr> 346 346 <td>Binary</td> 347 <td align="center">&</td>348 <td align="center">3</td>347 <td style="text-align: center;">&</td> 348 <td style="text-align: center;">3</td> 349 349 <td>Binary AND</td> 350 350 </tr> 351 351 <tr> 352 352 <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> 355 355 <td>Binary OR</td> 356 356 </tr> 357 357 <tr> 358 358 <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> 361 361 <td>Binary XOR</td> 362 362 </tr> 363 363 <tr> 364 364 <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> 367 367 <td>Binary ORNOT (performs A OR ~B)</td> 368 368 </tr> 369 369 <tr> 370 370 <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> 373 373 <td>Addition</td> 374 374 </tr> 375 375 <tr> 376 376 <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> 379 379 <td>Subtraction</td> 380 380 </tr> 381 381 <tr> 382 382 <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> 385 385 <td>Equal to</td> 386 386 </tr> 387 387 <tr> 388 388 <td>Binary</td> 389 <td align="center">!=,<></td>390 <td align="center">4</td>389 <td style="text-align: center;">!=,<></td> 390 <td style="text-align: center;">4</td> 391 391 <td>Not equal to</td> 392 392 </tr> 393 393 <tr> 394 394 <td>Binary</td> 395 <td align="center"><</td>396 <td align="center">4</td>395 <td style="text-align: center;"><</td> 396 <td style="text-align: center;">4</td> 397 397 <td>Less than (signed)</td> 398 398 </tr> 399 399 <tr> 400 400 <td>Binary</td> 401 <td align="center"><=</td>402 <td align="center">4</td>401 <td style="text-align: center;"><=</td> 402 <td style="text-align: center;">4</td> 403 403 <td>Less or equal (signed)</td> 404 404 </tr> 405 405 <tr> 406 406 <td>Binary</td> 407 <td align="center">></td>408 <td align="center">4</td>407 <td style="text-align: center;">></td> 408 <td style="text-align: center;">4</td> 409 409 <td>Greater than (signed)</td> 410 410 </tr> 411 411 <tr> 412 412 <td>Binary</td> 413 <td align="center">>=</td>414 <td align="center">4</td>413 <td style="text-align: center;">>=</td> 414 <td style="text-align: center;">4</td> 415 415 <td>Greater or equal (signed)</td> 416 416 </tr> 417 417 <tr> 418 418 <td>Binary</td> 419 <td align="center"><@</td>420 <td align="center">4</td>419 <td style="text-align: center;"><@</td> 420 <td style="text-align: center;">4</td> 421 421 <td>Less than (unsigned)</td> 422 422 </tr> 423 423 <tr> 424 424 <td>Binary</td> 425 <td align="center"><=@</td>426 <td align="center">4</td>425 <td style="text-align: center;"><=@</td> 426 <td style="text-align: center;">4</td> 427 427 <td>Less or equal (unsigned)</td> 428 428 </tr> 429 429 <tr> 430 430 <td>Binary</td> 431 <td align="center">>@</td>432 <td align="center">4</td>431 <td style="text-align: center;">>@</td> 432 <td style="text-align: center;">4</td> 433 433 <td>Greater than (unsigned)</td> 434 434 </tr> 435 435 <tr> 436 436 <td>Binary</td> 437 <td align="center">>=@</td>438 <td align="center">4</td>437 <td style="text-align: center;">>=@</td> 438 <td style="text-align: center;">4</td> 439 439 <td>Greater or equal (unsigned)</td> 440 440 </tr> 441 441 <tr> 442 442 <td>Binary</td> 443 <td align="center">&&</td>444 <td align="center">5</td>443 <td style="text-align: center;">&&</td> 444 <td style="text-align: center;">5</td> 445 445 <td>Logical AND</td> 446 446 </tr> 447 447 <tr> 448 448 <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> 451 451 <td>Logical OR</td> 452 452 </tr> 453 453 <tr> 454 454 <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> 457 457 <td>Choice (this same as in C++)</td> 458 458 </tr> … … 460 460 </table> 461 461 <p>'vert-line' is <code>|</code>, and 'dbl-vert-line' is <code>||</code>.</p> 462 <p>The <code>?:</code> operator ha vethis same meanigful as in C/C++ and performed from462 <p>The <code>?:</code> operator has this same meanigful as in C/C++ and performed from 463 463 right to left side. </p> 464 464 <p><strong>Important note</strong>: Comparison operators return all ones (-1) value instead 1.</p> 465 465 <p>Symbol refering to some place can be added, subtracted, compared or negated if 466 466 final result of the expression can be represented as place of the code or absolute value 467 (without refering to any place). Anassembler performs this same operations467 (without refering to any place). The assembler performs this same operations 468 468 on the sections during evaluating an expression. Division, modulo, 469 469 binary operations (except negation), logical operations is not legal.</p>