En lenguaje ensamblador Los códigos son muy compactos Se pueden definir variables Los operandos pueder ser: registros, inmediatos o palabras de memoria Se ofrece una sintaxis muy variada. En ARMV4 las palabras de memoria y el número de registros en banco de registros son... De 32 bits y 32 registros De 16 bits y 32 registros De 32 bits y 16 registros De 16 bits y 16 registros. En una instrucción ensamblador se puede tener
; R1->a R2->b R3->c R4->d
ADD R1, R2, R3
SUB R1, R1, R4 Hasta tres operandos Hasta dos operandos Un número de operandos ilimitado. Los operandos en esas instrucciones son:
ADD R1, R2, R3
SUB R1, R3, #8
LDR R5, [R4, #8] Registros (Rx) Registros (Rx) y direcciones de memoria [Rx, #8] Registros (Rx), inmediatos (#N) y direcciones de memoria [Rx, #8]. En una instrucción ensamblador ARMV4 los operandos son;
; R1->a R2->b R3->c 4->d
ADD R1, R2, R3
SUB R1, R1, R4 Registros inmediatos y posiciones/direcciones de memoria Posiciones/direcciones de memoria y registros Inmediatos o constantes y registros. Dada la asignación de avriables a registros, el código ensamblador calcula:
;R1 -> a R2-> b R3-> c R4->d
ADD R1, R2, R3
SUB R1, R1, R4 a=b+c-d a=a+c-d a=b-c-d b=a+c-d. La instrucción aritmética
SUB R1, R2, R3 Resta contenido de R1, y R2 y guarda en R3 Resta contenido de R2 y R3 y guarda en R1 Suma contenido de R2 y R3 y guarda en R1 Suma contenido de R1 y R2 y guarda en R3. Multiplicar en binario un entero por 2^n equivale a Rotar el entero n posiciones a la izquierda Desplazar el entero n posiciones a la derecha Desplazar el entero n posiciones a la izquierda Desplazar el entero n/2 posiciones a la izquierda. Dividir en binario un entero por 2^n equivale a: Rotar el entero n posiciones a la izquierda Desplazar arimeticamente el entero n posiciones a la derecha Desplazar el entero n posiciones a la izquierda Desplazar el entero n/2 posiciones a la izquierda. La instrucción siguiente
ASR R1, R3, #5 (nivel logico) Rota R3 5 posiciones a la izquierda Desplaza arimeticamente R3 5 posiciones a la derecha y guarda en R1 Desplaza R3 5 posiciones a la izquierda Desplaza arimeticamente R1 5 posiciones a la izquierda y guarda en R3.
|