TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: groundman 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.
-
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
-
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