QNA > Q > Qual È La Differenza Tra Un'istruzione Ldm E Una Vldm Nell'architettura Del Set Di Istruzioni Arm?

Qual è la differenza tra un'istruzione LDM e una VLDM nell'architettura del set di istruzioni ARM?

VLDM è per i registri vettoriali che contengono molti valori in virgola mobile (non so se possono contenere anche interi, presumo che sia consentito anche un uso SIMD).

ARM Information Center

i.e. forma NEON e VFP.

Non avevo mai visto questa istruzione, in quanto non esisteva quando ho scritto l'ultimo assemblaggio ARM.

LDM è vecchio come ARM, sta per "load many". Senza cercare, presumo che VLDM sia più o meno la stessa cosa di LDM, tranne che non viene usata per caricare nei registri interi di uso generale.

Una curiosità per LDM, si possono caricare tutti e 16 i registri "general-purpose" (o qualsiasi sottoinsieme), il che significa che si può fare una chiamata di procedura con essa, dato che PC (program counter) è R15 (PC è un alias consentito).

LDM (e STM) è sparito in ARMv8 (tranne che nel set di istruzioni legacy AArch32/ARMv7). Nell'AArch64/ARMv8 hai load e store per coppie di registri... LDM/STM non era molto "RISC" con un numero variabile di cicli a seconda di quanti registri caricati/stoccati. Non sono sicuro che VLDM (e VSTM che presumo esista) sia abbandonato, penso di no.

Di Chappie Asbill

Quali sono i vantaggi e gli svantaggi dei microprocessori RISC? :: Quali sono i vantaggi e gli svantaggi del set di istruzioni Thumb rispetto alle istruzioni ARM a 32 bit?
Link utili