ПредишенСледващото

Тези команди ще бъдат изпълнени, ако условието е вярно. Всички от различните условия за изпълнението им, са изброени в таблица 6. Кодът на машина от двата отбора е показан на фигура 21.

И двете инструкции за извършване на умножение използвайки неразделна алгоритъм на базата на верига от логически операции за смяна и добавяне на 8-битови операнди (алгоритъм Бут).


Фиг. 21. Умножение на отбора

Екип, умножение (MUL), използвайте следния формуляр: Rd: = Rm * R. Rn се игнорира и регистъра трябва да бъде нула за целите на съвместимост с евентуално бъдещо разширяване на набора от инструкции.

Командите умножение и събиране (MLA) използва различна форма запис: Rd: = Rm * Rs + Rn. Когато Rm = 1 или Rs = 1 тази команда за техните действия се равнява на командата Add.

И двете команди за извършване на операции само с целочислени операнди като неподписан и подписан (2 допълващо-X).

Резултатите от размножаването на 32-битови операнди със знак и 32-битова неподписани операнди се различават само по своя старши 32 бита и по-ниските 32 бита на двата резултата - същите два вида операнди. Като резултат от инструкцията MUL и MLA само 32-битова (горните 32 бита на резултата се отхвърлят), а след това на изхода на тези команди ще бъдат същите, както за подписа операнди като неподписан.

Например, командата на умножение 0xFFFFFFF6 (операнд А) 0x00000014 (операнд Б) ще доведе равно 0xFFFFFF38.

Ако величините се интерпретират като подписа

Нека A = -10 операнд и операнд B = 20, резултат от умножението на броя на -200 който правилно изписва така: 0xFFFFFF38.

Ако величините - неподписани

Нека A = 4294967286 операнд и операнд B = 20, резултат от умножението на броя 85899345720 е, че правилно изписва така: 0x13FFFFFF38, но по-горните 32 бита на резултата е отстранен, резултат от умножението на крайния брой ще 0xFFFFFF38.

Никога не използвайте регистрите Rd резултати едновременно като регистър на операнд (Rm, Р-н или компактдискове). R15 е неприемливо да се използва регистъра регистър операнд или доведе регистрирате.

Всички други комбинации други регистри ще даде правилен отговор, и, ако е необходимо, ролята на Rd, радон и Rs може да служи един и същ регистър.

Знамена регистрират CPSR

Възможността да повлияе малко CPSR регистър флаг S, се определя в съответното поле команда. Знамена N (отрицателно) и Z (нула), са определени в съответствие с резултат от умножението: флаг N става равна на 31-тия бит на резултата, а знамето на Z е настроен само ако резултатът - нула. Flag C (превод) е настроен на неизвестно състояние и флаг V на (преливник) - Не се използва.

Брой на машинни цикли при изпълнение

MUL команда се изпълнява в продължение на 1 S + МВР на металорежещи цикли и MLA команда - за 1S + I (М + 1) машинни цикли, където S и аз зависи от вида на цикъла на двигателя, m - броят на 8-битови множители, необходима за извършване на размножаването и съдържание зависими множител операнди Rs. Възможните стойности за m са изброени по-долу:

m = 1, ако битове [31: 8] -multiplier операнд - или всички нули или всички такива. m = 2, ако битовете [31:16], операнд на множител - или всички нули или всички такива. m = 3, ако битовете [31:24], операнд на множител - или всички нули или всички такива. m = 4: във всички останали случаи.

Assembler синтаксис

двусимволния мнемонични отношение на командата (вж. раздел. 6).

Свързани статии

Подкрепете проекта - споделете линка, благодаря!