
Сообщение от
litwr
LDS для работы с памятью, размером с десяток байт?!
а где гарантии, что в ds нужное значение перед вызовом? то, что там всегда одно значение - не предлагать! тогда это не полноценный аналог того кода 68k

Сообщение от
litwr
Передавать параметры в регистрах - штука обычная.
как и чтение из памяти их в регистры (разве что результат долгих вычислений требуется сразу в ascii)

Сообщение от
litwr
А про арм-код не понял, где он? У арм2 нет аппратного деления, поэтому подобный код для арма должен быть весьма большим, сомневаюсь, что 56 байт хватит.
так это же деление на константу - вот что предлагают в древней книжке 1994 года:
Код:
SUB a2, a1, #10 ; keep (x-10) for later
SUB a1, a1, a1, lsr #2
ADD a1, a1, a1, lsr #4
ADD a1, a1, a1, lsr #8
ADD a1, a1, a1, lsr #16
MOV a1, a1, lsr #3
ADD a3, a1, a1, asl #2
SUBS a2, a2, a3, asl #1 ; calc (x-10) - (x/10)*10
ADDPL a1, a1, #1 ; fix-up quotient
ADDMI a2, a2, #10 ; fix-up remainder
итого 10 команд, 40 байт, 10 тактов - ха-ха, против ~300 тактов пары аппаратных интелевских делений 
(притом даже универсальное деление на арм2 емнип в среднем вдвое быстрее аппаратного 8086)
если к этому куску добавить обвязку:
Код:
LDR a4, _BUFFER
_LOOP: udiv10 из примера
ORR a2, a2, '0'
STRB a2, [a4, #1]!
CMP a1, #0
BNZ _LOOP
MOV pc, lr
получилось 64 байта с инлайном (чуть наврал, в уме забыл учесть две команды)
...но всё равно 

Сообщение от
litwr
Похоже нужен урок английского.
точно нужен, вот только совсем не мне 

Сообщение от
litwr
сode density is less so an application in RISC is likely to consume more memory than the equivalent in CISC - переводится как "плотность кодов [у RISC] - МЕНЬШЕ, так что приложение для RISC cкорее всего потребит больше памяти, чем эквивалентное для CISC"
и? что здесь противоречит моим словам о неконкретности этой части утверждения? при том, что здесь даже не "highly likely" )))

Сообщение от
litwr
however the ARM has a few tricks up its sleeve to reverse this assumption - "однако, АРМ имеет несколько трюков в рукаве, которые могут опровергнуть это предположение"
а вот здесь как раз однозначно "ЧТОБЫ опровергнуть" без всяких "могут"

Сообщение от
litwr
Я встречал и другие с примерно теми же результатами. 2010-е - это не 90-е.
вот именно, SIMD уже играли слишком большую роль и на десктопных интелах были тупо шире мобильных армовских
положение стало выправляться совсем недавно

Сообщение от
litwr
Если у вас есть обратные данные, дайте ссылку, сам таких не встречал.
сразу не найду, где-нибудь лежат на старом компе, или надо снова искать по форумам 

Сообщение от
litwr
Амиговцев понять можно - код 68000 довольно плотный, но армовцы никогда тут не спорили - зачем бы тогда нужно было Пальцы изобретать?
Повнимательней, я уже ответил выше на сей вопрос. Затем, чтобы скорость не проседала вдвое на узких шинах, когда арм стали предлагать для мобилок. Несколько улучшенная компактность (которую отдел маркетинга арма не замедлил начать пиарить) здесь не цель и не причина, а только следствие.

Сообщение от
litwr
Почти везде, а может и везде про Пальцы пишут только как о способе повысить плотность кода.
на заборе тоже пишут много чего

Сообщение от
litwr
Хотя более плотные коды из-за лучшей утилизации кэша могут иметь и преимущества по скорости.
thumb впервые появился в ARM7TDMI, применявшемся обычно без всяких кэшей, зато именно в мобильных устройства, где ради экономии шину резали

Сообщение от
litwr
Менеджмент менеджментом, но отсутствие доступного по цене компа на 68к, способного запустить Дум - это тоже фактор.
это тоже следствие менеджмента

Сообщение от
litwr
Мне кажется, вы путаете понятие индексного и базового регистра.
Именно что кажется (как всегда) - собственные сообщения забываем?

Сообщение от
litwr
У х86 роль адресных играют сегментные регистры,
итак, кто сам же и сказал "адресных"? АДРЕСНЫХ - не индексных и не базовых! но ПОЛНЫЙ адрес x86 содержится в ДВУХ регистрах

Сообщение от
litwr
Сегменты х86 - никак не индексы, а только базы.
и никак не базы, потому что BASE pointer - это bp
у нормальной базы не должно быть ограничений на положение

Сообщение от
litwr
В 68к адресные регистры базы могут быть использованы, пусть и с накладками, как индексы.
нет, как раз там они могут быть действительно использованы как АДРЕСНЫЕ, то есть содержащие ПОЛНОЦЕННЫЙ адрес в ОДНОМ регистре

Сообщение от
litwr
А как же без возни с регистрами?!
например, как в армовском коде выше - и вероятнее, что нужное число регистров будет свободно, и голова из-за их специализации не болит

Сообщение от
litwr
Это общий момент программирования на ассемблере.
...для процессоров с вопиющим дефицитом даже неуниверсальных регистров (то есть восьмибитных и старых интелов))

Сообщение от
litwr
Это верно, отбросим один-два адресных 16-битных регистра для этих нужд и всё-равно у х86 получим 8 байтовых регистров и один-два парубайтовых. А пары байт можно брать и из стека, без адресных регистров (только SP).
но уже только последовательно (вот она, возня, уже началась)))

Сообщение от
litwr
Пары байт в х86 отлично работают, а вот 68000 не работают вообще. Там поменять местами байты в слове - это большой тормоз - быстрее из памяти оба байта достать.
А вот не нужно байты в слове менять - можно поменять слова и работать с младшим байтом каждого слова, забив на старшие. Встречный вопрос - а как в x86 поменять без тормозов местами байты в суперудобных "парубайтовых" di/si/bp? Ааась?

Сообщение от
litwr
И даже если вы поместите два байта в адресный регистр, вам чтобы достать их для обработки потребуется больше тактов, чем загрузить их оба из памяти в регистры данных. Итого по 68к имеем 8 байтовых регистров и всё, а х86 имеет чуть, но больше.
неееет, итого имеем в мотороле:
= 8 байтовых регистров (младшие байты регистров данных)
= 8 байт еще для обмена с ними (третьи байты регистров данных)
+ до 7 байт-источников в адресных регистрах
А что же в 8086? 8 байтовых регистров и до 3 "парубайтовых", с которыми непонятно как работать, кроме xchg. Но так можно и в мотороле.
То есть полноценных байтовых в 68k столько же, зато вспомогательных - вдвое больше, и функционал у них шире.

Сообщение от
litwr
Вы опять про ДОС, который был ОДНОЗАДАЧНЫМ.
и почему же он с таким расчудесным супер-пупер-ММЮ на сегментах был однозадачным?

Сообщение от
litwr
Могу только удивляться оперативности Интел, который сделал поддержку многозадачности ДОС уже к 1985.
об чём речь? на пц многозадачность стала робко пробиваться с 386 (а скорости хватать стало только с 486)

Сообщение от
litwr
У меня была Амига-500 с 1988 и экранчик Guru Meditation возникал очень даже нередко.
так это аналог BSOD, то есть сбоя в компонентах самой системы, который и под виндой с настоящим MMU (а не "мемею") регулярно

Сообщение от
litwr
О том и речь, маленький код сразу написал и готово. Не нужно текст набирать и потом такой хлам хранить, ассемблер запускать, ...
нет, речь о том, что лучше уж раз в полгода запустить лишнюю софтварь ради ерунды, чем всю жизнь таскать харварные костыли