¿Cómo puedo ver la diferencia entre el controlador de 8 bits y el de 16 bits mediante un programa? Diga la diferencia entre un atmega8 y msp430 ... Puedo explicarlo usando un programa y mostrarlo usando un programa.
¿Cómo puedo ver la diferencia entre el controlador de 8 bits y el de 16 bits mediante un programa? Diga la diferencia entre un atmega8 y msp430 ... Puedo explicarlo usando un programa y mostrarlo usando un programa.
Si escribe su programa en C, no notará la diferencia. Di que escribes
i++;
donde i
es un número entero. Un controlador de 16 bits hará esto en una sola instrucción, mientras que el controlador de 8 bits tendrá que incrementar primero el LOB (byte de orden bajo), y cuando hay un incremento de desbordamiento el HOB (byte de alto orden). Esa es la idea básica, y en su forma más simple para un controlador hipotético puede verse así:
i dw ; define i as unsigned word (i.e. 16 bit)
inc16bit ld r0,i+1 ; load register 0 with low order byte
inc r0 ; increment low order byte
st r0,i+1 ; store the result
brne skip ; don't increment high order byte if zero flag not set
ld r0,i ; load register 0 with high order byte
inc r0 ; increment high order byte
st r0,i ; store the result
skip ret ; return from function
Es un poco más complejo cuando se trata de enteros con signo. Pero a nivel de código fuente C, todo esto está oculto.
Si estás trabajando a nivel de ensamblaje, tendrás que hacer lo que acabo de describir a mano. Tampoco podrá asignar 1234 a un registro de 8 bits, pero funcionará bien en una arquitectura de 16 bits. Su ensamblador le avisará cuando intente asignar 1234 al registro de 8 bits.