Version used:
C:\sdcc\bin>sdcc -v
SDCC : mcs51/z80 3.0.1 #6064 (Nov 21 2010) (MINGW32)

Compile command line:
C:\SDCC\BIN\sdcc rc4.c -mz80 -c --codeseg CODE6

Incorrect
x = x + state[i] + pKey[mod_16x8(i, iKeyLen)];
rc4.asm:123: Error: <a> machine specific addressing or addressing mode error 
removing rc4.rel
line 123: add a,(#_x + 0)
all related asm:
;rc4.c:65: x = x + state[i] + pKey[mod_16x8(i, iKeyLen)];
 ld a,#<(_state)
 add a,-1 (ix)
 ld e,a
 ld a,#>(_state)
 adc a,#0x00
 ld d,a
 ld a,(de)
 add a,(#_x + 0)
 ld b,a
 ld e,-1 (ix)
 ld d,#0x00
 push bc
 ld a,6 (ix)
 push af
 inc sp
 push de
 call _mod_16x8
 pop af
 inc sp
 pop bc
 ld a,4 (ix)
 add a,l
 ld e,a
 ld a,5 (ix)
 adc a,#0x00
 ld d,a
 ld a,(de)
 ld e,a
 ld hl,#_x
 ld a,b
 add a,e
 ld (hl),a

Correct after change to:
x += state[i] + pKey[mod_16x8(i, iKeyLen)];
all related asm
;rc4.c:65: x += state[i] + pKey[mod_16x8(i, iKeyLen)];
 ld a,#<(_state)
 add a,-1 (ix)
 ld e,a
 ld a,#>(_state)
 adc a,#0x00
 ld d,a
 ld a,(de)
 ld b,a
 ld e,-1 (ix)
 ld d,#0x00
 push bc
 ld a,6 (ix)
 push af
 inc sp
 push de
 call _mod_16x8
 pop af
 inc sp
 pop bc
 ld a,4 (ix)
 add a,l
 ld e,a
 ld a,5 (ix)
 adc a,#0x00
 ld d,a
 ld a,(de)
 add a,b
 ld b,a
 ld hl,#_x
 ld a,(hl)
 add a,b
 ld (hl),a

Woody

http://palmmicro.com/woody/


------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to