arm_inst_mul
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
arm_inst_mul [2020/05/28 12:59] – andrew | arm_inst_mul [2020/11/20 22:30] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== Instrucciones de multiplicación, | + | ====== Instrucciones de multiplicación, |
Las instrucciones de multiplicación admiten muchas posibilidades, | Las instrucciones de multiplicación admiten muchas posibilidades, | ||
Línea 33: | Línea 33: | ||
Donde: | Donde: | ||
- | < | + | < |
- | < | + | < |
Línea 48: | Línea 48: | ||
==== smulw< | ==== smulw< | ||
- | Ahora veamos **smulw< | + | Ahora veamos **smulw< |
Sintaxis: | Sintaxis: | ||
| | ||
+ | |||
+ | Donde | ||
+ | |||
+ | <y> Especifica que mitad del registro <Rs> es usada como operando para multiplicar. | ||
+ | |||
+ | Si <y> es B, la parte más baja (bits[15: | ||
+ | |||
+ | Si <y> is T, la parte más alta (bits[31: | ||
Línea 58: | Línea 66: | ||
| | ||
- | Por último tenemos smul♦♦ | + | |
+ | ==== smul< | ||
+ | |||
+ | Por último tenemos smul< | ||
+ | |||
+ | Sintaxis | ||
+ | | ||
+ | |||
+ | Donde | ||
+ | |||
+ | <x> Especifica que mitad del registro <Rm> es usada como primer operando de la multiplicación. | ||
+ | |||
+ | Si <x> es B, la parte más baja (bits[15: | ||
+ | |||
+ | Si <x> es T, la parte más alta (bits[31: | ||
+ | |||
+ | <y> Especifica que mitad del registro <Rs> es usada como segundo operando para la multiplicación. | ||
+ | |||
+ | Si <y> es B, la parte más baja (bits[15: | ||
+ | |||
+ | Si <y> es T, la parte más alta (bits[31: | ||
En el ejemplo **r0 =parte_alta(r1)*parte_baja(r2)**. | En el ejemplo **r0 =parte_alta(r1)*parte_baja(r2)**. | ||
Línea 64: | Línea 93: | ||
| | ||
- | En los dos últimos tipos smulw♦ y smul♦♦ | + | En los dos últimos tipos smulw< |
Ejercicio: 8-O | Ejercicio: 8-O | ||
Línea 76: | Línea 105: | ||
| smultt | | smultt | ||
- | .data | + | |
- | | + | |
- | | + | |
- | var3 : .word 0x00012345 | + | |
- | @ | + | |
- | | + | |
- | | + | main : |
- | main : | + | |
- | | + | |
- | | + | |
- | ldr r2, = var3 | + | ldr r3, [r0] |
- | ldrh r3, [r0] /* r3 <- baja (* r0) */ | + | ldr r4, [r1] |
- | ldrh r4, [r1] /* r4 <- baja (* r1) */ | + | smulbb |
- | muls r5, r3, r4 /* r5 <- r3*r4 */ | + | /* r5=0x2468642 */ |
- | ldr r3, [r0] /* r3 <- *r0 */ | + | // |
- | ldr r4, [r1] /* r4 <- *r1 */ | + | |
- | umull r5, r6, r3, r4 /* r6:r5 <- r3*r4 */ | + | ldrh r4, [r1] /* r4 <- baja(var2) |
- | smull r5, r6, r3, r4 | + | muls r5, r3, r4 /* r5 <- baja(var1)*baja (var2) |
- | ldrh r3, [r0] /* r3 <- baja (* r0) */ | + | /* r5=0x2468642 |
- | | + | |
- | smulwb | + | |
- | smultt | + | |
+ | umull r5, r6, r3, r4 | ||
+ | smull r5, r6, r3, r4 | ||
+ | fin: | ||
+ | mov r7, #1 | ||
+ | swi 0 | ||
- | ==== División | + | ==== división |
No existe la operación/ | No existe la operación/ |
×
iphelper toolbox
you see this when javscript or css is not working correct
Untested
arm_inst_mul.1590670799.txt.gz · Última modificación: 2020/05/28 13:00 (editor externo)