Autor Tema: incoherencia al sumar valores con movlw  (Leído 1447 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
incoherencia al sumar valores con movlw
« en: 13 de Noviembre de 2011, 16:13:10 »
se puede decir que tengo mucha experiencia programando en ensambler.pero me parece que acabo de rebajarme a parbulitos.
o es que hoy estoy tonto.uso el 18F2550

se supone que de estas intrucciones:

movlw 0x05
sublw  0x01

el resultado en w seria 0x04. y sale el valor 0xFC. es como si estubiera relizando una resta invertida.0x01-0x05=0xFC

en otros programas que he realizado en los 16Fxxxx nunca se me dio esta circustancia que yo recuerde.
supongo que tiene que haber un registro que configura la forma de obtener el resultado.o algo por el estilo.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: incoherencia al sumar valores con movlw
« Respuesta #1 en: 13 de Noviembre de 2011, 16:58:42 »
Syntax: SUBLW k
Operands: 0 k 255
Operation: k – (W) W
Status Affected: N, OV, C, DC, Z
Encoding: 0000 1000 kkkk kkkk
Description: W is subtracted from the eight-bit
literal ‘k’. The result is placed in W.

lo dice claro, k - (W), osea 0x01-0x05

seria:
movlw 0x01
sublw 0x05

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: incoherencia al sumar valores con movlw
« Respuesta #2 en: 13 de Noviembre de 2011, 17:38:33 »
es lo que he leido en el datasheet.igual estaba confundido.me parecio que el las otras series la funcion hera al contrario.

de todas formas he encontrdo una intruccion que me puede servir.aunque solo suma 1.es decir incrementa. incf registro,w
Montando mi primera impresora 3D (Raprep Prusa i3)


 

anything