1 .title stm8 Assembly Errors Test 2 3 .area Prog(rel,con) 4 5 6 abyt = 0x0110 ; Absolute 1-Byte Value 7 awrd = 0x015432 ; Absolute 2-Byte Value 8 aexa = 0x01BA9876 ; Absolute 3-Byte Value 9 10 rbyt = . + 0x0010 ; Relocatable 1-Byte Value 11 rwrd = . + 0x5432 ; Relocatable 2-Byte Value 12 rexa = . + 0xBA9876 ; Relocatable 3-Byte Value 13 14 15 .page 16 .sbttl Base STM8 Instructions in Numerical Order (Absolute) 17 18 ; The 1-Byte abyt value has been changed to a 2-Byte value. 19 ; Those instructions not supporting a 2-Byte mode will 20 ; report an 'a' error except most immediate mode instructions 21 ; which simply use the lower 1-Byte value. 22 ; 23 ; The 2-Byte awrd value has been changed to a 3-Byte value. 24 ; All modes with awrd will report 'a' errors except the 25 ; immediate mode which simply uses the lower 2-Byte value. 26 ; 27 ; All 3-Byte instructions simply use the lower 3-Byte value. 28 ; 29 ; 30 ; Note: 31 ; This file's comments are formatted so that 32 ; the expected assembler errors can be seen 33 ; and the generated code can be compared to 34 ; the expected code using the asxscn program. 35 ; 36 37agrp0: 38 neg (abyt,sp) ;a ; 00 10 39 rrwa x,a ; ; 01 40 rlwa x,a ; ; 02 41 cpl (abyt,sp) ;a ; 03 10 42 srl (abyt,sp) ;a ; 04 10 43 ; ; 05 44 rrc (abyt,sp) ;a ; 06 10 45 sra (abyt,sp) ;a ; 07 10 46 sla (abyt,sp) ;a ; 08 10 47 rlc (abyt,sp) ;a ; 09 10 48 dec (abyt,sp) ;a ; 0A 10 49 ; ; 0B 10 50 inc (abyt,sp) ;a ; 0C 10 51 tnz (abyt,sp) ;a ; 0D 10 52 swap (abyt,sp) ;a ; 0E 10 53 clr (abyt,sp) ;a ; 0F 10 54 55agrp1: 56 sub a,(abyt,sp) ;a ; 10 10 57 cp a,(abyt,sp) ;a ; 11 10 58 sbc a,(abyt,sp) ;a ; 12 10 59 cpw x,(abyt,sp) ;a ; 13 10 60 and a,(abyt,sp) ;a ; 14 10 61 bcp a,(abyt,sp) ;a ; 15 10 62 ldw y,(abyt,sp) ;a ; 16 10 63 ldw (abyt,sp),y ;a ; 17 10 64 xor a,(abyt,sp) ;a ; 18 10 65 adc a,(abyt,sp) ;a ; 19 10 66 or a,(abyt,sp) ;a ; 1A 10 67 add a,(abyt,sp) ;a ; 1B 10 68 addw x,#awrd ; ; 1C 54 32 69 subw x,#awrd ; ; 1D 54 32 70 ldw x,(abyt,sp) ;a ; 1E 10 71 ldw (abyt,sp),x ;a ; 1F 10 72 73 .page 74 75agrp2: 76 jra 1$ ; ; 20 0E 77 jrf 1$ ; ; 21 0C 78 jrugt 1$ ; ; 22 0A 79 jrule 1$ ; ; 23 08 80 jrnc 1$ ; ; 24 06 81 jrc 1$ ; ; 25 04 82 jrne 1$ ; ; 26 02 83 jreq 1$ ; ; 27 00 841$: jrnv 1$ ; ; 28 FE 85 jrv 1$ ; ; 29 FC 86 jrpl 1$ ; ; 2A FA 87 jrmi 1$ ; ; 2B F8 88 jrsgt 1$ ; ; 2C F6 89 jrsle 1$ ; ; 2D F4 90 jrsge 1$ ; ; 2E F2 91 jrslt 1$ ; ; 2F F0 92 93agrp3: 94 neg abyt ; ; 72 50 01 10 95 exg a,awrd ;a ; 31 54 32 96 pop awrd ;a ; 32 54 32 97 cpl abyt ; ; 72 53 01 10 98 srl abyt ; ; 72 54 01 10 99 mov awrd,#abyt ;a ; 35 10 54 32 100 rrc abyt ; ; 72 56 01 10 101 sra abyt ; ; 72 57 01 10 102 sla abyt ; ; 72 58 01 10 103 rlc abyt ; ; 72 59 01 10 104 dec abyt ; ; 72 5A 01 10 105 push awrd ;a ; 3B 54 32 106 inc abyt ; ; 72 5C 01 10 107 tnz abyt ; ; 72 5D 01 10 108 swap abyt ; ; 72 5E 01 10 109 clr abyt ; ; 72 5F 01 10 110 111 .page 112 113agrp4: 114 neg a ; ; 40 115 exg a,xl ; ; 41 116 mul x,a ; ; 42 117 cpl a ; ; 43 118 srl a ; ; 44 119 mov abyt,abyt+0x11 ; ; 55 01 21 01 10 120 rrc a ; ; 46 121 sra a ; ; 47 122 sla a ; ; 48 123 rlc a ; ; 49 124 dec a ; ; 4A 125 push #abyt ; ; 4B 10 126 inc a ; ; 4C 127 tnz a ; ; 4D 128 swap a ; ; 4E 129 clr a ; ; 4F 130 131agrp5: 132 negw x ; ; 50 133 exgw x,y ; ; 51 134 sub sp,#abyt ;a ; 52 10 135 cplw x ; ; 53 136 srlw x ; ; 54 137 mov awrd,awrd+0x1111;a ; 55 65 43 54 32 138 rrcw x ; ; 56 139 sraw x ; ; 57 140 slaw x ; ; 58 141 rlcw x ; ; 59 142 decw x ; ; 5A 143 add sp,#abyt ;a ; 5B 10 144 incw x ; ; 5C 145 tnzw x ; ; 5D 146 swapw x ; ; 5E 147 clrw x ; ; 5F 148 149 .page 150 151agrp6: 152 neg (abyt,x) ; ; 72 40 01 10 153 exg a,yl ; ; 61 154 div x,a ; ; 62 155 cpl (abyt,x) ; ; 72 43 01 10 156 srl (abyt,x) ; ; 72 44 01 10 157 divw x,y ; ; 65 158 rrc (abyt,x) ; ; 72 46 01 10 159 sra (abyt,x) ; ; 72 47 01 10 160 sla (abyt,x) ; ; 72 48 01 10 161 rlc (abyt,x) ; ; 72 49 01 10 162 dec (abyt,x) ; ; 72 4A 01 10 163 ld (abyt,sp),a ;a ; 6B 10 164 inc (abyt,x) ; ; 72 4C 01 10 165 tnz (abyt,x) ; ; 72 4D 01 10 166 swap (abyt,x) ; ; 72 4E 01 10 167 clr (abyt,x) ; ; 72 4F 01 10 168 169agrp7: 170 neg (x) ; ; 70 171 ; ; 71 172 ; ; 72 173 cpl (x) ; ; 73 174 srl (x) ; ; 74 175 ; ; 75 176 rrc (x) ; ; 76 177 sra (x) ; ; 77 178 sla (x) ; ; 78 179 rlc (x) ; ; 79 180 dec (x) ; ; 7A 181 ld a,(abyt,sp) ;a ; 7B 10 182 inc (x) ; ; 7C 183 tnz (x) ; ; 7D 184 swap (x) ; ; 7E 185 clr (x) ; ; 7F 186 187 .page 188 189agrp8: 190 iret ; ; 80 191 ret ; ; 81 192 ; ; 82 193 trap ; ; 83 194 pop a ; ; 84 195 popw x ; ; 85 196 pop cc ; ; 86 197 retf ; ; 87 198 push a ; ; 88 199 pushw x ; ; 89 200 push cc ; ; 8A 201 ; ; 8B 202 ccf ; ; 8C 203 callf aexa ; ; 8D BA 98 76 204 halt ; ; 8E 205 wfi ; ; 8F 206 207agrp9: 208 ; ; 90 209 ; ; 91 210 ; ; 92 211 ldw x,y ; ; 93 212 ldw sp,x ; ; 94 213 ld xh,a ; ; 95 214 ldw x,sp ; ; 96 215 ld xl,a ; ; 97 216 rcf ; ; 98 217 scf ; ; 99 218 rim ; ; 9A 219 sim ; ; 9B 220 rvf ; ; 9C 221 nop ; ; 9D 222 ld a,xh ; ; 9E 223 ld a,xl ; ; 9F 224 225 .page 226 227agrpA: 228 sub a,#abyt ; ; A0 10 229 cp a,#abyt ; ; A1 10 230 sbc a,#abyt ; ; A2 10 231 cpw x,#awrd ; ; A3 54 32 232 and a,#abyt ; ; A4 10 233 bcp a,#abyt ; ; A5 10 234 ld a,#abyt ; ; A6 10 235 ldf (aexa,x),a ; ; A7 BA 98 76 236 xor a,#abyt ; ; A8 10 237 adc a,#abyt ; ; A9 10 238 or a,#abyt ; ; AA 10 239 add a,#abyt ; ; AB 10 240 jpf aexa ; ; AC BA 98 76 2411$: callr 1$ ; ; AD FE 242 ldw x,#awrd ; ; AE 54 32 243 ldf a,(aexa,x) ; ; AF BA 98 76 244 245agrpB: 246 sub a,abyt ; ; C0 01 10 247 cp a,abyt ; ; C1 01 10 248 sbc a,abyt ; ; C2 01 10 249 cpw x,abyt ; ; C3 01 10 250 and a,abyt ; ; C4 01 10 251 bcp a,abyt ; ; C5 01 10 252 ld a,abyt ; ; C6 01 10 253 ld abyt,a ; ; C7 01 10 254 xor a,abyt ; ; C8 01 10 255 adc a,abyt ; ; C9 01 10 256 or a,abyt ; ; CA 01 10 257 add a,abyt ; ; CB 01 10 258 ldf a,aexa ; ; BC BA 98 76 259 ldf aexa,a ; ; BD BA 98 76 260 ldw x,abyt ; ; CE 01 10 261 ldw abyt,x ; ; CF 01 10 262 263 .page 264 265agrpC: 266 sub a,awrd ;a ; C0 54 32 267 cp a,awrd ;a ; C1 54 32 268 sbc a,awrd ;a ; C2 54 32 269 cpw x,awrd ;a ; C3 54 32 270 and a,awrd ;a ; C4 54 32 271 bcp a,awrd ;a ; C5 54 32 272 ld a,awrd ;a ; C6 54 32 273 ld awrd,a ;a ; C7 54 32 274 xor a,awrd ;a ; C8 54 32 275 adc a,awrd ;a ; C9 54 32 276 or a,awrd ;a ; CA 54 32 277 add a,awrd ;a ; CB 54 32 278 jp awrd ; ; CC 54 32 279 call awrd ; ; CD 54 32 280 ldw x,awrd ;a ; CE 54 32 281 ldw awrd,x ;a ; CF 54 32 282 283agrpD: 284 sub a,(awrd,x) ;a ; D0 54 32 285 cp a,(awrd,x) ;a ; D1 54 32 286 sbc a,(awrd,x) ;a ; D2 54 32 287 cpw y,(awrd,x) ;a ; D3 54 32 288 and a,(awrd,x) ;a ; D4 54 32 289 bcp a,(awrd,x) ;a ; D5 54 32 290 ld a,(awrd,x) ;a ; D6 54 32 291 ld (awrd,x),a ;a ; D7 54 32 292 xor a,(awrd,x) ;a ; D8 54 32 293 adc a,(awrd,x) ;a ; D9 54 32 294 or a,(awrd,x) ;a ; DA 54 32 295 add a,(awrd,x) ;a ; DB 54 32 296 jp (awrd,x) ;a ; DC 54 32 297 call (awrd,x) ;a ; DD 54 32 298 ldw x,(awrd,x) ;a ; DE 54 32 299 ldw (awrd,x),y ;a ; DF 54 32 300 301 .page 302 303agrpE: 304 sub a,(abyt,x) ; ; D0 01 10 305 cp a,(abyt,x) ; ; D1 01 10 306 sbc a,(abyt,x) ; ; D2 01 10 307 cpw y,(abyt,x) ; ; D3 01 10 308 and a,(abyt,x) ; ; D4 01 10 309 bcp a,(abyt,x) ; ; D5 01 10 310 ld a,(abyt,x) ; ; D6 01 10 311 ld (abyt,x),a ; ; D7 01 10 312 xor a,(abyt,x) ; ; D8 01 10 313 adc a,(abyt,x) ; ; D9 01 10 314 or a,(abyt,x) ; ; DA 01 10 315 add a,(abyt,x) ; ; DB 01 10 316 jp (abyt,x) ; ; DC 01 10 317 call (abyt,x) ; ; DD 01 10 318 ldw x,(abyt,x) ; ; DE 01 10 319 ldw (abyt,x),y ; ; DF 01 10 320 321agrpF: 322 sub a,(x) ; ; F0 323 cp a,(x) ; ; F1 324 sbc a,(x) ; ; F2 325 cpw y,(x) ; ; F3 326 and a,(x) ; ; F4 327 bcp a,(x) ; ; F5 328 ld a,(x) ; ; F6 329 ld (x),a ; ; F7 330 xor a,(x) ; ; F8 331 adc a,(x) ; ; F9 332 or a,(x) ; ; FA 333 add a,(x) ; ; FB 334 jp (x) ; ; FC 335 call (x) ; ; FD 336 ldw x,(x) ; ; FE 337 ldw (x),y ; ; FF 338 339 340 .page 341 .sbttl Page 72 STM8 Instructions in Numerical Order (Absolute) 342 343agrp72_0: 344 btjt awrd,#0,1$ ;a ; 72 00 54 32 23 345 btjf awrd,#0,1$ ;a ; 72 01 54 32 1E 346 btjt awrd,#1,1$ ;a ; 72 02 54 32 19 347 btjf awrd,#1,1$ ;a ; 72 03 54 32 14 348 btjt awrd,#2,1$ ;a ; 72 04 54 32 0F 349 btjf awrd,#2,1$ ;a ; 72 05 54 32 0A 350 btjt awrd,#3,1$ ;a ; 72 06 54 32 05 351 btjf awrd,#3,1$ ;a ; 72 07 54 32 00 3521$: btjt awrd,#4,1$ ;a ; 72 08 54 32 FB 353 btjf awrd,#4,1$ ;a ; 72 09 54 32 F6 354 btjt awrd,#5,1$ ;a ; 72 0A 54 32 F1 355 btjf awrd,#5,1$ ;a ; 72 0B 54 32 EC 356 btjt awrd,#6,1$ ;a ; 72 0C 54 32 E7 357 btjf awrd,#6,1$ ;a ; 72 0D 54 32 E2 358 btjt awrd,#7,1$ ;a ; 72 0E 54 32 DD 359 btjf awrd,#7,1$ ;a ; 72 0F 54 32 D8 360 361agrp72_1: 362 bset awrd,#0 ;a ; 72 10 54 32 363 bres awrd,#0 ;a ; 72 11 54 32 364 bset awrd,#1 ;a ; 72 12 54 32 365 bres awrd,#1 ;a ; 72 13 54 32 366 bset awrd,#2 ;a ; 72 14 54 32 367 bres awrd,#2 ;a ; 72 15 54 32 368 bset awrd,#3 ;a ; 72 16 54 32 369 bres awrd,#3 ;a ; 72 17 54 32 370 bset awrd,#4 ;a ; 72 18 54 32 371 bres awrd,#4 ;a ; 72 19 54 32 372 bset awrd,#5 ;a ; 72 1A 54 32 373 bres awrd,#5 ;a ; 72 1B 54 32 374 bset awrd,#6 ;a ; 72 1C 54 32 375 bres awrd,#6 ;a ; 72 1D 54 32 376 bset awrd,#7 ;a ; 72 1E 54 32 377 bres awrd,#7 ;a ; 72 1F 54 32 378 379agrp72_2: 380 381 .page 382 383agrp72_3: 384 neg [awrd] ;a ; 72 30 54 32 385 ; ; 72 31 386 ; ; 72 32 387 cpl [awrd] ;a ; 72 33 54 32 388 srl [awrd] ;a ; 72 34 54 32 389 ; ; 72 35 390 rrc [awrd] ;a ; 72 36 54 32 391 sra [awrd] ;a ; 72 37 54 32 392 sla [awrd] ;a ; 72 38 54 32 393 rlc [awrd] ;a ; 72 39 54 32 394 dec [awrd] ;a ; 72 3A 54 32 395 ; ; 72 3B 396 inc [awrd] ;a ; 72 3C 54 32 397 tnz [awrd] ;a ; 72 3D 54 32 398 swap [awrd] ;a ; 72 3E 54 32 399 clr [awrd] ;a ; 72 3F 54 32 400 401agrp72_4: 402 neg (awrd,x) ;a ; 72 40 54 32 403 ; ; 72 41 404 ; ; 72 42 405 cpl (awrd,x) ;a ; 72 43 54 32 406 srl (awrd,x) ;a ; 72 44 54 32 407 ; ; 72 45 408 rrc (awrd,x) ;a ; 72 46 54 32 409 sra (awrd,x) ;a ; 72 47 54 32 410 sla (awrd,x) ;a ; 72 48 54 32 411 rlc (awrd,x) ;a ; 72 49 54 32 412 dec (awrd,x) ;a ; 72 4A 54 32 413 ; ; 72 4B 414 inc (awrd,x) ;a ; 72 4C 54 32 415 tnz (awrd,x) ;a ; 72 4D 54 32 416 swap (awrd,x) ;a ; 72 4E 54 32 417 clr (awrd,x) ;a ; 72 4F 54 32 418 419 .page 420 421agrp72_5: 422 neg awrd ;a ; 72 50 54 32 423 ; ; 72 51 424 ; ; 72 52 425 cpl awrd ;a ; 72 53 54 32 426 srl awrd ;a ; 72 54 54 32 427 ; ; 72 55 428 rrc awrd ;a ; 72 56 54 32 429 sra awrd ;a ; 72 57 54 32 430 sla awrd ;a ; 72 58 54 32 431 rlc awrd ;a ; 72 59 54 32 432 dec awrd ;a ; 72 5A 54 32 433 ; ; 72 5B 434 inc awrd ;a ; 72 5C 54 32 435 tnz awrd ;a ; 72 5D 54 32 436 swap awrd ;a ; 72 5E 54 32 437 clr awrd ;a ; 72 5F 54 32 438 439agrp72_6: 440 neg ([awrd],x) ;a ; 72 60 54 32 441 ; ; 72 61 442 ; ; 72 62 443 cpl ([awrd],x) ;a ; 72 63 54 32 444 srl ([awrd],x) ;a ; 72 64 54 32 445 ; ; 72 65 446 rrc ([awrd],x) ;a ; 72 66 54 32 447 sra ([awrd],x) ;a ; 72 67 54 32 448 sla ([awrd],x) ;a ; 72 68 54 32 449 rlc ([awrd],x) ;a ; 72 69 54 32 450 dec ([awrd],x) ;a ; 72 6A 54 32 451 ; ; 72 6B 452 inc ([awrd],x) ;a ; 72 6C 54 32 453 tnz ([awrd],x) ;a ; 72 6D 54 32 454 swap ([awrd],x) ;a ; 72 6E 54 32 455 clr ([awrd],x) ;a ; 72 6F 54 32 456 457 .page 458 459agrp72_7: 460 461agrp72_8: 462 wfe ; ; 72 8F 463 464agrp72_9: 465 466agrp72_A: 467 subw y,#awrd ; ; 72 A2 54 32 468 addw y,#awrd ; ; 72 A9 54 32 469 470agrp72_B: 471 subw x,abyt ;a ; 72 B0 10 472 subw y,abyt ;a ; 72 B2 10 473 addw y,abyt ;a ; 72 B9 10 474 addw x,abyt ;a ; 72 BB 10 475 476 .page 477 478agrp72_C: 479 sub a,[awrd] ;a ; 72 C0 54 32 480 cp a,[awrd] ;a ; 72 C1 54 32 481 sbc a,[awrd] ;a ; 72 C2 54 32 482 cpw x,[awrd] ;a ; 72 C3 54 32 483 and a,[awrd] ;a ; 72 C4 54 32 484 bcp a,[awrd] ;a ; 72 C5 54 32 485 ld a,[awrd] ;a ; 72 C6 54 32 486 ld [awrd],a ;a ; 72 C7 54 32 487 xor a,[awrd] ;a ; 72 C8 54 32 488 adc a,[awrd] ;a ; 72 C9 54 32 489 or a,[awrd] ;a ; 72 CA 54 32 490 add a,[awrd] ;a ; 72 CB 54 32 491 jp [awrd] ;a ; 72 CC 54 32 492 call [awrd] ;a ; 72 CD 54 32 493 ldw x,[awrd] ;a ; 72 CE 54 32 494 ldw [awrd],x ;a ; 72 CF 54 32 495 496agrp72_D: 497 sub a,([awrd],x) ;a ; 72 D0 54 32 498 cp a,([awrd],x) ;a ; 72 D1 54 32 499 sbc a,([awrd],x) ;a ; 72 D2 54 32 500 cpw y,([awrd],x) ;a ; 72 D3 54 32 501 and a,([awrd],x) ;a ; 72 D4 54 32 502 bcp a,([awrd],x) ;a ; 72 D5 54 32 503 ld a,([awrd],x) ;a ; 72 D6 54 32 504 ld ([awrd],x),a ;a ; 72 D7 54 32 505 xor a,([awrd],x) ;a ; 72 D8 54 32 506 adc a,([awrd],x) ;a ; 72 D9 54 32 507 or a,([awrd],x) ;a ; 72 DA 54 32 508 add a,([awrd],x) ;a ; 72 DB 54 32 509 jp ([awrd],x) ;a ; 72 DC 54 32 510 call ([awrd],x) ;a ; 72 DD 54 32 511 ldw x,([awrd],x) ;a ; 72 DE 54 32 512 ldw ([awrd],x),y ;a ; 72 DF 54 32 513 514agrp72_E: 515 516agrp72_F: 517 subw x,(abyt,sp) ;a ; 72 F0 10 518 subw y,(abyt,sp) ;a ; 72 F2 10 519 addw y,(abyt,sp) ;a ; 72 F9 10 520 addw x,(abyt,sp) ;a ; 72 FB 10 521 522 523 .page 524 .sbttl Page 90 STM8 Instructions in Numerical Order (Absolute) 525 526agrp90_0: 527 rrwa y,a ; ; 90 01 528 rlwa y,a ; ; 90 02 529 530agrp90_1: 531 bcpl awrd,#0 ;a ; 90 10 54 32 532 bccm awrd,#0 ;a ; 90 11 54 32 533 bcpl awrd,#1 ;a ; 90 12 54 32 534 bccm awrd,#1 ;a ; 90 13 54 32 535 bcpl awrd,#2 ;a ; 90 14 54 32 536 bccm awrd,#2 ;a ; 90 15 54 32 537 bcpl awrd,#3 ;a ; 90 16 54 32 538 bccm awrd,#3 ;a ; 90 17 54 32 539 bcpl awrd,#4 ;a ; 90 18 54 32 540 bccm awrd,#4 ;a ; 90 19 54 32 541 bcpl awrd,#5 ;a ; 90 1A 54 32 542 bccm awrd,#5 ;a ; 90 1B 54 32 543 bcpl awrd,#6 ;a ; 90 1C 54 32 544 bccm awrd,#6 ;a ; 90 1D 54 32 545 bcpl awrd,#7 ;a ; 90 1E 54 32 546 bccm awrd,#7 ;a ; 90 1F 54 32 547 548agrp90_2: 549 jrnh 1$ ; ; 90 28 0C 550 jrh 1$ ; ; 90 29 09 551 jrnm 1$ ; ; 90 2C 06 552 jrm 1$ ; ; 90 2D 03 553 jril 1$ ; ; 90 2E 00 5541$: jrih 1$ ; ; 90 2F FD 555 556agrp90_3: 557 558 .page 559 560agrp90_4: 561 neg (awrd,y) ;a ; 90 40 54 32 562 ; ; 90 41 563 mul y,a ; ; 90 42 564 cpl (awrd,y) ;a ; 90 43 54 32 565 srl (awrd,y) ;a ; 90 44 54 32 566 ; ; 90 45 567 rrc (awrd,y) ;a ; 90 46 54 32 568 sra (awrd,y) ;a ; 90 47 54 32 569 sla (awrd,y) ;a ; 90 48 54 32 570 rlc (awrd,y) ;a ; 90 49 54 32 571 dec (awrd,y) ;a ; 90 4A 54 32 572 ; ; 90 4B 573 inc (awrd,y) ;a ; 90 4C 54 32 574 tnz (awrd,y) ;a ; 90 4D 54 32 575 swap (awrd,y) ;a ; 90 4E 54 32 576 clr (awrd,y) ;a ; 90 4F 54 32 577 578 agrp90_5: 579 negw y ; ; 90 50 580 ; ; 90 51 581 ; ; 90 52 582 cplw y ; ; 90 53 583 srlw y ; ; 90 54 584 ; ; 90 55 585 rrcw y ; ; 90 56 586 sraw y ; ; 90 57 587 slaw y ; ; 90 58 588 rlcw y ; ; 90 59 589 decw y ; ; 90 5A 590 ; ; 90 5B 591 incw y ; ; 90 5C 592 tnzw y ; ; 90 5D 593 swapw y ; ; 90 5E 594 clrw y ; ; 90 5F 595 596.page 597 598agrp90_6: 599 neg (abyt,y) ; ; 90 40 01 10 600 ; ; 90 61 601 div y,a ; ; 90 62 602 cpl (abyt,y) ; ; 90 43 01 10 603 srl (abyt,y) ; ; 90 44 01 10 604 ; ; 90 65 605 rrc (abyt,y) ; ; 90 46 01 10 606 sra (abyt,y) ; ; 90 47 01 10 607 sla (abyt,y) ; ; 90 48 01 10 608 rlc (abyt,y) ; ; 90 49 01 10 609 dec (abyt,y) ; ; 90 4A 01 10 610 ; ; 90 6B 611 inc (abyt,y) ; ; 90 4C 01 10 612 tnz (abyt,y) ; ; 90 4D 01 10 613 swap (abyt,y) ; ; 90 4E 01 10 614 clr (abyt,y) ; ; 90 4F 01 10 615 616 agrp90_7: 617 neg (y) ; ; 90 70 618 ; ; 90 71 619 ; ; 90 72 620 cpl (y) ; ; 90 73 621 srl (y) ; ; 90 74 622 ; ; 90 75 623 rrc (y) ; ; 90 76 624 sra (y) ; ; 90 77 625 sla (y) ; ; 90 78 626 rlc (y) ; ; 90 79 627 dec (y) ; ; 90 7A 628 ; ; 90 7B 629 inc (y) ; ; 90 7C 630 tnz (y) ; ; 90 7D 631 swap (y) ; ; 90 7E 632 clr (y) ; ; 90 7F 633 634.page 635 636agrp90_8: 637 popw y ; ; 90 85 638 pushw y ; ; 90 89 639 640agrp90_9: 641 ldw y,x ; ; 90 93 642 ldw sp,y ; ; 90 94 643 ld yh,a ; ; 90 95 644 ldw y,sp ; ; 90 96 645 ld yl,a ; ; 90 97 646 ld a,yh ; ; 90 9E 647 ld a,yl ; ; 90 9F 648 649agrp90_A: 650 cpw y,#awrd ; ; 90 A3 54 32 651 ldf (aexa,y),a ; ; 90 A7 BA 98 76 652 ldw y,#awrd ; ; 90 AE 54 32 653 ldf a,(aexa,y) ; ; 90 AF BA 98 76 654 655agrp90_B: 656 cpw y,abyt ; ; 90 C3 01 10 657 ldw y,abyt ; ; 90 CE 01 10 658 ldw abyt,y ; ; 90 CF 01 10 659 660agrp90_C: 661 cpw y,awrd ;a ; 90 C3 54 32 662 ldw y,awrd ;a ; 90 CE 54 32 663 ldw awrd,y ;a ; 90 CF 54 32 664 665agrp90_D: 666 sub a,(awrd,y) ;a ; 90 D0 54 32 667 cp a,(awrd,y) ;a ; 90 D1 54 32 668 sbc a,(awrd,y) ;a ; 90 D2 54 32 669 cpw x,(awrd,y) ;a ; 90 D3 54 32 670 and a,(awrd,y) ;a ; 90 D4 54 32 671 bcp a,(awrd,y) ;a ; 90 D5 54 32 672 ld a,(awrd,y) ;a ; 90 D6 54 32 673 ld (awrd,y),a ;a ; 90 D7 54 32 674 xor a,(awrd,y) ;a ; 90 D8 54 32 675 adc a,(awrd,y) ;a ; 90 D9 54 32 676 or a,(awrd,y) ;a ; 90 DA 54 32 677 add a,(awrd,y) ;a ; 90 DB 54 32 678 jp (awrd,y) ;a ; 90 DC 54 32 679 call (awrd,y) ;a ; 90 DD 54 32 680 ldw y,(awrd,y) ;a ; 90 DE 54 32 681 ldw (awrd,y),x ;a ; 90 DF 54 32 682 683 .page 684 685agrp90_E: 686 sub a,(abyt,y) ; ; 90 D0 01 10 687 cp a,(abyt,y) ; ; 90 D1 01 10 688 sbc a,(abyt,y) ; ; 90 D2 01 10 689 cpw x,(abyt,y) ; ; 90 D3 01 10 690 and a,(abyt,y) ; ; 90 D4 01 10 691 bcp a,(abyt,y) ; ; 90 D5 01 10 692 ld a,(abyt,y) ; ; 90 D6 01 10 693 ld (abyt,y),a ; ; 90 D7 01 10 694 xor a,(abyt,y) ; ; 90 D8 01 10 695 adc a,(abyt,y) ; ; 90 D9 01 10 696 or a,(abyt,y) ; ; 90 DA 01 10 697 add a,(abyt,y) ; ; 90 DB 01 10 698 jp (abyt,y) ; ; 90 DC 01 10 699 call (abyt,y) ; ; 90 DD 01 10 700 ldw y,(abyt,y) ; ; 90 DE 01 10 701 ldw (abyt,y),x ; ; 90 DF 01 10 702 703agrp90_F: 704 sub a,(y) ; ; 90 F0 705 cp a,(y) ; ; 90 F1 706 sbc a,(y) ; ; 90 F2 707 cpw x,(y) ; ; 90 F3 708 and a,(y) ; ; 90 F4 709 bcp a,(y) ; ; 90 F5 710 ld a,(y) ; ; 90 F6 711 ld (y),a ; ; 90 F7 712 xor a,(y) ; ; 90 F8 713 adc a,(y) ; ; 90 F9 714 or a,(y) ; ; 90 FA 715 add a,(y) ; ; 90 FB 716 jp (y) ; ; 90 FC 717 call (y) ; ; 90 FD 718 ldw y,(y) ; ; 90 FE 719 ldw (y),x ; ; 90 FF 720 721 722 .page 723 .sbttl Page 91 STM8 Instructions in Numerical Order (Absolute) 724 725agrp91_0: 726 727agrp91_1: 728 729agrp91_2: 730 731agrp91_3: 732 733agrp91_4: 734 735agrp91_5: 736 737agrp91_6: 738 neg ([abyt],y) ;a ; 91 60 10 739 ; ; 91 61 740 ; ; 91 62 741 cpl ([abyt],y) ;a ; 91 63 10 742 srl ([abyt],y) ;a ; 91 64 10 743 ; ; 91 65 744 rrc ([abyt],y) ;a ; 91 66 10 745 sra ([abyt],y) ;a ; 91 67 10 746 sla ([abyt],y) ;a ; 91 68 10 747 rlc ([abyt],y) ;a ; 91 69 10 748 dec ([abyt],y) ;a ; 91 6A 10 749 ; ; 91 6B 750 inc ([abyt],y) ;a ; 91 6C 10 751 tnz ([abyt],y) ;a ; 91 6D 10 752 swap ([abyt],y) ;a ; 91 6E 10 753 clr ([abyt],y) ;a ; 91 6F 10 754 755agrp91_7: 756 757 .page 758 759agrp91_8: 760 761agrp91_9: 762 763agrp91_A: 764 ldf ([awrd],y),a ;a ; 91 A7 54 32 765 ldf a,([awrd],y) ;a ; 91 AF 54 32 766 767agrp91_B: 768 769agrp91_C: 770 cpw y,[abyt] ;a ; 91 C3 10 771 ldw y,[abyt] ;a ; 91 CE 10 772 ldw [abyt],y ;a ; 91 CF 10 773 774agrp91_D: 775 sub a,([abyt],y) ;a ; 91 D0 10 776 cp a,([abyt],y) ;a ; 91 D1 10 777 sbc a,([abyt],y) ;a ; 91 D2 10 778 cpw x,([abyt],y) ;a ; 91 D3 10 779 and a,([abyt],y) ;a ; 91 D4 10 780 bcp a,([abyt],y) ;a ; 91 D5 10 781 ld a,([abyt],y) ;a ; 91 D6 10 782 ld ([abyt],y),a ;a ; 91 D7 10 783 xor a,([abyt],y) ;a ; 91 D8 10 784 adc a,([abyt],y) ;a ; 91 D9 10 785 or a,([abyt],y) ;a ; 91 DA 10 786 add a,([abyt],y) ;a ; 91 DB 10 787 jp ([abyt],y) ;a ; 91 DC 10 788 call ([abyt],y) ;a ; 91 DD 10 789 ldw y,([abyt],y) ;a ; 91 DE 10 790 ldw ([abyt],y),x ;a ; 91 DF 10 791 792agrp91_E: 793 794agrp91_F: 795 796 .page 797 .sbttl Page 92 STM8 Instructions in Numerical Order (Absolute) 798 799agrp92_0: 800 801agrp92_1: 802 803agrp92_2: 804 805agrp92_3: 806 neg [abyt] ; ; 72 30 01 10 807 ; ; 92 31 808 ; ; 92 32 809 cpl [abyt] ; ; 72 33 01 10 810 srl [abyt] ; ; 72 34 01 10 811 ; ; 92 35 812 rrc [abyt] ; ; 72 36 01 10 813 sra [abyt] ; ; 72 37 01 10 814 sla [abyt] ; ; 72 38 01 10 815 rlc [abyt] ; ; 72 39 01 10 816 dec [abyt] ; ; 72 3A 01 10 817 ; ; 92 3B 818 inc [abyt] ; ; 72 3C 01 10 819 tnz [abyt] ; ; 72 3D 01 10 820 swap [abyt] ; ; 72 3E 01 10 821 clr [abyt] ; ; 72 3F 01 10 822 823agrp92_4: 824 825agrp92_5: 826 827agrp92_6: 828 neg ([abyt],x) ; ; 72 60 01 10 829 ; ; 92 61 830 ; ; 92 62 831 cpl ([abyt],x) ; ; 72 63 01 10 832 srl ([abyt],x) ; ; 72 64 01 10 833 ; ; 92 65 834 rrc ([abyt],x) ; ; 72 66 01 10 835 sra ([abyt],x) ; ; 72 67 01 10 836 sla ([abyt],x) ; ; 72 68 01 10 837 rlc ([abyt],x) ; ; 72 69 01 10 838 dec ([abyt],x) ; ; 72 6A 01 10 839 ; ; 92 6B 840 inc ([abyt],x) ; ; 72 6C 01 10 841 tnz ([abyt],x) ; ; 72 6D 01 10 842 swap ([abyt],x) ; ; 72 6E 01 10 843 clr ([abyt],x) ; ; 72 6F 01 10 844 845agrp92_7: 846 847 .page 848 849agrp92_8: 850 callf [awrd] ;a ; 92 8D 54 32 851 852agrp92_9: 853 854agrp92_A: 855 ldf ([awrd],x),a ;a ; 92 A7 54 32 856 jpf [awrd] ;a ; 92 AC 54 32 857 ldf a,([awrd],x) ;a ; 92 AF 54 32 858 859agrp92_B: 860 ldf a,[awrd] ;a ; 92 BC 54 32 861 ldf [awrd],a ;a ; 92 BD 54 32 862 863agrp92_C: 864 sub a,[abyt] ; ; 72 C0 01 10 865 cp a,[abyt] ; ; 72 C1 01 10 866 sbc a,[abyt] ; ; 72 C2 01 10 867 cpw x,[abyt] ; ; 72 C3 01 10 868 and a,[abyt] ; ; 72 C4 01 10 869 bcp a,[abyt] ; ; 72 C5 01 10 870 ld a,[abyt] ; ; 72 C6 01 10 871 ld [abyt],a ; ; 72 C7 01 10 872 xor a,[abyt] ; ; 72 C8 01 10 873 adc a,[abyt] ; ; 72 C9 01 10 874 or a,[abyt] ; ; 72 CA 01 10 875 add a,[abyt] ; ; 72 CB 01 10 876 jp [abyt] ; ; 72 CC 01 10 877 call [abyt] ; ; 72 CD 01 10 878 ldw x,[abyt] ; ; 72 CE 01 10 879 ldw [abyt],x ; ; 72 CF 01 10 880 881agrp92_D: 882 sub a,([abyt],x) ; ; 72 D0 01 10 883 cp a,([abyt],x) ; ; 72 D1 01 10 884 sbc a,([abyt],x) ; ; 72 D2 01 10 885 cpw y,([abyt],x) ; ; 72 D3 01 10 886 and a,([abyt],x) ; ; 72 D4 01 10 887 bcp a,([abyt],x) ; ; 72 D5 01 10 888 ld a,([abyt],x) ; ; 72 D6 01 10 889 ld ([abyt],x),a ; ; 72 D7 01 10 890 xor a,([abyt],x) ; ; 72 D8 01 10 891 adc a,([abyt],x) ; ; 72 D9 01 10 892 or a,([abyt],x) ; ; 72 DA 01 10 893 add a,([abyt],x) ; ; 72 DB 01 10 894 jp ([abyt],x) ; ; 72 DC 01 10 895 call ([abyt],x) ; ; 72 DD 01 10 896 ldw x,([abyt],x) ; ; 72 DE 01 10 897 ldw ([abyt],x),y ; ; 72 DF 01 10 898 899agrp92_E: 900 901agrp92_F: 902 903 904 .page 905 .sbttl Base STM8 Instructions External 1-Byte Promotion to 2-Byte 906 907 ; Note: 1-Byte external references are promoted to 908 ; 2-Byte references if the 2-Byte addressing 909 ; mode is allowed. 910 ; 911 ; If the 1-Byte does not promote to the 2-Byte 912 ; mode and the external reference is not within 913 ; the range 0x00 - 0xFF the linker will report 914 ; an error. 915 ; 916 ; The externally defined zbyt, zwrd, and zexa values 917 ; will result in linker errors for all references to 918 ; zbyt which cannot be promoted to 2-Byte modes. All 919 ; zwrd references will result in linker errors. 920 ; Immediate references for zbyt and zwrd will simply 921 ; be truncated to 1-Byte or 2-Byte values respectively. 922 ; All references to zexa will simply use the lower 3-Byte 923 ; values. 924 925 .define rbyt, /zbyt+0x010/ 926 .define rwrd, /zwrd+0x15432/ 927 .define rexa, /zexa+0x1BA9876/ 928 929xgrp0: 930 neg (rbyt,sp) ; ; 00u10 931 rrwa x,a ; ; 01 932 rlwa x,a ; ; 02 933 cpl (rbyt,sp) ; ; 03u10 934 srl (rbyt,sp) ; ; 04u10 935 ; ; 05 936 rrc (rbyt,sp) ; ; 06u10 937 sra (rbyt,sp) ; ; 07u10 938 sla (rbyt,sp) ; ; 08u10 939 rlc (rbyt,sp) ; ; 09u10 940 dec (rbyt,sp) ; ; 0Au10 941 ; ; 0B 942 inc (rbyt,sp) ; ; 0Cu10 943 tnz (rbyt,sp) ; ; 0Du10 944 swap (rbyt,sp) ; ; 0Eu10 945 clr (rbyt,sp) ; ; 0Fu10 946 947xgrp1: 948 sub a,(rbyt,sp) ; ; 10u10 949 cp a,(rbyt,sp) ; ; 11u10 950 sbc a,(rbyt,sp) ; ; 12u10 951 cpw x,(rbyt,sp) ; ; 13u10 952 and a,(rbyt,sp) ; ; 14u10 953 bcp a,(rbyt,sp) ; ; 15u10 954 ldw y,(rbyt,sp) ; ; 16u10 955 ldw (rbyt,sp),y ; ; 17u10 956 xor a,(rbyt,sp) ; ; 18u10 957 adc a,(rbyt,sp) ; ; 19u10 958 or a,(rbyt,sp) ; ; 1Au10 959 add a,(rbyt,sp) ; ; 1Bu10 960 addw x,#rwrd ; ; 1Cs54r32 961 subw x,#rwrd ; ; 1Ds54r32 962 ldw x,(rbyt,sp) ; ; 1Eu10 963 ldw (rbyt,sp),x ; ; 1Fu10 964 965 .page 966 967xgrp2: 968 jra 1$ ; ; 20 0E 969 jrf 1$ ; ; 21 0C 970 jrugt 1$ ; ; 22 0A 971 jrule 1$ ; ; 23 08 972 jrnc 1$ ; ; 24 06 973 jrc 1$ ; ; 25 04 974 jrne 1$ ; ; 26 02 975 jreq 1$ ; ; 27 00 9761$: jrnv 1$ ; ; 28 FE 977 jrv 1$ ; ; 29 FC 978 jrpl 1$ ; ; 2A FA 979 jrmi 1$ ; ; 2B F8 980 jrsgt 1$ ; ; 2C F6 981 jrsle 1$ ; ; 2D F4 982 jrsge 1$ ; ; 2E F2 983 jrslt 1$ ; ; 2F F0 984 985xgrp3: 986 neg rbyt ; ; 72 50v00u10 987 exg a,rwrd ; ; 31v54u32 988 pop rwrd ; ; 32v54u32 989 cpl rbyt ; ; 72 53v00u10 990 srl rbyt ; ; 72 54v00u10 991 mov rwrd,#rbyt ; ; 35r10v54u32 992 rrc rbyt ; ; 72 56v00u10 993 sra rbyt ; ; 72 57v00u10 994 sla rbyt ; ; 72 58v00u10 995 rlc rbyt ; ; 72 59v00u10 996 dec rbyt ; ; 72 5Av00u10 997 push rwrd ; ; 3Bv54u32 998 inc rbyt ; ; 72 5Cv00u10 999 tnz rbyt ; ; 72 5Dv00u10 1000 swap rbyt ; ; 72 5Ev00u10 1001 clr rbyt ; ; 72 5Fv00u10 1002 1003 .page 1004 1005xgrp4: 1006 neg a ; ; 40 1007 exg a,xl ; ; 41 1008 mul x,a ; ; 42 1009 cpl a ; ; 43 1010 srl a ; ; 44 1011 mov rbyt,rbyt+0x11 ; ; 55v00u21v00u10 1012 rrc a ; ; 46 1013 sra a ; ; 47 1014 sla a ; ; 48 1015 rlc a ; ; 49 1016 dec a ; ; 4A 1017 push #rbyt ; ; 4Br10 1018 inc a ; ; 4C 1019 tnz a ; ; 4D 1020 swap a ; ; 4E 1021 clr a ; ; 4F 1022 1023xgrp5: 1024 negw x ; ; 50 1025 exgw x,y ; ; 51 1026 sub sp,#rbyt ; ; 52u10 1027 cplw x ; ; 53 1028 srlw x ; ; 54 1029 mov rwrd,rwrd+0x1111; ; 55v65u43v54u32 1030 rrcw x ; ; 56 1031 sraw x ; ; 57 1032 slaw x ; ; 58 1033 rlcw x ; ; 59 1034 decw x ; ; 5A 1035 add sp,#rbyt ; ; 5Bu10 1036 incw x ; ; 5C 1037 tnzw x ; ; 5D 1038 swapw x ; ; 5E 1039 clrw x ; ; 5F 1040 1041 .page 1042 1043xgrp6: 1044 neg (rbyt,x) ; ; 72 40v00u10 1045 exg a,yl ; ; 61 1046 div x,a ; ; 62 1047 cpl (rbyt,x) ; ; 72 43v00u10 1048 srl (rbyt,x) ; ; 72 44v00u10 1049 divw x,y ; ; 65 1050 rrc (rbyt,x) ; ; 72 46v00u10 1051 sra (rbyt,x) ; ; 72 47v00u10 1052 sla (rbyt,x) ; ; 72 48v00u10 1053 rlc (rbyt,x) ; ; 72 49v00u10 1054 dec (rbyt,x) ; ; 72 4Av00u10 1055 ld (rbyt,sp),a ; ; 6Bu10 1056 inc (rbyt,x) ; ; 72 4Cv00u10 1057 tnz (rbyt,x) ; ; 72 4Dv00u10 1058 swap (rbyt,x) ; ; 72 4Ev00u10 1059 clr (rbyt,x) ; ; 72 4Fv00u10 1060 1061xgrp7: 1062 neg (x) ; ; 70 1063 ; ; 71 1064 ; ; 72 1065 cpl (x) ; ; 73 1066 srl (x) ; ; 74 1067 ; ; 75 1068 rrc (x) ; ; 76 1069 sra (x) ; ; 77 1070 sla (x) ; ; 78 1071 rlc (x) ; ; 79 1072 dec (x) ; ; 7A 1073 ld a,(rbyt,sp) ; ; 7Bu10 1074 inc (x) ; ; 7C 1075 tnz (x) ; ; 7D 1076 swap (x) ; ; 7E 1077 clr (x) ; ; 7F 1078 1079 .page 1080 1081xgrp8: 1082 iret ; ; 80 1083 ret ; ; 81 1084 ; ; 82 1085 trap ; ; 83 1086 pop a ; ; 84 1087 popw x ; ; 85 1088 pop cc ; ; 86 1089 retf ; ; 87 1090 push a ; ; 88 1091 pushw x ; ; 89 1092 push cc ; ; 8A 1093 ; ; 8B 1094 ccf ; ; 8C 1095 callf rexa ; ; 8DRBAs98r76 1096 halt ; ; 8E 1097 wfi ; ; 8F 1098 1099xgrp9: 1100 ; ; 90 1101 ; ; 91 1102 ; ; 92 1103 ldw x,y ; ; 93 1104 ldw sp,x ; ; 94 1105 ld xh,a ; ; 95 1106 ldw x,sp ; ; 96 1107 ld xl,a ; ; 97 1108 rcf ; ; 98 1109 scf ; ; 99 1110 rim ; ; 9A 1111 sim ; ; 9B 1112 rvf ; ; 9C 1113 nop ; ; 9D 1114 ld a,xh ; ; 9E 1115 ld a,xl ; ; 9F 1116 1117 .page 1118 1119xgrpA: 1120 sub a,#rbyt ; ; A0r10 1121 cp a,#rbyt ; ; A1r10 1122 sbc a,#rbyt ; ; A2r10 1123 cpw x,#rwrd ; ; A3s54r32 1124 and a,#rbyt ; ; A4r10 1125 bcp a,#rbyt ; ; A5r10 1126 ld a,#rbyt ; ; A6r10 1127 ldf (rexa,x),a ; ; A7RBAs98r76 1128 xor a,#rbyt ; ; A8r10 1129 adc a,#rbyt ; ; A9r10 1130 or a,#rbyt ; ; AAr10 1131 add a,#rbyt ; ; ABr10 1132 jpf rexa ; ; ACRBAs98r76 11331$: callr 1$ ; ; AD FE 1134 ldw x,#rwrd ; ; AEs54r32 1135 ldf a,(rexa,x) ; ; AFRBAs98r76 1136 1137xgrpB: 1138 sub a,rbyt ; ; C0v00u10 1139 cp a,rbyt ; ; C1v00u10 1140 sbc a,rbyt ; ; C2v00u10 1141 cpw x,rbyt ; ; C3v00u10 1142 and a,rbyt ; ; C4v00u10 1143 bcp a,rbyt ; ; C5v00u10 1144 ld a,rbyt ; ; C6v00u10 1145 ld rbyt,a ; ; C7v00u10 1146 xor a,rbyt ; ; C8v00u10 1147 adc a,rbyt ; ; C9v00u10 1148 or a,rbyt ; ; CAv00u10 1149 add a,rbyt ; ; CBv00u10 1150 ldf a,rexa ; ; BCRBAs98r76 1151 ldf rexa,a ; ; BDRBAs98r76 1152 ldw x,rbyt ; ; CEv00u10 1153 ldw rbyt,x ; ; CFv00u10 1154 1155 .page 1156 1157xgrpC: 1158 sub a,rwrd ; ; C0v54u32 1159 cp a,rwrd ; ; C1v54u32 1160 sbc a,rwrd ; ; C2v54u32 1161 cpw x,rwrd ; ; C3v54u32 1162 and a,rwrd ; ; C4v54u32 1163 bcp a,rwrd ; ; C5v54u32 1164 ld a,rwrd ; ; C6v54u32 1165 ld rwrd,a ; ; C7v54u32 1166 xor a,rwrd ; ; C8v54u32 1167 adc a,rwrd ; ; C9v54u32 1168 or a,rwrd ; ; CAv54u32 1169 add a,rwrd ; ; CBv54u32 1170 jp rwrd ; ; CCs54r32 1171 call rwrd ; ; CDs54r32 1172 ldw x,rwrd ; ; CEv54u32 1173 ldw rwrd,x ; ; CFv54u32 1174 1175xgrpD: 1176 sub a,(rwrd,x) ; ; D0v54u32 1177 cp a,(rwrd,x) ; ; D1v54u32 1178 sbc a,(rwrd,x) ; ; D2v54u32 1179 cpw y,(rwrd,x) ; ; D3v54u32 1180 and a,(rwrd,x) ; ; D4v54u32 1181 bcp a,(rwrd,x) ; ; D5v54u32 1182 ld a,(rwrd,x) ; ; D6v54u32 1183 ld (rwrd,x),a ; ; D7v54u32 1184 xor a,(rwrd,x) ; ; D8v54u32 1185 adc a,(rwrd,x) ; ; D9v54u32 1186 or a,(rwrd,x) ; ; DAv54u32 1187 add a,(rwrd,x) ; ; DBv54u32 1188 jp (rwrd,x) ; ; DCv54u32 1189 call (rwrd,x) ; ; DDv54u32 1190 ldw x,(rwrd,x) ; ; DEv54u32 1191 ldw (rwrd,x),y ; ; DFv54u32 1192 1193 .page 1194 1195xgrpE: 1196 sub a,(rbyt,x) ; ; D0v00u10 1197 cp a,(rbyt,x) ; ; D1v00u10 1198 sbc a,(rbyt,x) ; ; D2v00u10 1199 cpw y,(rbyt,x) ; ; D3v00u10 1200 and a,(rbyt,x) ; ; D4v00u10 1201 bcp a,(rbyt,x) ; ; D5v00u10 1202 ld a,(rbyt,x) ; ; D6v00u10 1203 ld (rbyt,x),a ; ; D7v00u10 1204 xor a,(rbyt,x) ; ; D8v00u10 1205 adc a,(rbyt,x) ; ; D9v00u10 1206 or a,(rbyt,x) ; ; DAv00u10 1207 add a,(rbyt,x) ; ; DBv00u10 1208 jp (rbyt,x) ; ; DCv00u10 1209 call (rbyt,x) ; ; DDv00u10 1210 ldw x,(rbyt,x) ; ; DEv00u10 1211 ldw (rbyt,x),y ; ; DFv00u10 1212 1213xgrpF: 1214 sub a,(x) ; ; F0 1215 cp a,(x) ; ; F1 1216 sbc a,(x) ; ; F2 1217 cpw y,(x) ; ; F3 1218 and a,(x) ; ; F4 1219 bcp a,(x) ; ; F5 1220 ld a,(x) ; ; F6 1221 ld (x),a ; ; F7 1222 xor a,(x) ; ; F8 1223 adc a,(x) ; ; F9 1224 or a,(x) ; ; FA 1225 add a,(x) ; ; FB 1226 jp (x) ; ; FC 1227 call (x) ; ; FD 1228 ldw x,(x) ; ; FE 1229 ldw (x),y ; ; FF 1230 1231 1232 .page 1233 .sbttl Page 72 STM8 Instructions External 1-Byte Promotion to 2-Byte 1234 1235xgrp72_0: 1236 btjt rwrd,#0,1$ ; ; 72 00v54u32 23 1237 btjf rwrd,#0,1$ ; ; 72 01v54u32 1E 1238 btjt rwrd,#1,1$ ; ; 72 02v54u32 19 1239 btjf rwrd,#1,1$ ; ; 72 03v54u32 14 1240 btjt rwrd,#2,1$ ; ; 72 04v54u32 0F 1241 btjf rwrd,#2,1$ ; ; 72 05v54u32 0A 1242 btjt rwrd,#3,1$ ; ; 72 06v54u32 05 1243 btjf rwrd,#3,1$ ; ; 72 07v54u32 00 12441$: btjt rwrd,#4,1$ ; ; 72 08v54u32 FB 1245 btjf rwrd,#4,1$ ; ; 72 09v54u32 F6 1246 btjt rwrd,#5,1$ ; ; 72 0Av54u32 F1 1247 btjf rwrd,#5,1$ ; ; 72 0Bv54u32 EC 1248 btjt rwrd,#6,1$ ; ; 72 0Cv54u32 E7 1249 btjf rwrd,#6,1$ ; ; 72 0Dv54u32 E2 1250 btjt rwrd,#7,1$ ; ; 72 0Ev54u32 DD 1251 btjf rwrd,#7,1$ ; ; 72 0Fv54u32 D8 1252 1253xgrp72_1: 1254 bset rwrd,#0 ; ; 72 10v54u32 1255 bres rwrd,#0 ; ; 72 11v54u32 1256 bset rwrd,#1 ; ; 72 12v54u32 1257 bres rwrd,#1 ; ; 72 13v54u32 1258 bset rwrd,#2 ; ; 72 14v54u32 1259 bres rwrd,#2 ; ; 72 15v54u32 1260 bset rwrd,#3 ; ; 72 16v54u32 1261 bres rwrd,#3 ; ; 72 17v54u32 1262 bset rwrd,#4 ; ; 72 18v54u32 1263 bres rwrd,#4 ; ; 72 19v54u32 1264 bset rwrd,#5 ; ; 72 1Av54u32 1265 bres rwrd,#5 ; ; 72 1Bv54u32 1266 bset rwrd,#6 ; ; 72 1Cv54u32 1267 bres rwrd,#6 ; ; 72 1Dv54u32 1268 bset rwrd,#7 ; ; 72 1Ev54u32 1269 bres rwrd,#7 ; ; 72 1Fv54u32 1270 1271xgrp72_2: 1272 1273 .page 1274 1275xgrp72_3: 1276 neg [rwrd] ; ; 72 30v54u32 1277 ; ; 72 31 1278 ; ; 72 32 1279 cpl [rwrd] ; ; 72 33v54u32 1280 srl [rwrd] ; ; 72 34v54u32 1281 ; ; 72 35 1282 rrc [rwrd] ; ; 72 36v54u32 1283 sra [rwrd] ; ; 72 37v54u32 1284 sla [rwrd] ; ; 72 38v54u32 1285 rlc [rwrd] ; ; 72 39v54u32 1286 dec [rwrd] ; ; 72 3Av54u32 1287 ; ; 72 3B 1288 inc [rwrd] ; ; 72 3Cv54u32 1289 tnz [rwrd] ; ; 72 3Dv54u32 1290 swap [rwrd] ; ; 72 3Ev54u32 1291 clr [rwrd] ; ; 72 3Fv54u32 1292 1293xgrp72_4: 1294 neg (rwrd,x) ; ; 72 40v54u32 1295 ; ; 72 41 1296 ; ; 72 42 1297 cpl (rwrd,x) ; ; 72 43v54u32 1298 srl (rwrd,x) ; ; 72 44v54u32 1299 ; ; 72 45 1300 rrc (rwrd,x) ; ; 72 46v54u32 1301 sra (rwrd,x) ; ; 72 47v54u32 1302 sla (rwrd,x) ; ; 72 48v54u32 1303 rlc (rwrd,x) ; ; 72 49v54u32 1304 dec (rwrd,x) ; ; 72 4Av54u32 1305 ; ; 72 4B 1306 inc (rwrd,x) ; ; 72 4Cv54u32 1307 tnz (rwrd,x) ; ; 72 4Dv54u32 1308 swap (rwrd,x) ; ; 72 4Ev54u32 1309 clr (rwrd,x) ; ; 72 4Fv54u32 1310 1311 .page 1312 1313xgrp72_5: 1314 neg rwrd ; ; 72 50v54u32 1315 ; ; 72 51 1316 ; ; 72 52 1317 cpl rwrd ; ; 72 53v54u32 1318 srl rwrd ; ; 72 54v54u32 1319 ; ; 72 55 1320 rrc rwrd ; ; 72 56v54u32 1321 sra rwrd ; ; 72 57v54u32 1322 sla rwrd ; ; 72 58v54u32 1323 rlc rwrd ; ; 72 59v54u32 1324 dec rwrd ; ; 72 5Av54u32 1325 ; ; 72 5B 1326 inc rwrd ; ; 72 5Cv54u32 1327 tnz rwrd ; ; 72 5Dv54u32 1328 swap rwrd ; ; 72 5Ev54u32 1329 clr rwrd ; ; 72 5Fv54u32 1330 1331xgrp72_6: 1332 neg ([rwrd],x) ; ; 72 60v54u32 1333 ; ; 72 61 1334 ; ; 72 62 1335 cpl ([rwrd],x) ; ; 72 63v54u32 1336 srl ([rwrd],x) ; ; 72 64v54u32 1337 ; ; 72 65 1338 rrc ([rwrd],x) ; ; 72 66v54u32 1339 sra ([rwrd],x) ; ; 72 67v54u32 1340 sla ([rwrd],x) ; ; 72 68v54u32 1341 rlc ([rwrd],x) ; ; 72 69v54u32 1342 dec ([rwrd],x) ; ; 72 6Av54u32 1343 ; ; 72 6B 1344 inc ([rwrd],x) ; ; 72 6Cv54u32 1345 tnz ([rwrd],x) ; ; 72 6Dv54u32 1346 swap ([rwrd],x) ; ; 72 6Ev54u32 1347 clr ([rwrd],x) ; ; 72 6Fv54u32 1348 1349 .page 1350 1351xgrp72_7: 1352 1353xgrp72_8: 1354 wfe ; ; 72 8F 1355 1356xgrp72_9: 1357 1358xgrp72_A: 1359 subw y,#rwrd ; ; 72 A2s54r32 1360 addw y,#rwrd ; ; 72 A9s54r32 1361 1362xgrp72_B: 1363 subw x,rbyt ; ; 72 B0u10 1364 subw y,rbyt ; ; 72 B2u10 1365 addw y,rbyt ; ; 72 B9u10 1366 addw x,rbyt ; ; 72 BBu10 1367 1368 .page 1369 1370xgrp72_C: 1371 sub a,[rwrd] ; ; 72 C0v54u32 1372 cp a,[rwrd] ; ; 72 C1v54u32 1373 sbc a,[rwrd] ; ; 72 C2v54u32 1374 cpw x,[rwrd] ; ; 72 C3v54u32 1375 and a,[rwrd] ; ; 72 C4v54u32 1376 bcp a,[rwrd] ; ; 72 C5v54u32 1377 ld a,[rwrd] ; ; 72 C6v54u32 1378 ld [rwrd],a ; ; 72 C7v54u32 1379 xor a,[rwrd] ; ; 72 C8v54u32 1380 adc a,[rwrd] ; ; 72 C9v54u32 1381 or a,[rwrd] ; ; 72 CAv54u32 1382 add a,[rwrd] ; ; 72 CBv54u32 1383 jp [rwrd] ; ; 72 CCv54u32 1384 call [rwrd] ; ; 72 CDv54u32 1385 ldw x,[rwrd] ; ; 72 CEv54u32 1386 ldw [rwrd],x ; ; 72 CFv54u32 1387 1388xgrp72_D: 1389 sub a,([rwrd],x) ; ; 72 D0v54u32 1390 cp a,([rwrd],x) ; ; 72 D1v54u32 1391 sbc a,([rwrd],x) ; ; 72 D2v54u32 1392 cpw y,([rwrd],x) ; ; 72 D3v54u32 1393 and a,([rwrd],x) ; ; 72 D4v54u32 1394 bcp a,([rwrd],x) ; ; 72 D5v54u32 1395 ld a,([rwrd],x) ; ; 72 D6v54u32 1396 ld ([rwrd],x),a ; ; 72 D7v54u32 1397 xor a,([rwrd],x) ; ; 72 D8v54u32 1398 adc a,([rwrd],x) ; ; 72 D9v54u32 1399 or a,([rwrd],x) ; ; 72 DAv54u32 1400 add a,([rwrd],x) ; ; 72 DBv54u32 1401 jp ([rwrd],x) ; ; 72 DCv54u32 1402 call ([rwrd],x) ; ; 72 DDv54u32 1403 ldw x,([rwrd],x) ; ; 72 DEv54u32 1404 ldw ([rwrd],x),y ; ; 72 DFv54u32 1405 1406xgrp72_E: 1407 1408xgrp72_F: 1409 subw x,(rbyt,sp) ; ; 72 F0u10 1410 subw y,(rbyt,sp) ; ; 72 F2u10 1411 addw y,(rbyt,sp) ; ; 72 F9u10 1412 addw x,(rbyt,sp) ; ; 72 FBu10 1413 1414 1415 .page 1416 .sbttl Page 90 STM8 Instructions External 1-Byte Promotion to 2-Byte 1417 1418xgrp90_0: 1419 rrwa y,a ; ; 90 01 1420 rlwa y,a ; ; 90 02 1421 1422xgrp90_1: 1423 bcpl rwrd,#0 ; ; 90 10v54u32 1424 bccm rwrd,#0 ; ; 90 11v54u32 1425 bcpl rwrd,#1 ; ; 90 12v54u32 1426 bccm rwrd,#1 ; ; 90 13v54u32 1427 bcpl rwrd,#2 ; ; 90 14v54u32 1428 bccm rwrd,#2 ; ; 90 15v54u32 1429 bcpl rwrd,#3 ; ; 90 16v54u32 1430 bccm rwrd,#3 ; ; 90 17v54u32 1431 bcpl rwrd,#4 ; ; 90 18v54u32 1432 bccm rwrd,#4 ; ; 90 19v54u32 1433 bcpl rwrd,#5 ; ; 90 1Av54u32 1434 bccm rwrd,#5 ; ; 90 1Bv54u32 1435 bcpl rwrd,#6 ; ; 90 1Cv54u32 1436 bccm rwrd,#6 ; ; 90 1Dv54u32 1437 bcpl rwrd,#7 ; ; 90 1Ev54u32 1438 bccm rwrd,#7 ; ; 90 1Fv54u32 1439 1440xgrp90_2: 1441 jrnh 1$ ; ; 90 28 0C 1442 jrh 1$ ; ; 90 29 09 1443 jrnm 1$ ; ; 90 2C 06 1444 jrm 1$ ; ; 90 2D 03 1445 jril 1$ ; ; 90 2E 00 14461$: jrih 1$ ; ; 90 2F FD 1447 1448xgrp90_3: 1449 1450 .page 1451 1452xgrp90_4: 1453 neg (rwrd,y) ; ; 90 40v54u32 1454 ; ; 90 41 1455 mul y,a ; ; 90 42 1456 cpl (rwrd,y) ; ; 90 43v54u32 1457 srl (rwrd,y) ; ; 90 44v54u32 1458 ; ; 90 45 1459 rrc (rwrd,y) ; ; 90 46v54u32 1460 sra (rwrd,y) ; ; 90 47v54u32 1461 sla (rwrd,y) ; ; 90 48v54u32 1462 rlc (rwrd,y) ; ; 90 49v54u32 1463 dec (rwrd,y) ; ; 90 4Av54u32 1464 ; ; 90 4B 1465 inc (rwrd,y) ; ; 90 4Cv54u32 1466 tnz (rwrd,y) ; ; 90 4Dv54u32 1467 swap (rwrd,y) ; ; 90 4Ev54u32 1468 clr (rwrd,y) ; ; 90 4Fv54u32 1469 1470 xgrp90_5: 1471 negw y ; ; 90 50 1472 ; ; 90 51 1473 ; ; 90 52 1474 cplw y ; ; 90 53 1475 srlw y ; ; 90 54 1476 ; ; 90 55 1477 rrcw y ; ; 90 56 1478 sraw y ; ; 90 57 1479 slaw y ; ; 90 58 1480 rlcw y ; ; 90 59 1481 decw y ; ; 90 5A 1482 ; ; 90 5B 1483 incw y ; ; 90 5C 1484 tnzw y ; ; 90 5D 1485 swapw y ; ; 90 5E 1486 clrw y ; ; 90 5F 1487 1488.page 1489 1490xgrp90_6: 1491 neg (rbyt,y) ; ; 90 40v00u10 1492 ; ; 90 61 1493 div y,a ; ; 90 62 1494 cpl (rbyt,y) ; ; 90 43v00u10 1495 srl (rbyt,y) ; ; 90 44v00u10 1496 ; ; 90 65 1497 rrc (rbyt,y) ; ; 90 46v00u10 1498 sra (rbyt,y) ; ; 90 47v00u10 1499 sla (rbyt,y) ; ; 90 48v00u10 1500 rlc (rbyt,y) ; ; 90 49v00u10 1501 dec (rbyt,y) ; ; 90 4Av00u10 1502 ; ; 90 6B 1503 inc (rbyt,y) ; ; 90 4Cv00u10 1504 tnz (rbyt,y) ; ; 90 4Dv00u10 1505 swap (rbyt,y) ; ; 90 4Ev00u10 1506 clr (rbyt,y) ; ; 90 4Fv00u10 1507 1508 xgrp90_7: 1509 neg (y) ; ; 90 70 1510 ; ; 90 71 1511 ; ; 90 72 1512 cpl (y) ; ; 90 73 1513 srl (y) ; ; 90 74 1514 ; ; 90 75 1515 rrc (y) ; ; 90 76 1516 sra (y) ; ; 90 77 1517 sla (y) ; ; 90 78 1518 rlc (y) ; ; 90 79 1519 dec (y) ; ; 90 7A 1520 ; ; 90 7B 1521 inc (y) ; ; 90 7C 1522 tnz (y) ; ; 90 7D 1523 swap (y) ; ; 90 7E 1524 clr (y) ; ; 90 7F 1525 1526.page 1527 1528xgrp90_8: 1529 popw y ; ; 90 85 1530 pushw y ; ; 90 89 1531 1532xgrp90_9: 1533 ldw y,x ; ; 90 93 1534 ldw sp,y ; ; 90 94 1535 ld yh,a ; ; 90 95 1536 ldw y,sp ; ; 90 96 1537 ld yl,a ; ; 90 97 1538 ld a,yh ; ; 90 9E 1539 ld a,yl ; ; 90 9F 1540 1541xgrp90_A: 1542 cpw y,#rwrd ; ; 90 A3s54r32 1543 ldf (rexa,y),a ; ; 90 A7RBAs98r76 1544 ldw y,#rwrd ; ; 90 AEs54r32 1545 ldf a,(rexa,y) ; ; 90 AFRBAs98r76 1546 1547xgrp90_B: 1548 cpw y,rbyt ; ; 90 C3v00u10 1549 ldw y,rbyt ; ; 90 CEv00u10 1550 ldw rbyt,y ; ; 90 CFv00u10 1551 1552xgrp90_C: 1553 cpw y,rwrd ; ; 90 C3v54u32 1554 ldw y,rwrd ; ; 90 CEv54u32 1555 ldw rwrd,y ; ; 90 CFv54u32 1556 1557xgrp90_D: 1558 sub a,(rwrd,y) ; ; 90 D0v54u32 1559 cp a,(rwrd,y) ; ; 90 D1v54u32 1560 sbc a,(rwrd,y) ; ; 90 D2v54u32 1561 cpw x,(rwrd,y) ; ; 90 D3v54u32 1562 and a,(rwrd,y) ; ; 90 D4v54u32 1563 bcp a,(rwrd,y) ; ; 90 D5v54u32 1564 ld a,(rwrd,y) ; ; 90 D6v54u32 1565 ld (rwrd,y),a ; ; 90 D7v54u32 1566 xor a,(rwrd,y) ; ; 90 D8v54u32 1567 adc a,(rwrd,y) ; ; 90 D9v54u32 1568 or a,(rwrd,y) ; ; 90 DAv54u32 1569 add a,(rwrd,y) ; ; 90 DBv54u32 1570 jp (rwrd,y) ; ; 90 DCv54u32 1571 call (rwrd,y) ; ; 90 DDv54u32 1572 ldw y,(rwrd,y) ; ; 90 DEv54u32 1573 ldw (rwrd,y),x ; ; 90 DFv54u32 1574 1575 .page 1576 1577xgrp90_E: 1578 sub a,(rbyt,y) ; ; 90 D0v00u10 1579 cp a,(rbyt,y) ; ; 90 D1v00u10 1580 sbc a,(rbyt,y) ; ; 90 D2v00u10 1581 cpw x,(rbyt,y) ; ; 90 D3v00u10 1582 and a,(rbyt,y) ; ; 90 D4v00u10 1583 bcp a,(rbyt,y) ; ; 90 D5v00u10 1584 ld a,(rbyt,y) ; ; 90 D6v00u10 1585 ld (rbyt,y),a ; ; 90 D7v00u10 1586 xor a,(rbyt,y) ; ; 90 D8v00u10 1587 adc a,(rbyt,y) ; ; 90 D9v00u10 1588 or a,(rbyt,y) ; ; 90 DAv00u10 1589 add a,(rbyt,y) ; ; 90 DBv00u10 1590 jp (rbyt,y) ; ; 90 DCv00u10 1591 call (rbyt,y) ; ; 90 DDv00u10 1592 ldw y,(rbyt,y) ; ; 90 DEv00u10 1593 ldw (rbyt,y),x ; ; 90 DFv00u10 1594 1595xgrp90_F: 1596 sub a,(y) ; ; 90 F0 1597 cp a,(y) ; ; 90 F1 1598 sbc a,(y) ; ; 90 F2 1599 cpw x,(y) ; ; 90 F3 1600 and a,(y) ; ; 90 F4 1601 bcp a,(y) ; ; 90 F5 1602 ld a,(y) ; ; 90 F6 1603 ld (y),a ; ; 90 F7 1604 xor a,(y) ; ; 90 F8 1605 adc a,(y) ; ; 90 F9 1606 or a,(y) ; ; 90 FA 1607 add a,(y) ; ; 90 FB 1608 jp (y) ; ; 90 FC 1609 call (y) ; ; 90 FD 1610 ldw y,(y) ; ; 90 FE 1611 ldw (y),x ; ; 90 FF 1612 1613 1614 .page 1615 .sbttl Page 91 STM8 Instructions External 1-Byte Promotion to 2-Byte 1616 1617xgrp91_0: 1618 1619xgrp91_1: 1620 1621xgrp91_2: 1622 1623xgrp91_3: 1624 1625xgrp91_4: 1626 1627xgrp91_5: 1628 1629xgrp91_6: 1630 neg ([rbyt],y) ; ; 91 60u10 1631 ; ; 91 61 1632 ; ; 91 62 1633 cpl ([rbyt],y) ; ; 91 63u10 1634 srl ([rbyt],y) ; ; 91 64u10 1635 ; ; 91 65 1636 rrc ([rbyt],y) ; ; 91 66u10 1637 sra ([rbyt],y) ; ; 91 67u10 1638 sla ([rbyt],y) ; ; 91 68u10 1639 rlc ([rbyt],y) ; ; 91 69u10 1640 dec ([rbyt],y) ; ; 91 6Au10 1641 ; ; 91 6B 1642 inc ([rbyt],y) ; ; 91 6Cu10 1643 tnz ([rbyt],y) ; ; 91 6Du10 1644 swap ([rbyt],y) ; ; 91 6Eu10 1645 clr ([rbyt],y) ; ; 91 6Fu10 1646 1647xgrp91_7: 1648 1649 .page 1650 1651xgrp91_8: 1652 1653xgrp91_9: 1654 1655xgrp91_A: 1656 ldf ([rwrd],y),a ; ; 91 A7v54u32 1657 ldf a,([rwrd],y) ; ; 91 AFv54u32 1658 1659xgrp91_B: 1660 1661xgrp91_C: 1662 cpw y,[rbyt] ; ; 91 C3u10 1663 ldw y,[rbyt] ; ; 91 CEu10 1664 ldw [rbyt],y ; ; 91 CFu10 1665 1666xgrp91_D: 1667 sub a,([rbyt],y) ; ; 91 D0u10 1668 cp a,([rbyt],y) ; ; 91 D1u10 1669 sbc a,([rbyt],y) ; ; 91 D2u10 1670 cpw x,([rbyt],y) ; ; 91 D3u10 1671 and a,([rbyt],y) ; ; 91 D4u10 1672 bcp a,([rbyt],y) ; ; 91 D5u10 1673 ld a,([rbyt],y) ; ; 91 D6u10 1674 ld ([rbyt],y),a ; ; 91 D7u10 1675 xor a,([rbyt],y) ; ; 91 D8u10 1676 adc a,([rbyt],y) ; ; 91 D9u10 1677 or a,([rbyt],y) ; ; 91 DAu10 1678 add a,([rbyt],y) ; ; 91 DBu10 1679 jp ([rbyt],y) ; ; 91 DCu10 1680 call ([rbyt],y) ; ; 91 DDu10 1681 ldw y,([rbyt],y) ; ; 91 DEu10 1682 ldw ([rbyt],y),x ; ; 91 DFu10 1683 1684xgrp91_E: 1685 1686xgrp91_F: 1687 1688 .page 1689 .sbttl Page 92 STM8 Instructions External 1-Byte Promotion to 2-Byte 1690 1691xgrp92_0: 1692 1693xgrp92_1: 1694 1695xgrp92_2: 1696 1697xgrp92_3: 1698 neg [rbyt] ; ; 72 30v00u10 1699 ; ; 92 31 1700 ; ; 92 32 1701 cpl [rbyt] ; ; 72 33v00u10 1702 srl [rbyt] ; ; 72 34v00u10 1703 ; ; 92 35 1704 rrc [rbyt] ; ; 72 36v00u10 1705 sra [rbyt] ; ; 72 37v00u10 1706 sla [rbyt] ; ; 72 38v00u10 1707 rlc [rbyt] ; ; 72 39v00u10 1708 dec [rbyt] ; ; 72 3Av00u10 1709 ; ; 92 3B 1710 inc [rbyt] ; ; 72 3Cv00u10 1711 tnz [rbyt] ; ; 72 3Dv00u10 1712 swap [rbyt] ; ; 72 3Ev00u10 1713 clr [rbyt] ; ; 72 3Fv00u10 1714 1715xgrp92_4: 1716 1717xgrp92_5: 1718 1719xgrp92_6: 1720 neg ([rbyt],x) ; ; 72 60v00u10 1721 ; ; 92 61 1722 ; ; 92 62 1723 cpl ([rbyt],x) ; ; 72 63v00u10 1724 srl ([rbyt],x) ; ; 72 64v00u10 1725 ; ; 92 65 1726 rrc ([rbyt],x) ; ; 72 66v00u10 1727 sra ([rbyt],x) ; ; 72 67v00u10 1728 sla ([rbyt],x) ; ; 72 68v00u10 1729 rlc ([rbyt],x) ; ; 72 69v00u10 1730 dec ([rbyt],x) ; ; 72 6Av00u10 1731 ; ; 92 6B 1732 inc ([rbyt],x) ; ; 72 6Cv00u10 1733 tnz ([rbyt],x) ; ; 72 6Dv00u10 1734 swap ([rbyt],x) ; ; 72 6Ev00u10 1735 clr ([rbyt],x) ; ; 72 6Fv00u10 1736 1737xgrp92_7: 1738 1739 .page 1740 1741xgrp92_8: 1742 callf [rwrd] ; ; 92 8Dv54u32 1743 1744xgrp92_9: 1745 1746xgrp92_A: 1747 ldf ([rwrd],x),a ; ; 92 A7v54u32 1748 jpf [rwrd] ; ; 92 ACv54u32 1749 ldf a,([rwrd],x) ; ; 92 AFv54u32 1750 1751xgrp92_B: 1752 ldf a,[rwrd] ; ; 92 BCv54u32 1753 ldf [rwrd],a ; ; 92 BDv54u32 1754 1755xgrp92_C: 1756 sub a,[rbyt] ; ; 72 C0v00u10 1757 cp a,[rbyt] ; ; 72 C1v00u10 1758 sbc a,[rbyt] ; ; 72 C2v00u10 1759 cpw x,[rbyt] ; ; 72 C3v00u10 1760 and a,[rbyt] ; ; 72 C4v00u10 1761 bcp a,[rbyt] ; ; 72 C5v00u10 1762 ld a,[rbyt] ; ; 72 C6v00u10 1763 ld [rbyt],a ; ; 72 C7v00u10 1764 xor a,[rbyt] ; ; 72 C8v00u10 1765 adc a,[rbyt] ; ; 72 C9v00u10 1766 or a,[rbyt] ; ; 72 CAv00u10 1767 add a,[rbyt] ; ; 72 CBv00u10 1768 jp [rbyt] ; ; 72 CCv00u10 1769 call [rbyt] ; ; 72 CDv00u10 1770 ldw x,[rbyt] ; ; 72 CEv00u10 1771 ldw [rbyt],x ; ; 72 CFv00u10 1772 1773xgrp92_D: 1774 sub a,([rbyt],x) ; ; 72 D0v00u10 1775 cp a,([rbyt],x) ; ; 72 D1v00u10 1776 sbc a,([rbyt],x) ; ; 72 D2v00u10 1777 cpw y,([rbyt],x) ; ; 72 D3v00u10 1778 and a,([rbyt],x) ; ; 72 D4v00u10 1779 bcp a,([rbyt],x) ; ; 72 D5v00u10 1780 ld a,([rbyt],x) ; ; 72 D6v00u10 1781 ld ([rbyt],x),a ; ; 72 D7v00u10 1782 xor a,([rbyt],x) ; ; 72 D8v00u10 1783 adc a,([rbyt],x) ; ; 72 D9v00u10 1784 or a,([rbyt],x) ; ; 72 DAv00u10 1785 add a,([rbyt],x) ; ; 72 DBv00u10 1786 jp ([rbyt],x) ; ; 72 DCv00u10 1787 call ([rbyt],x) ; ; 72 DDv00u10 1788 ldw x,([rbyt],x) ; ; 72 DEv00u10 1789 ldw ([rbyt],x),y ; ; 72 DFv00u10 1790 1791xgrp92_E: 1792 1793xgrp92_F: 1794 1795 .undefine rbyt 1796 .undefine rwrd 1797 .undefine rexa 1798 1799 1800 .page 1801 .sbttl Modes Test 1802 1803 ival = 0x0010 ; Absolute 1-Byte Value 1804 iwrd = 0x005432 ; Absolute 2-Byte Value 1805 iexa = 0x00BA9876 ; Absolute 3-Byte Value 1806 1807 ; S_AOP 1808 add a,(ival,x).e ;a ; DB 00 10 1809 add a,(ival,x).w ; ; DB 00 10 1810 add a,(ival,x).b ; ; EB 10 1811 add a,(ival,x) ; ; EB 10 1812 1813 add a,[ival].e ;a ; 72 CB 00 10 1814 add a,[ival].w ; ; 72 CB 00 10 1815 add a,[ival].b ; ; 92 CB 10 1816 add a,[ival] ; ; 92 CB 10 1817 1818 add a,([ival].e,x) ;a ; 72 DB 00 10 1819 add a,([ival].w,x) ; ; 72 DB 00 10 1820 add a,([ival].b,x) ; ; 92 DB 10 1821 add a,([ival],x) ; ; 92 DB 10 1822 1823 add a,([ival],x).e ;a ; 72 DB 00 10 1824 add a,([ival],x).w ; ; 72 DB 00 10 1825 add a,([ival],x).b ; ; 92 DB 10 1826 add a,([ival],x) ; ; 92 DB 10 1827 1828 ; S_ADDW 1829 addw x,(ival,sp).e ;a ; 72 FB 10 1830 addw x,(ival,sp).w ;a ; 72 FB 10 1831 addw x,(ival,sp).b ; ; 72 FB 10 1832 addw x,(ival,sp) ; ; 72 FB 10 1833 1834 ; S_SUBW 1835 subw x,(ival,sp).e ;a ; 72 F0 10 1836 subw x,(ival,sp).w ;a ; 72 F0 10 1837 subw x,(ival,sp).b ; ; 72 F0 10 1838 subw x,(ival,sp) ; ; 72 F0 10 1839 1840 ; S_CPW 1841 cpw x,(ival,y).e ;a ; 90 D3 00 10 1842 cpw x,(ival,y).w ; ; 90 D3 00 10 1843 cpw x,(ival,y).b ; ; 90 E3 10 1844 cpw x,(ival,y) ; ; 90 E3 10 1845 1846 cpw y,(ival,x).e ;a ; D3 00 10 1847 cpw y,(ival,x).w ; ; D3 00 10 1848 cpw y,(ival,x).b ; ; E3 10 1849 cpw y,(ival,x) ; ; E3 10 1850 1851 cpw x,[ival].e ;a ; 72 C3 00 10 1852 cpw x,[ival].w ; ; 72 C3 00 10 1853 cpw x,[ival].b ; ; 92 C3 10 1854 cpw x,[ival] ; ; 92 C3 10 1855 1856 cpw y,[ival].e ;a ; 91 C3 10 1857 cpw y,[ival].w ;a ; 91 C3 10 1858 cpw y,[ival].b ; ; 91 C3 10 1859 cpw y,[ival] ; ; 91 C3 10 1860 1861 cpw x,([ival].e,y) ;a ; 91 D3 10 1862 cpw x,([ival].w,y) ;a ; 91 D3 10 1863 cpw x,([ival].b,y) ; ; 91 D3 10 1864 cpw x,([ival],y) ; ; 91 D3 10 1865 1866 cpw x,([ival],y).e ;a ; 91 D3 10 1867 cpw x,([ival],y).w ;a ; 91 D3 10 1868 cpw x,([ival],y).b ; ; 91 D3 10 1869 cpw x,([ival],y) ; ; 91 D3 10 1870 1871 cpw y,([ival].e,x) ;a ; 72 D3 00 10 1872 cpw y,([ival].w,x) ; ; 72 D3 00 10 1873 cpw y,([ival].b,x) ; ; 92 D3 10 1874 cpw y,([ival],x) ; ; 92 D3 10 1875 1876 cpw y,([ival],x).e ;a ; 72 D3 00 10 1877 cpw y,([ival],x).w ; ; 72 D3 00 10 1878 cpw y,([ival],x).b ; ; 92 D3 10 1879 cpw y,([ival],x) ; ; 92 D3 10 1880 1881 cpw x,(ival,sp).e ;a ; 13 10 1882 cpw x,(ival,sp).w ;a ; 13 10 1883 cpw x,(ival,sp).b ; ; 13 10 1884 cpw x,(ival,sp) ; ; 13 10 1885 1886 ; S_BOP 1887 neg (ival,x).e ;a ; 72 40 00 10 1888 neg (ival,x).w ; ; 72 40 00 10 1889 neg (ival,x).b ; ; 60 10 1890 neg (ival,x) ; ; 60 10 1891 1892 neg (ival,sp).e ;a ; 00 10 1893 neg (ival,sp).w ;a ; 00 10 1894 neg (ival,sp).b ; ; 00 10 1895 neg (ival,sp) ; ; 00 10 1896 1897 neg [ival].e ;a ; 72 30 00 10 1898 neg [ival].w ; ; 72 30 00 10 1899 neg [ival].b ; ; 92 30 10 1900 neg [ival] ; ; 92 30 10 1901 1902 neg ([ival].e,x) ;a ; 72 60 00 10 1903 neg ([ival].w,x) ; ; 72 60 00 10 1904 neg ([ival].b,x) ; ; 92 60 10 1905 neg ([ival],x) ; ; 92 60 10 1906 1907 neg ([ival],x).e ;a ; 72 60 00 10 1908 neg ([ival],x).w ; ; 72 60 00 10 1909 neg ([ival],x).b ; ; 92 60 10 1910 neg ([ival],x) ; ; 92 60 10 1911 1912 neg ([ival].e,y) ;a ; 91 60 10 1913 neg ([ival].w,y) ;a ; 91 60 10 1914 neg ([ival].b,y) ; ; 91 60 10 1915 neg ([ival],y) ; ; 91 60 10 1916 1917 neg ([ival],y).e ;a ; 91 60 10 1918 neg ([ival],y).w ;a ; 91 60 10 1919 neg ([ival],y).b ; ; 91 60 10 1920 neg ([ival],y) ; ; 91 60 10 1921 1922 ; S_LD 1923 ld a,(ival,x).e ;a ; D6 00 10 1924 ld a,(ival,x).w ; ; D6 00 10 1925 ld a,(ival,x).b ; ; E6 10 1926 ld a,(ival,x) ; ; E6 10 1927 1928 ld a,(ival,sp).e ;a ; 7B 10 1929 ld a,(ival,sp).w ;a ; 7B 10 1930 ld a,(ival,sp).b ; ; 7B 10 1931 ld a,(ival,sp) ; ; 7B 10 1932 1933 ld a,[ival].e ;a ; 72 C6 00 10 1934 ld a,[ival].w ; ; 72 C6 00 10 1935 ld a,[ival].b ; ; 92 C6 10 1936 ld a,[ival] ; ; 92 C6 10 1937 1938 ld a,([ival].e,x) ;a ; 72 D6 00 10 1939 ld a,([ival].w,x) ; ; 72 D6 00 10 1940 ld a,([ival].b,x) ; ; 92 D6 10 1941 ld a,([ival],x) ; ; 92 D6 10 1942 1943 ld a,([ival],x).e ;a ; 72 D6 00 10 1944 ld a,([ival],x).w ; ; 72 D6 00 10 1945 ld a,([ival],x).b ; ; 92 D6 10 1946 ld a,([ival],x) ; ; 92 D6 10 1947 1948 ld a,([ival].e,y) ;a ; 91 D6 10 1949 ld a,([ival].w,y) ;a ; 91 D6 10 1950 ld a,([ival].b,y) ; ; 91 D6 10 1951 ld a,([ival],y) ; ; 91 D6 10 1952 1953 ld a,([ival],y).e ;a ; 91 D6 10 1954 ld a,([ival],y).w ;a ; 91 D6 10 1955 ld a,([ival],y).b ; ; 91 D6 10 1956 ld a,([ival],y) ; ; 91 D6 10 1957 1958 ; S_LDF 1959 ldf a,(ival,x).e ; ; AF 00 00 10 1960 ldf a,(ival,x).w ;a ; AF 00 00 10 1961 ldf a,(ival,x).b ;a ; AF 00 00 10 1962 ldf a,(ival,x) ; ; AF 00 00 10 1963 1964 ldf a,[ival].e ; ; 92 BC 00 10 1965 ldf a,[ival].w ;a ; 92 BC 00 10 1966 ldf a,[ival].b ;a ; 92 BC 00 10 1967 ldf a,[ival] ; ; 92 BC 00 10 1968 1969 ldf a,([ival].e,x) ; ; 92 AF 00 10 1970 ldf a,([ival].w,x) ;a ; 92 AF 00 10 1971 ldf a,([ival].b,x) ;a ; 92 AF 00 10 1972 ldf a,([ival],x) ; ; 92 AF 00 10 1973 1974 ldf a,([ival],x).e ; ; 92 AF 00 10 1975 ldf a,([ival],x).w ;a ; 92 AF 00 10 1976 ldf a,([ival],x).b ;a ; 92 AF 00 10 1977 ldf a,([ival],x) ; ; 92 AF 00 10 1978 1979 ; S_LDW 1980 ; ldw x,--- 1981 ldw x,(ival,x).e ;a ; DE 00 10 1982 ldw x,(ival,x).w ; ; DE 00 10 1983 ldw x,(ival,x).b ; ; EE 10 1984 ldw x,(ival,x) ; ; EE 10 1985 1986 ldw x,(ival,sp).e ;a ; 1E 10 1987 ldw x,(ival,sp).w ;a ; 1E 10 1988 ldw x,(ival,sp).b ; ; 1E 10 1989 ldw x,(ival,sp) ; ; 1E 10 1990 1991 ldw x,[ival].e ;a ; 72 CE 00 10 1992 ldw x,[ival].w ; ; 72 CE 00 10 1993 ldw x,[ival].b ; ; 92 CE 10 1994 ldw x,[ival] ; ; 92 CE 10 1995 1996 ldw x,([ival].e,x) ;a ; 72 DE 00 10 1997 ldw x,([ival].w,x) ; ; 72 DE 00 10 1998 ldw x,([ival].b,x) ; ; 92 DE 10 1999 ldw x,([ival],x) ; ; 92 DE 10 2000 2001 ldw x,([ival],x).e ;a ; 72 DE 00 10 2002 ldw x,([ival],x).w ; ; 72 DE 00 10 2003 ldw x,([ival],x).b ; ; 92 DE 10 2004 ldw x,([ival],x) ; ; 92 DE 10 2005 2006 ; ldw y,--- 2007 ldw y,(ival,y).e ;a ; 90 DE 00 10 2008 ldw y,(ival,y).w ; ; 90 DE 00 10 2009 ldw y,(ival,y).b ; ; 90 EE 10 2010 ldw y,(ival,y) ; ; 90 EE 10 2011 2012 ldw y,(ival,sp).e ;a ; 16 10 2013 ldw y,(ival,sp).w ;a ; 16 10 2014 ldw y,(ival,sp).b ; ; 16 10 2015 ldw y,(ival,sp) ; ; 16 10 2016 2017 ldw y,[ival].e ;a ; 91 CE 10 2018 ldw y,[ival].w ;a ; 91 CE 10 2019 ldw y,[ival].b ; ; 91 CE 10 2020 ldw y,[ival] ; ; 91 CE 10 2021 2022 ldw y,([ival].e,y) ;a ; 91 DE 10 2023 ldw y,([ival].w,y) ;a ; 91 DE 10 2024 ldw y,([ival].b,y) ; ; 91 DE 10 2025 ldw y,([ival],y) ; ; 91 DE 10 2026 2027 ldw y,([ival],y).e ;a ; 91 DE 10 2028 ldw y,([ival],y).w ;a ; 91 DE 10 2029 ldw y,([ival],y).b ; ; 91 DE 10 2030 ldw y,([ival],y) ; ; 91 DE 10 2031 2032 ; ldw ---,x 2033 ldw (ival,y).e,x ;a ; 90 DF 00 10 2034 ldw (ival,y).w,x ; ; 90 DF 00 10 2035 ldw (ival,y).b,x ; ; 90 EF 10 2036 ldw (ival,y),x ; ; 90 EF 10 2037 2038 ldw (ival,sp).e,x ;a ; 1F 10 2039 ldw (ival,sp).w,x ;a ; 1F 10 2040 ldw (ival,sp).b,x ; ; 1F 10 2041 ldw (ival,sp),x ; ; 1F 10 2042 2043 ldw [ival].e,x ;a ; 72 CF 00 10 2044 ldw [ival].w,x ; ; 72 CF 00 10 2045 ldw [ival].b,x ; ; 92 CF 10 2046 ldw [ival],x ; ; 92 CF 10 2047 2048 ldw ([ival].e,y),x ;a ; 91 DF 10 2049 ldw ([ival].w,y),x ;a ; 91 DF 10 2050 ldw ([ival].b,y),x ; ; 91 DF 10 2051 ldw ([ival],y),x ; ; 91 DF 10 2052 2053 ldw ([ival],y).e,x ;a ; 91 DF 10 2054 ldw ([ival],y).w,x ;a ; 91 DF 10 2055 ldw ([ival],y).b,x ; ; 91 DF 10 2056 ldw ([ival],y),x ; ; 91 DF 10 2057 2058 ; ldw ---,y 2059 ldw (ival,x).e,y ;a ; DF 00 10 2060 ldw (ival,x).w,y ; ; DF 00 10 2061 ldw (ival,x).b,y ; ; EF 10 2062 ldw (ival,x),y ; ; EF 10 2063 2064 ldw (ival,sp).e,y ;a ; 17 10 2065 ldw (ival,sp).w,y ;a ; 17 10 2066 ldw (ival,sp).b,y ; ; 17 10 2067 ldw (ival,sp),y ; ; 17 10 2068 2069 ldw [ival].e,y ;a ; 91 CF 10 2070 ldw [ival].w,y ;a ; 91 CF 10 2071 ldw [ival].b,y ; ; 91 CF 10 2072 ldw [ival],y ; ; 91 CF 10 2073 2074 ldw ([ival].e,x),y ;a ; 72 DF 00 10 2075 ldw ([ival].w,x),y ; ; 72 DF 00 10 2076 ldw ([ival].b,x),y ; ; 92 DF 10 2077 ldw ([ival],x),y ; ; 92 DF 10 2078 2079 ldw ([ival],x).e,y ;a ; 72 DF 00 10 2080 ldw ([ival],x).w,y ; ; 72 DF 00 10 2081 ldw ([ival],x).b,y ; ; 92 DF 10 2082 ldw ([ival],x),y ; ; 92 DF 10 2083 2084 ; S_CLJP 2085 call (ival,x).e ;a ; DD 00 10 2086 call (ival,x).w ; ; DD 00 10 2087 call (ival,x).b ; ; ED 10 2088 call (ival,x) ; ; ED 10 2089 2090 call [ival].e ;a ; 72 CD 00 10 2091 call [ival].w ; ; 72 CD 00 10 2092 call [ival].b ; ; 92 CD 10 2093 call [ival] ; ; 92 CD 10 2094 2095 call ([ival].e,x) ;a ; 72 DD 00 10 2096 call ([ival].w,x) ; ; 72 DD 00 10 2097 call ([ival].b,x) ; ; 92 DD 10 2098 call ([ival],x) ; ; 92 DD 10 2099 2100 call ([ival],x).e ;a ; 72 DD 00 10 2101 call ([ival],x).w ; ; 72 DD 00 10 2102 call ([ival],x).b ; ; 92 DD 10 2103 call ([ival],x) ; ; 92 DD 10 2104 2105 ; S_CLJPF 2106 callf [ival].e ; ; 92 8D 00 10 2107 callf [ival].w ;a ; 92 8D 00 10 2108 callf [ival].b ;a ; 92 8D 00 10 2109 callf [ival] ; ; 92 8D 00 10 2110 2111 2112 2113 2114 .end 2115 2116