You are on page 1of 3

ldd r24, y+3 carga en r24 el contenido de la pila+3

ldd r25, y+4 carga en r25 contenido de la pila+4


r25:r24 = 0x0d8
movw r18, r24 r19:18 = 0x0d8
subi r18, 0xff r18 <- r18-0xff= r18 +not(ff)+1 =0xd9
sbci r19, 0xff r19 <- r19-0xff-c -> r19 = 0
r19:r18 =0x0d9
std y+4, r19 (y+4) = 0
std y+3, r18 (y+3) = d9
ldi r18, 0xdc
ldi r19, 0x03
eor r19, r18
eor r18, r19
eor r19, r18 ;r19 = r18: r18 =r19 (r18=03,r19=dc)
lsl r24
rol r25 :r25;24 x2 (0x0d8 x2= 1b0)--> r25:r24=x01b0
subi r24, 0xbe
sbci r25, 0xfe ----------------------- r25:r24 -> 0x02f2
movw r30, r24
std z+1, r19
guarda r19 (0xdc) en 0x2f2)
std z+0, r18

guarda r18 (0x3) en 0x2f3

###################################################################
ldd r24, y+3
ldd r25, y+4 r25:r24 = 0x0d9
movw r18, r24 r19:r18 = 0x0d9
subi r18, 0xff d9-ff = da (c=1)
sbci r19, 0xff 00-ff-1 = 00 (c=1) r19:r18 0da
std y+4, r19 (y+4) =0
std y+3, r18
(y+3) = da
ldi r18, 0xcc
ldi r19, 0x03
eor r19, r18
eor r18, r19
eor r19, r18 r19=0xcc, r18=0x03
lsl r24
rol r25
0x0d9 x 2 = 1b2
subi r24, 0xbe
sbci r25, 0xfe ------------------- r25:r24 = 02f4
movw r30, r24 z = 2f4
std z+1, r19 ( guarda r19 (0xcc) en 0x2f4)
std z+0, r18
guarda r18 (0x3) en 0x2f5
####################################################################
ldd r24, y+3
ldd r25, y+4 r25:r24 = 0x0da
movw r18, r24 r18:r19 = 0x0da
subi r18, 0xff
sbci r19, 0xff r19:r18 = 0x0db
std y+4, r19
std y+3, r18
(y+4,y+3) = (00,db)
ldi r18, 0x64
ldi r19, 0x01
eor r19, r18
eor r18, r19
eor r19, r18 r19=0x64, r18=0x01
lsl r24
rol r25
0xda x 2 = 01b4
subi r24, 0xbe

sbci r25, 0xfe r25:r24: 0x2f6


movw r30, r24
std z+1, r19 ( guarda r19 (0x64) en 0x2f6)
std z+0, r18
guarda r18 (0x01) en 0x2f7
1. carga en r24:r25 y+4:y+3
2. r19:r18 = r24:r25
3. sub (r19:r18, ffff)
4. almacena r19:r18 en y+4:y+3
5. carga nuevo valor en r19:r18 (0x3dc) (paso2 0x3cc)
6. intercambia r19 y r18
7 multiplica r25:r24 x2
8 sub(r25:r24, valor(0xfebe))
9 z=r25:r24
10 Almacena en (z:z+1) r19:r18

y3='0xd8'
y4='0x0'
r25=y4
r24=y3
r19='0x03'
r18='0xdc'
def sub(op1,op2):
return hex((1 << 16) + op1 - op2)
[ 0xdc,
0x03,
0xcc,
0x03,
0x64,
0x01,
0x92,
0x01,
0xbb,
0x01,
0x5e,
0x03,
0x10,
0x03,
0x37,
0x03,
0x5c,
0x02,
0xa5,
0x02,
0x85,
0x03,
0x13,
0x02,
0xcc,
0x02,
0x7e,
0x02,
0xdd,
0x01,

0x35,
0x02,
0xee,
0x02,
0xa7,
0x03,
0xd7,
0x03]

You might also like