-
- Обнуление регистра + последующее сравнение = зависимые операции, которые нельзя выполнить параллельно. Значит обнулять регистр придется заранее и ноль в нем хранить. Имеем
те же яйцыобнуленный регистр, тольков профильего еще и LightElf(78 знак., 03.09.2015 11:26)- Сравнение с нулем любого регистра или ячейки памяти - операция очень и очень простая. Для этой цели имеется специальная инструкция. А в ряде случаев даже и она не нужна, сравнение происходит автоматически при выполнении других инструкций. Или нет? - Bill(07.09.2015 16:47)
- Это всё-таки про RISC процессоры, а не контроллеры в первую очередь. Любая команда где операнд источник 0. Любая команда требующая операнда приёмника, но приёмник не требуется в дальнейшем. - загрузить константу(07.09.2015 20:08, )
- Нулевой регистр может и другие цели иметь, например эмуляцию какого-нибудь режима адресации. Типа нет у проца абсолютной адресации, но есть косвенно-регистровая со смещением. Используем R0 и получаем то что надо. У той же PDP-11 не было LightElf(127 знак., 07.09.2015 19:01)
- Тут вы ошибаетесь. У PDP-11 была и абсолютная адресация, и непосредственная. Например: Bill(106 знак., 07.09.2015 19:10 - 19:16, ссылка, ссылка)
- А вы машинный код посмотрите у этой ассемблерной инструкции и удивитесь. Там будет (по памяти) что-то типа add (R7)+, @(R7)+ LightElf(32 знак., 08.09.2015 11:48 - 11:56)
- Вы оба правы. vmp(257 знак., 07.09.2015 21:40)
- Все так, но тем не менее, Bill(671 знак., 08.09.2015 07:06)
- Тут вы ошибаетесь. У PDP-11 была и абсолютная адресация, и непосредственная. Например: Bill(106 знак., 07.09.2015 19:10 - 19:16, ссылка, ссылка)
- Иногда бывает надо сравнить с нулём ячейку, которая была вычислена давно. Вот у ДСПИКов это можно сделать одной командой. - Крок(07.09.2015 18:11)
- У AVR, к примеру, это тоже можно сделать одной командой, TST называется. То же самое имеется и у STM8, только там мнемоника - TNZ. Можно еще много других примеров привести. - Bill(07.09.2015 18:27)
- Эта операция у АВРов применима ко всей памяти или только к регистрам? - Крок(07.09.2015 18:42)
- У AVR только к регистрам. Вообще все арифметические и логические операции в AVR применимы только к регистрам. Для работы с памятью имеются инструкции загрузки/сохранения, не более того. - Bill(07.09.2015 18:47)
- Вооот! А у пиков есть кусок памяти - 8к которая может быть операндом в арифметических операциях (далеко не во всех). В том числе обращение к каждому биту. Ну 8к - это может быть пижонство, а вот 64 РОНа было бы уместно. - Крок(07.09.2015 19:55)
- У меня есть опыт работы как с AVR, так и с PIC. Если говорить об AVR, то обычно в программе не требуется частого обращения к памяти, обычно хватает регистров. Кроме того, в AVR имеются различные методы адресации, что повышает эффективность Bill(554 знак., 08.09.2015 07:29)
- Если бы пико24дезигнеры не пожидились сделать программное слово в 32, а не в 24 бита, то и было бы как минимум 4096 (2^4 + 2^8) полноценных РОНов - MBedder(07.09.2015 19:59)
- Я вот думаю, может там чисто технологическая проблема - коммутировать РОНы. Просто по нагрузочной способности ключей нельзя сделать больше? - Крок(07.09.2015 20:04)
- Любые другие операции (включая некоторые арифметические/логические - ADD/C f {,WREG}, AND f {,WREG}, ASR f {,WREG}, BCLR/BSET f,#bit4, BTG f,#bit4 и т.п) с операндами в Near Memory (до 8191) ведь делаются, значит, на всю арифметику тупо не хватило MBedder(14 знак., 07.09.2015 20:18)
- Сэкономили память программ, мать их... - Крок(07.09.2015 21:37)
- Любые другие операции (включая некоторые арифметические/логические - ADD/C f {,WREG}, AND f {,WREG}, ASR f {,WREG}, BCLR/BSET f,#bit4, BTG f,#bit4 и т.п) с операндами в Near Memory (до 8191) ведь делаются, значит, на всю арифметику тупо не хватило MBedder(14 знак., 07.09.2015 20:18)
- Я вот думаю, может там чисто технологическая проблема - коммутировать РОНы. Просто по нагрузочной способности ключей нельзя сделать больше? - Крок(07.09.2015 20:04)
- Вооот! А у пиков есть кусок памяти - 8к которая может быть операндом в арифметических операциях (далеко не во всех). В том числе обращение к каждому биту. Ну 8к - это может быть пижонство, а вот 64 РОНа было бы уместно. - Крок(07.09.2015 19:55)
- У AVR только к регистрам. Вообще все арифметические и логические операции в AVR применимы только к регистрам. Для работы с памятью имеются инструкции загрузки/сохранения, не более того. - Bill(07.09.2015 18:47)
- Эта операция у АВРов применима ко всей памяти или только к регистрам? - Крок(07.09.2015 18:42)
- У AVR, к примеру, это тоже можно сделать одной командой, TST называется. То же самое имеется и у STM8, только там мнемоника - TNZ. Можно еще много других примеров привести. - Bill(07.09.2015 18:27)
- Аффтор хочет сравнить с нулем произвольную ячейку памяти при этом считается что состояние флага z когда создавалось значение в ячейке давно потеряно. Boвa(34 знак., 07.09.2015 17:57)
- Сие есть изврат. Boвa(66 знак., 07.09.2015 11:00)
- Вау! Я даже с ним не знаком. Как и Вы с ЦОС, где за лишний регистр иногда готов отдать все, что угодно. Знаете, что именно по причине нехватки регистров БПФ по основанию 2 часто получается быстрее, чем по основанию 4? - st256(03.09.2015 16:12)
- Хм, использовать MIPS для ЦОС - напоминает секас в гамаке на лыжах. - LightElf(03.09.2015 18:27)
- Для управления DSP ядрами самое то. Например, в NVCom. - st256(03.09.2015 18:31)
- Ну а зачем писать на асме код управления DSP ядрами? Пускай компилятор парится с регистрами. - LightElf(04.09.2015 12:25)
- DSP ядра в NVCom очень шустрые, мощные и их много. А управляющий проц - хилый. Вот и считайте - 8 РОНов на ядро это много или мало? - st256(04.09.2015 14:27)
- Для настройки ДМА 8 регистров хватает? :-)) - =AlexD=(04.09.2015 14:29)
- вот наверное единственное, что нужно писать на АСМе (и ни на чём другом) - код управления ДСП ядрами... - Крок(04.09.2015 12:43)
- DSP ядра в NVCom очень шустрые, мощные и их много. А управляющий проц - хилый. Вот и считайте - 8 РОНов на ядро это много или мало? - st256(04.09.2015 14:27)
- Ну а зачем писать на асме код управления DSP ядрами? Пускай компилятор парится с регистрами. - LightElf(04.09.2015 12:25)
- Для управления DSP ядрами самое то. Например, в NVCom. - st256(03.09.2015 18:31)
- Хм, использовать MIPS для ЦОС - напоминает секас в гамаке на лыжах. - LightElf(03.09.2015 18:27)
- Сравнение с нулем любого регистра или ячейки памяти - операция очень и очень простая. Для этой цели имеется специальная инструкция. А в ряде случаев даже и она не нужна, сравнение происходит автоматически при выполнении других инструкций. Или нет? - Bill(07.09.2015 16:47)
- Тупой он, процессор. - r31 AArch64(02.09.2015 23:03, )
- Обнуление регистра + последующее сравнение = зависимые операции, которые нельзя выполнить параллельно. Значит обнулять регистр придется заранее и ноль в нем хранить. Имеем