¿Cómo se puede ver la diferencia entre el controlador de 8 bits y el de 16 bits mediante un programa [cerrado]?

-4

¿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.

    
pregunta ganeshredcobra

1 respuesta

2

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.

    
respondido por el radagast

Lea otras preguntas en las etiquetas