ORCA-C/Tests/Conformance/C25.0.6.CC

89 lines
2.2 KiB
C++

/* Conformance Test 25.0.6: Verification of code generation for SBC instruct */
#define DP 0x02 /* define 1, 2, & 3 byte addresses */
#define ABS 0x800
#define LONG 0x123456
#include <stdio.h>
int main (void)
{
int i = 0;
asm
{
brl Test
Code: SBC #0xF
SBC DP
SBC DP,X
SBC ABS
SBC ABS,X
SBC ABS,Y
SBC (DP),Y
SBC (DP,X)
SBC (DP)
SBC DP,S
SBC (DP,S),Y
SBC LONG
SBC LONG,X
SBC [DP]
SBC [DP],Y
Data: dcb 0xE9
dcb 0x0F
dcb 0x00
dcb 0xE5
dcb 0x02
dcb 0xF5
dcb 0x02
dcb 0xED
dcb 0x00
dcb 0x08
dcb 0xFD
dcb 0x00
dcb 0x08
dcb 0xF9
dcb 0x00
dcb 0x08
dcb 0xF1
dcb 0x02
dcb 0xE1
dcb 0x02
dcb 0xF2
dcb 0x02
dcb 0xE3
dcb 0x02
dcb 0xF3
dcb 0x02
dcb 0xEF
dcb 0x56
dcb 0x34
dcb 0x12
dcb 0xFF
dcb 0x56
dcb 0x34
dcb 0x12
dcb 0xE7
dcb 0x02
dcb 0xF7
dcb 0x02
Test: ldx #36
Lbl1: lda Code,X
cmp Data,X
bne Err1
dex
dex
bpl Lbl1
bra Out
Err1: inc i
Out: nop
}
if (i)
goto Fail;
printf ("Passed Conformance Test 25.0.6\n");
return 0;
Fail:
printf ("Failed Conformance Test 25.0.6\n");
}