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

89 lines
2.2 KiB
C++

/* Conformance Test 25.0.5: Verification of code generation for LDA 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: LDA #0xF
LDA DP
LDA DP,X
LDA ABS
LDA ABS,X
LDA ABS,Y
LDA (DP),Y
LDA (DP,X)
LDA (DP)
LDA DP,S
LDA (DP,S),Y
LDA LONG
LDA LONG,X
LDA [DP]
LDA [DP],Y
Data: dcb 0xA9
dcb 0x0F
dcb 0x00
dcb 0xA5
dcb 0x02
dcb 0xB5
dcb 0x02
dcb 0xAD
dcb 0x00
dcb 0x08
dcb 0xBD
dcb 0x00
dcb 0x08
dcb 0xB9
dcb 0x00
dcb 0x08
dcb 0xB1
dcb 0x02
dcb 0xA1
dcb 0x02
dcb 0xB2
dcb 0x02
dcb 0xA3
dcb 0x02
dcb 0xB3
dcb 0x02
dcb 0xAF
dcb 0x56
dcb 0x34
dcb 0x12
dcb 0xBF
dcb 0x56
dcb 0x34
dcb 0x12
dcb 0xA7
dcb 0x02
dcb 0xB7
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.5\n");
return 0;
Fail:
printf ("Failed Conformance Test 25.0.5\n");
}