Он не сможет, не знает чем гарвардская архитектура отличается от Неймановской и что такое полная машина Тьюринга:)
Кроме того, судя по этим дешёвым понтам про производство, он скорее всего какой-нибудь местный КИП-овец, который научился 2-а контакта от какого-нибудь термодатчика, подключать к какому-нибудь отечественному ОВЕН ПЛК
и кое-как программировать этот самый ОВЕН таким образом, чтобы при выходе из технологического коридора какой-то температуры например отключался или выключалось какое-то устройство посредством тиристора или магнитного контроллера.И это делает его сразу мегакомпетентным разрабом:)
И самое главное это то, что его религия ,убеждает его в том, что вместо одного условного перехода, на какой-то участок кода(системы предсказания переходов, подготовки конвейера и так-далее), гораздо лучше просто дать возможность команде самой решать выполняться ей или нет в зависимости от установленного флага(так в ARM сделано),таким образом установив некоторый флаг, можно отключать или включать большие участки кода , на пути потока выполнения. То есть можно в одном месте собрать все команды которые выполняются или/нет в зависимости от того, установлен какой-нибудь условный CARRY флаг. И даже условные переходы , можно включить и отключить таким-образом. Как работает система предсказания переходов? И есть ли она вообще? без условных переходов, Но в этом случае накладные расходы на декодирование команд и на кол-во тактов, однозначно растут.
А уж сколько там ошибок чудных можно замутить и UB а (уж Unit тесты там вообще прекрасны), словами не передать. Тем не менее архитектура имеет свой рынок мобильных устройств вдоль и поперёк. Вообще я когда-то очень надеялся на Atmel. :(
Очень большой плюс у них это NEON. Но это давно не прорыв.
Кроме всего прочего вот это вообще непонятно зачем:
ADD r0, r1, r2 ; r0 = r1+r2 Зачем блеать использовать ТРИ целых ТРИ регистра??
Ведь можно сделать как у intel:
ADD eax,ebx ;осторожно псевдокод!; xor eax,eax ; eax += ebx ну или понятнее ;eax = 0; eax = eax+ebx
ДВА регистра.
Ну как-бы рынок выбрал такое. Что делать . По мне так даже i386 в плане удобства кодирования лучше.
Единственное что мне понравилось в системе команд LDR/STR.
стильно ,модно , молодёжно.
Не то что эти старпёровские :
mov byte ptr buffer[edi],al
или
mov eax,dword ptr bufferIn[edi]
mov dword ptr bufferOut[edi],eax
Однако у intel есть секретное оружие , ещё 90-ых годов!
MOVSB , MOVSW, MOVSD к ним есть приставка rep , которая позволяет замутить в 2-3
команды целый цикл копирования из Буфера в Буфер. Например.
А ещё есть SCASB и подобные.
Говорят что эти команды лет 20 как подохли, но intel некоторые из них всё ещё
вытаскивает наружу и допиливает.
Вот говорят недавно пилили:
rep stosb и rep movsb
А и да, ARM настолько дружествены к РФ, что я например без VPN сюда:
https://developer.arm.com/documentation/dui...32-code?lang=enне попадаю:)