Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
unsigned char found=0;
void find_A_or_B(unsigned char *items, unsigned char size)
{
register unsigned char i;
for (i=0;i<size;++i)
{
if (items[i]=='A' || items[i]=='B')
{
found=1;
break;
}
}
}
unsigned char data[100]="Q35FZABC1AASDFKQJTWEPIOUBXCVBJKLJ@#$%LKJ!@#$QQWER";
int main(void)
{
find_A_or_B(data,30);
return 0;
}
; void __near__ find_A_or_B (unsigned char*, unsigned char)
; ---------------------------------------------------------------
.segment "CODE"
.proc _find_A_or_B: near
.segment "CODE"
;
; register unsigned char i;
;
lda regbank+5
jsr pusha
;
; for (i=0;i<size;++i)
;
lda #$00
sta regbank+5
L0004: ldx #$00
lda regbank+5
jsr pushax
ldy #$03
lda (sp),y
jsr tosicmp
bcs L0005
;
; if (items[i]=='A' || items[i]=='B')
;
ldy #$03
jsr ldaxysp
ldy regbank+5
sta ptr1
stx ptr1+1
lda (ptr1),y
cmp #$41
beq L000D
ldy #$03
jsr ldaxysp
ldy regbank+5
sta ptr1
stx ptr1+1
lda (ptr1),y
cmp #$42
bne L0006
;
; found=1;
;
L000D: lda #$01
sta _found
;
; break;
;
jmp L0005
;
; for (i=0;i<size;++i)
;
L0006: inc regbank+5
jmp L0004
;
; }
;
L0005: ldy #$00
lda (sp),y
sta regbank+5
jmp incsp4
.endproc
_find_A_or_B: .equal $
php
sei
sec
lda __stack_ptr
sbc #.low.+?LSC0+?TSC0
sta __stack_ptr
lda __stack_ptr+1
sbc #.high.+?LSC0+?TSC0
sta __stack_ptr+1
plp
;{
;register unsigned char i;
;
;i=0;
ldy #-1+?LSC0
lda #0
sta (__stack_ptr),y
;i<size;
.for_top 0c1h,?BOL0,?FLB0,?FLA0,1,10
ldy #-1+?LSC0
lda (__stack_ptr),y
ldy #+2+?LSC0+?TSC0
sec
sbc (__stack_ptr),y
bcs ?BOL0
jmp ?FLB0
;++i)
;
ldy #-1+?LSC0
lda (__stack_ptr),y
clc
adc #1
sta (__stack_ptr),y
jmp ?FLC0
;(items[i]=='A' || items[i]=='B')
;
ldy #-1+?LSC0
lda (__stack_ptr),y
sta __oper1
lda #0
sta __oper1+1
ldy #+0+?LSC0+?TSC0
clc
lda (__stack_ptr),y
adc __oper1
sta __oper1
iny
lda (__stack_ptr),y
adc __oper1+1
sta __oper1+1
ldy #0
lda (__oper1),y
sec
sbc #65
beq ?PLC0
?OCC0: .equal $
ldy #-1+?LSC0
lda (__stack_ptr),y
sta __oper1
lda #0
sta __oper1+1
ldy #+0+?LSC0+?TSC0
clc
lda (__stack_ptr),y
adc __oper1
sta __oper1
iny
lda (__stack_ptr),y
adc __oper1+1
sta __oper1+1
ldy #0
lda (__oper1),y
sec
sbc #66
bne ?BOL1
?PLC0: .equal $
;found=1
lda #1
sta _found
;break;
;
jmp ?BOL0
?BOL1: .equal $
jmp ?FLA0
?BOF0: .equal $
php
sei
clc
lda __stack_ptr
adc #.low.+?LSC0+?TSC0+0
sta __stack_ptr
lda __stack_ptr+1
adc #.high.+?LSC0+?TSC0+0
sta __stack_ptr+1
plp
rts
Od 1 do 11 z 11