Русские самосчёты

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Русский ассемблер

Сообщений 101 страница 142 из 142

101

Юрий написал(а):

А чем Вам не понравилиcь мои замены?
CALL   ()
RET     <--
JMP     -->
JLE      <=
JG       >
JE       ==
MOV    =

Не думаю, что для вызова подзадачи стоит использовать скобки.
Зачем они вообще, ведь никаких значений всё равно не передать?

Стремиться всё обозначить знаками не стоит.

0

102

Не думаю, что для вызова подзадачи стоит использовать скобки.
Зачем они вообще, ведь никаких значений всё равно не передать?

Это потакание привычке из языков высокого уровня обозначать вызов скобками.

0

103

Юрий написал(а):

Это потакание привычке из языков высокого уровня обозначать вызов скобками.

Мне кажется, что адрес со скобками после него будет выглядеть не очень хорошо.
Лучше словом всё-таки обозначить вызов по нужному адресу:

ВЫЗОВ 004B0048

А не:

004B0048()

0

104

Кстати - регистр можно так и обозвать порусски "СКЛАД".

0

105

Колос написал(а):

Кстати - регистр можно так и обозвать порусски "СКЛАД".

Нет, всё-таки склад — это место, где что-то хранят. «Складом» можно было бы назвать т.н. стэк, т.к. склад — это буквально то, что склажено, но слово «склад» уже занято.
Я придумал слово числоём. Может быть, оно здесь подойдёт? Или запоминатель, запомник, помник, помнец?

0

106

Юрий написал(а):

(кстати, обратил внимание, что в словаре замен для слова "регистр" замены нет. Можно попробовать "хранитель"

Может быть, хран или хрон, чтобы отличать от хранителей?

0

107

Yaisis написал(а):

но оставить возможность ассемблерных вставок, которые пусть будут на иностранном.

Нет, это неудобно. Русский низкояз всё-таки нужен. Ну, и пусть, что он будет машинозависимым.

0

108

Если не нравится 004B0048(), то можно записать -->004B0048. Вполне прозрачно. Меньше слов, больше условных и понятных значков - правильный путь, мне кажется. Зачем писать "СЛОЖИТЬ", если "+" - короче и быстрее читается?

0

109

Юрий написал(а):

Зачем писать "СЛОЖИТЬ", если "+" - короче и быстрее читается?

Действие сложения и его знак известны всем ещё с младших классов школы.

А вот:

ВЫЗОВ 004B0048

читается намного легче, чем:

-->004B0048

Юрий написал(а):

Меньше слов, больше условных и понятных значков - правильный путь, мне кажется.

В том-то и дело, что слишком много условных знаков затрудняют чтение исходника, на мой взгляд.

К тому же, вы говорили, что обозначение «-->» — для обычного перехода, т.е. JMP.

Возможно, стоит дать выбор разработчику. Но тогда получим неоднообразные исходники.

0

110

читается намного легче... слишком много условных знаков затрудняют чтение исходника, на мой взгляд.

Так их как раз-то немного. А в остальном - дело вкуса.

0

111

ВЫЗОВ 004B0048

можно (004B0048) или 004B0048()

0

112

Код:
// BIOS.v_static
Префикс MBR;
_Счетчик Отобразить(_Счетчик Символ):
	mov al, Символ;
	mov ah, 0x0E; // номер функции BIOS
	mov bh, 0x00; // страница видеопамяти
	int  0x10; //вызываем функцию BIOS
	=Символ;
.
 
_Счетчик ЗагрузитьСекторы(_Счетчик DiskID, _Счетчик НомерСектора, _Счетчик КолВо, _Счетчик Сегмент, _Счетчик Смещение):
	_Счетчик лКолВоПовторов=3;
	mov es, Сегмент;
	mov bx, Смещение;
	mov cx, (0<<6)+НомерСектора; // номер головки
	mov dl, DiskID; // номер диска
	mov dh, 0; // номер головки
	mov al, КолВо; // сколько секторов считать
	mov ah, 2; // номер функции BIOS
	int  0x13; //вызываем функцию BIOS
	< лКолВоПрочитано = ax;
	< лОш = ah;
	CF==0:
    MBR::Отобразить((лКолВоПрочитано & 0xF)+'0');
    =НомерСектора;
	.
	MBR::Отобразить((лОш>>6)+'0'); MBR::Отобразить(((лОш & 0x38)>>3)+'0'); MBR::Отобразить((лОш & 0x07)+'0');
	=0;
.
Конец области префикса;
Код:
// BIOS2.v_static
_Счетчик Отобразить(_Ссылка Текст):
	_Счетчик лРес=0;
	mov si, Текст;
	cld; //направление для строковых команд
	Цикл:
    mov ax, 0;
    lodsb; //загружаем очередной символ в al
    Иначе:
    	--;
    .
    mov ah, 0x0E; // номер функции BIOS
    mov bh, 0x00; // страница видеопамяти
    int  0x10; //вызываем функцию BIOS
    лРес=лРес+1;
	.
	=лРес;
.
 
_Счетчик Отобразить(_Счетчик Символ):
	mov al, Символ;
	mov ah, 0x0E; // номер функции BIOS
	mov bh, 0x00; // страница видеопамяти
	int  0x10; //вызываем функцию BIOS
	=Символ;
.
Код:
Реальный 0x7c00;
?Использовать("BIOS.v_static")
Программа:
	< лИндетификаторДиска=dl; // в переменную из dl
	MBR::Отобразить('>');
	_Счетчик лС='L';
	Если MBR::ЗагрузитьСекторы(лИндетификаторДиска, 2, 7, 0x1000, 0)==0: // 7
    лС='?';
	.
	MBR::Отобразить(лС);
.
Продолжить(0x1000, 0, 0x100, 0xEFFF); // первая пара сегмент+адрес перехода, вторая - сегмент+адрес стека
Граница 442;
Обнулить 512;
 
//тут продолжение
Реальный 0;
?Использовать("BIOS2.v_static")
Программа:
	Отобразить('S');
	Отобразить(" Go--->");
	Цикл:
	.
.
Граница 4096;

0

113

vic_one, что это?

0

114

Это загрузчик написанный на моем варианте ассемблера. Команды mov и прочие не стал переводить, но все это возможно и главное легко.

0

115

vic_one написал(а):

Это загрузчик написанный на моем варианте ассемблера. Команды mov и прочие не стал переводить, но все это возможно и главное легко.

А как устроен ваш низкояз? Он переводит на язык другого ассемблера, а потом уже строит программу? Или у вас не просто свой язык, а свой ассемблер?

0

116

Это компилятор порождающий bin файл, а дальше самописной утилитой записывается в начальные сектора VHD и в виртуальной (VirtualBOX) машине происходит выполнение. Без драйвера сетевой карты весь проект не имеет смысла, а с драйвером и желательно 32 битным - это будет хорошо.

0

117

vic_one написал(а):

Это компилятор порождающий bin файл, а дальше самописной утилитой записывается в начальные сектора VHD и в виртуальной (VirtualBOX) машине происходит выполнение. Без драйвера сетевой карты весь проект не имеет смысла, а с драйвером и желательно 32 битным - это будет хорошо.

Ясно. Но я не об этом спросил. Просто у Юрия низкояз сначала переводится на язык обычного ассемблера, а уже потом этим сторонним ассемблером строится приложение. А у вас как с этим? Тоже промежуточный перевод есть?
Вы свою ОС делаете?

0

118

Нет переводов. ОС писать очень круто, но идея была в запуске кода в привилегиях ОС, но однозадачно.

0

119

Про ассемблер. Написан транслятор, который переводит текст в текст MASM32, после чего последний переводит в бинарный код. На гитхаб  ничего не выкладывалось. Если Вам интересно - могу выслать исходники и описание. Отпишитесь на mail (друг человека) compiler . su.

0

120

Русский ассемблер это бред !!!

0

121

А как Вы можете обосновать свою точку зрения? Что конкретно Вам не нравится – сама идея или её конкретное воплощение?

0

122

сам думал о таком но значения кодов не знаю скинте список что они значат и какую функцию выполняют а я подумаю чем заменить так чтобы любой чайник хакером стать мог...gena.naldaev@yandex.ru

0

123

А для какого процессора нужен справочник? Для какой архитектуры?

Вот хороший справочник, для семейства процессоров x86.
http://www.club155.ru/x86cmd
За одно советую заглянуть в учебники:
В, Юров, С. Хорошенко-Ассемблер (учебный курс)-Питер (1999)
Ирвин К. Язык ассемблера для процессоров Intel 2005
Л. Скэнлон Пер. с англ. И. В. Емелин М.-Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера-Радио и связь(1989)

0

124

Управляющий написал(а):

Я имел ввиду, можно ли указывать не метку и не регистр, в котором адрес находится, а сам адрес напрямую. Например:

Почему CALL? Мы же вроде о русском ассемблере думаем?

А причём тут латинские буквы? Глупость какая-то. Если так рассуждать, то в русском ассемблере вообще русские буквы нужно запретить, иначе они всегда будут путаться: и в метках, и в регистрах, и в служебных словах. Если рассуждать здраво, то путаться в названиях регистров буквы не будут, т.к. имена регистров заданные, и приложение для набора исходника будет выделять цветом правильные названия регистров, а не правильные — подчёркивать и выводить предупреждение, преобразователь же будет выдавать ошибку на неправильное название регистра. Тоже самое относится и к меткам и служебным словам.

Это у них не вписывается, а мы можем сделать так, чтобы наши названия вписывались. Переиначивая одну рекламку, можно сказать: наш ассемблер — наши правила. Или вы всерьёз хотите тупо транслитерировать их названия?

Общего назначения: О1, О2 (или ОА, ОБ), ... ; счётчики: С1, С2 (или СА, СБ), ... ; и т.д.

А можно даже подлиннее названия придумать, не вижу в этом ничего страшного.

Значит, нужно придумать такой порядок именования, который будет отражать назначение регистров.

Кстати, если я правильно понял, то в указании "MOV EAX, adr" порядок такой: УКАЗАНИЕ куда, откуда. Так вот, на мой взгляд, было бы разумнее сделать наоборот: УКАЗАНИЕ откуда, куда. Так понятнее. Я не про это именно указание говорю (здесь, как я понял, будет просто присвоение), а вообще.

Идея очень хорошая. И с языком, и с указанием.

0

125

Задумка хорошая и нужная. Но как мне кажется (перекрещусь на всякий случай))) надо начинать со стандартов. Например ASCII - американский стандарт кодирования символов, знаков, цифр и т. д. А ведь русского стандарта нет. Соответственно такие мнемоники как ААА - ASCII Adjust After Addition - ASCII-коррекция после сложения, всё равно будут подразумевать американский стандарт. Но если пофантазировать, то можно этот опрос назвать - КОРАВС - коррекция регистра А в символ после сложения или ПЕРАМАС перенос битов из регистра Ам(А младший) в Ас(А старший) при переполнении Ам и преобразование в символ. Ну или типа того))

0

126

Американский семибитный ASCII затем продублирован в международном UTF-8. Изобретать новую отечественную кодировку нужно в том случае, если она в чём-то лучше предыдущих иностранных.

0

127

При старте процессора используется ASCII кодировка, а как мы знаем изначально семейство х86 процессоров стартует в допотопном 16-ти битном режиме. Да и производители видеокарт зашивают в свои ПЗУ кодировку ASCII, а не UTF-8, которая уже потом прикручивается.
Хоть процессору и плевать на человеческие языки, стандарты никуда не выкинешь). Конечно, если очень хочется, то можно попробовать переназвать опкоды на кириллице, а лучше написать свой транслятор в машинные коды с офигительно подробной документацией.
Такие символы как "{", "[", "<" и другие, которых нет в русской раскладке, можно переназначить на клавиши F1-F12 или на NumPad с выключенным NumLock-ом, чтобы не переключаться на латиницу каждый раз. А лучше сразу переходить кодить на Эльбрусы, но у них документации нет нормальной.
Прошу прощения, если много "воды" написал не по теме).

0

128

ОПКод                                                                                                                                                        Кириллица
AAA    ASCII-коррекция после сложения (ASCII Adjust after Addition)                                                            КАПОСЛОЖ
AAD    ASCII-коррекция регистра AX перед делением (ASCII Adjust AX before Division)                                  КАПДЕЛ
AAM    ASCII-коррекция регистра AX после умножения (ASCII Adjust AX after Multiply)                                  КАПОУМ
AAS    ASCII-коррекция после вычитания (ASCII Adjust after Subtraction)                                                     КАПОВЫЧ
ADC    Сложение с переносом (Add with Carry)                                                                                             СЛОЖПЕР
ADD    Сложение (Add)                                                                                                                                СЛОЖ
AND    Логическое "И" (Logical "AND")                                                                                                          ЛИ
ARPL    Коррекция поля RPL селектора (Adjust Requested Privilege Level)                                                       КОРПЛЕС
BOUND    Контроль нахождения индекса массива в границах (Check array index against Bound)                     КИНМАГ
BSF    Сканирование бита вперед (Bit Scan Forward)                                                                                     СКАБИПЕР
BSR    Сканирование бита назад (Bit Scan Reverse)                                                                                       СКАБИЗАД

Ну как-то так). Конечно тут можно много придираться, но осуждая, предлагайте!)

0

129

хттп://ref.x86asm.net/geek32.html
Тут лежат таблицы перевода ОПКода ассемблера в машинный код.

0

130

Тема русского ассемблера не очень популярна, мягко говоря. Если Вы заметили, тема на этом форуме была заведена 10 лет назад и бурных комментариев не вызвала. Во-первых, на ассемблере очень мало кто программирует. А кто программирует, тот в русификации особо не заинтересован. ОС "Колибри" написана на ассемблере и есть форум русскоязычных программистов этой ОС. У них тоже не обнаружилось интереса после моего сообщения о попытке русификации ассемблера.

0

131

Конечно я заметил. Дело в том, что энтузиастов мало, а в университетах учат на английском программировать. Потому что русского ничего нет в этой области, а то что есть, не особо популярно.
Мне лично лень учить английский, чтобы научиться программировать, по книгам особо не научишься, только методом проб и ошибок. Да и в книгах исчерпывающую информацию на русском проблематично добыть.
Может сейчас начнëт что-то меняться, но уверенности в этом нет.
Но кому-то надо быть первым!)))

0

132

У меня проблем с английским нет. Меня тянет к программированию на русском по другим причинам. Вам же могу сказать, что для программирования  надо знать английский в разрезе программирования, не больше. Да и компьютерные переводчики хороши, как никогда. Вот вам история:

Молодой учитель факультативно объяснил четвероклассникам основы языка программирования Fortran. И мальчики и девочки с увлечением начали писать простенькие программки.
Директор школы с удивлением спросила:
— Как же это у вас дети английские слова понимают, если английский только в пятом классе начнём проходить?! DO, IF, GOTO...
На что учитель ответил:
— Это для детей — не английские слова. Это для них это слова Фортрана!

Пусть и для Вас слова DO, IF, GOTO будут словами программирования, а не английского. Ну и двигаться в сторону русского программирования таки надо.

0

133

Артемий написал(а):

При старте процессора используется ASCII кодировка, а как мы знаем изначально семейство х86 процессоров стартует в допотопном 16-ти битном режиме. Да и производители видеокарт зашивают в свои ПЗУ кодировку ASCII, а не UTF-8, которая уже потом прикручивается.
Хоть процессору и плевать на человеческие языки, стандарты никуда не выкинешь). Конечно, если очень хочется, то можно попробовать переназвать опкоды на кириллице, а лучше написать свой транслятор в машинные коды с офигительно подробной документацией.
Такие символы как "{", "[", "<" и другие, которых нет в русской раскладке, можно переназначить на клавиши F1-F12 или на NumPad с выключенным NumLock-ом, чтобы не переключаться на латиницу каждый раз. А лучше сразу переходить кодить на Эльбрусы, но у них документации нет нормальной.
Прошу прощения, если много "воды" написал не по теме).

Проблема с символами решается раз и на всегда. Если их прописать макросами на отключенный цифровой-навигационный блок NumPad. Большая часть населения и пользователей даже забывают что он существует.
При этом можно использовать сторонние программы типа: Key Manager и заменить любые клавиши.
Но! Лучше всего использовать отключенный блок NumPad  в таком порядке:
1. Парные символы - клавиша символов(пробел между ними)
2. Открывающиеся - SHIFT+Клавиша символ
3. Закрывающиеся - CTRL+Клавиша символ
получается примерно так:
клавиша:
.. "/" - /  |  \
.. "*"  * @ #
.. "-"  -   _  ~
.."7"  ()  (   )
.."8"  ^
.."9"  []  [  ]
.."4"  <
.."5" {}  {  }
.."6"  >
.."+" +  $  &
.."1"  ''   '   
.."2"  ""  "
.."3" `` `
.."0 Backspace
а вместе так: ({['"`/|\*@#-_~<^>+$&`"']}) -  и можно забыть про переключение раскладки при наборе символов, они на отключённом блоке NumPad с помощью макросов набираются при любой раскладке, запоминается легко.
Ниже пример макросов в программе Key Manager:
https://upforme.ru/uploads/0012/22/6b/142/t364481.png

Отредактировано lex (04.06.2025 08:02:41)

0

134

на отключенный цифровой-навигационный блок NumPad

На ноутбуке клавиши Home, End, PgUp, PgDown есть только на отключенном NumPad. Конечно, ноутбуки не у всех, но лично для меня Ваше предложение не подходит. Думаю, что наилучший вариант - это когда нажатый Ctrl в сочетании с нажатой клавишей на русской раскладке трактовался бы как клавиша на латинской раскладке.

0

135

Юрий написал(а):

На ноутбуке клавиши Home, End, PgUp, PgDown есть только на отключенном NumPad. Конечно, ноутбуки не у всех, но лично для меня Ваше предложение не подходит. Думаю, что наилучший вариант - это когда нажатый Ctrl в сочетании с нажатой клавишей на русской раскладке трактовался бы как клавиша на латинской раскладке.

С Ноутбуками проблема, у них разные клавиатуры в зависимости от марки и производителя, но с помощью макросов заменить назначение клавиши можно и через макрос CTRL+лат символ(переход в лат > лат символ > переход в рус), вариант то же правильный, единственное на нём много командных сочетаний клавиш и главное их не замылить, а так то же вариант.

Наилучший вариант изменить стандартизацию раскладок клавиатур и добавить всего одну клавишу(максимум две для скорописи), при которой символы будут печататься при любой раскладке, но кто ж на это пойдёт из производителей, это куча денег, упущенная прибыль, маркетинг, идеология, контроль и т.д. Быстрей скажут учите английский и печатайте в лат, там всё есть без гемороя. Для этого надо административный глас свыше в качестве реального импорто замещения, а ему и так "тепло и сыро", и всё устраивает.

П.С.
У меня был вариант унифицировать клавиатуру без изменения её размера как геймпад(джойстики, левый горизонтальная плоскость как WASD, правый то же самое только вертикальная плоскость) переместив всего одни навигационный блок клавиатуры на левую сторону(можно даже клавиши добавить и ESC симметрично поставить, заменить основные ENTER и Backspace на другие) и символы все вывести в отдельный блок чтобы раскладку не переключать на любом языке.
примерно так:
https://upforme.ru/uploads/0012/22/6b/142/t132836.png

Отредактировано lex (05.06.2025 02:34:07)

0

136

Тема клавиатур очень широка. Если кратко, то
1) надо увеличить количество буквенных клавиш, чтобы у каждой русской буквы была своя клавиша, при этом русская буква не должна занимать клавиши спецсимволов на латинской раскладке,
2) спецсимволы должны оставаться на своих местах независимо от раскладки,
3) не должно быть QWERTY-клавиатур, должны быть JCUKEN-клавиатуры
4) должна быть отдельная клавиша РУС/ЛАТ
5) давно пора выровнять клавиши по вертикали, клавиатуры давно не механические и рычаги литер друг друга не задевают
6) Клавиши F1...F10 должны быть строго над клавишами 1...0
7) убрать дублирующие друг друга клавиши: зачем цифры есть и в ряду над буквами, и справа?
8) клавишу Fn убрать из нижнего ряда, там и так слишком много управляющих клавиш, Fn  постоянно мешается.

0

137

Юрий написал(а):

Тема клавиатур очень широка. Если кратко, то
1) надо увеличить количество буквенных клавиш, чтобы у каждой русской буквы была своя клавиша, при этом русская буква не должна занимать клавиши спецсимволов на латинской раскладке,
2) спецсимволы должны оставаться на своих местах независимо от раскладки,
3) не должно быть QWERTY-клавиатур, должны быть JCUKEN-клавиатуры
4) должна быть отдельная клавиша РУС/ЛАТ
5) давно пора выровнять клавиши по вертикали, клавиатуры давно не механические и рычаги литер друг друга не задевают
6) Клавиши F1...F10 должны быть строго над клавишами 1...0
7) убрать дублирующие друг друга клавиши: зачем цифры есть и в ряду над буквами, и справа?
8) клавишу Fn убрать из нижнего ряда, там и так слишком много управляющих клавиш, Fn  постоянно мешается.

Можно и Советскую раскладку вернуть  с выравненными клавишами при желании, где латинская "А" стоит на клавише "А" кириллическая, латинская "B" на клавише "Б" и так все символы, как на старых советских компьютерах.
Про дублирующие клавиши согласен, лишние кнопки, но их можно запрограммировать на другие функции.
Кнопка Рус/Лат- Lang.
Fn можно убрать, но они сейчас в основном распространены даже на ноутах, типа горячих клавиш, Я то же частенько пользуюсь, регулировка звука, перемотка, домой, рабочий стол и т.д. .
По поводу F1...F10, тут можно поспорить главное чтобы они были отделены от цифрового ряда чтобы их не перепутать в спешке.
В остальном сейчас можно лепить что угодно, но кто это будет делать, нашему министерству цифровизации это в коня не упёрлось, им проще параллельный импорт закупить, а клепать на колене в гараже это разовая сделка, здесь подходит, здесь не подходить, нужны постоянные танцы с бубном, потому не рентабельно.

Проще взять стандартную или игровую клавиатуру(104 ~ 120 клавиш) и поменять кнопки(блоки) местами, даже схему подключения и драйвера переписывать практически не придётся.
А плюсы в этом есть, можно так же использовать как стандартную печатную машинку, для офисных, вычислительных и инженерных работ, можно использовать как игровой геймпад, как пульт управления ЧПУ и Беспилотных Систем, в терминалах, аппаратах и т.д., с минимальными затратами на модернизацию и совместимость, так как размер практически не меняются, основные символы выведены на отдельный блок не нужно переключать раскладку потому можно использовать в программировании, высвобождаются клавиши(., /?  от лат символов), клавиша(4;$), клавиша(7 ? &), клавиша(/ \ | \), на них можно без раскладки перенести символы(. , ; : ), ещё 6  клавиш в цифровом ряде под символы остаётся свободных, Левый NUM PAD можно полностью убрать для компактности и использовать WASD, включение через Fn.
Для левшей и правшей оба NUM PADа, можно сделать модульными, съёмными, взаимозаменяемыми, к ним можно добавить TOUCH PAD(графический планшет) вместо левого навигационного блока с возможностью установки на любую сторону, коннектится будет через посадочную площадку, на магнитном держателе.
Ну и можно гнать на экспорт, так как будет поддерживать и кириллицу, и латиницу, и все символы без переключения раскладки.
Примерно:
https://upforme.ru/uploads/0012/22/6b/142/t516457.png

П.С.
Если есть желание самому побаловаться со схемой раскладки, есть ресурс не плохой:
https://keyboard-layout-editor.com/
немного заморочено, но быстро разбираешься. Главное сразу собирай свои кнопки отдельно, будешь пробывать их пихать в имеющийся шаблон, быстро устаешь. А так смотришь что в нём есть, пробуешь на чистых кнопках и дальше составляешь свои.))

Отредактировано lex (05.06.2025 06:22:13)

0

138

Юрий написал(а):

Тема клавиатур очень широка. Если кратко, то
1) надо увеличить количество буквенных клавиш, чтобы у каждой русской буквы была своя клавиша, при этом русская буква не должна занимать клавиши спецсимволов на латинской раскладке,
2) спецсимволы должны оставаться на своих местах независимо от раскладки,
3) не должно быть QWERTY-клавиатур, должны быть JCUKEN-клавиатуры
4) должна быть отдельная клавиша РУС/ЛАТ
5) давно пора выровнять клавиши по вертикали, клавиатуры давно не механические и рычаги литер друг друга не задевают
6) Клавиши F1...F10 должны быть строго над клавишами 1...0
7) убрать дублирующие друг друга клавиши: зачем цифры есть и в ряду над буквами, и справа?
8) клавишу Fn убрать из нижнего ряда, там и так слишком много управляющих клавиш, Fn  постоянно мешается.

Вы писали про такую раскладку JCUKEN  с выравниванием клавиш?
Я такую выдел лет 35 назад(точно раскладку не помню) на ВДХН в конце 80х начале 90х, экспортный вариант с двойным пробелом, для восточного блока, но она что то не зашла, может потому что Союз развалился.
https://upforme.ru/uploads/0012/22/6b/142/t874478.png

Возможно она когда нибудь ещё вернётся и на неё у нас перейдут, а пока Я тут посидел подумал и нашёл вариант для Вашего ноутбука.  Все символы перекинуть не на цифровой блок NUM PAD, а на цифровой ряд.
1. Обычное нажатие цифры(центральный символ),
2. Нажатие SHIFT Верхний символ
3. Нажатие CTRL  Нижний символ.
Вроде бы ничего не пропустил.
https://upforme.ru/uploads/0012/22/6b/142/t545904.png

Отредактировано lex (12.06.2025 20:46:52)

0

139

Если честно, то я не позволяю разгораться своему аппетиту на клавиатуры. Потому что какая бы совершенная клавиатура не была (с моей точки зрения), я всё равно не смогу поставить её на ноутбук. Это у стационарного компьютера я могу заменить клавиатуру. А у ноутбука нет. Увы.

0

140

Юрий написал(а):

Если честно, то я не позволяю разгораться своему аппетиту на клавиатуры. Потому что какая бы совершенная клавиатура не была (с моей точки зрения), я всё равно не смогу поставить её на ноутбук. Это у стационарного компьютера я могу заменить клавиатуру. А у ноутбука нет. Увы.

Так и не надо менять клавиатуру на ноутбуке. Можно макросами прописать все символы на цифровой ряд клавиатуры ноутбука.  Если сразу ставить двойными парными скобками, то можно освободить 3 из 4 клавиш, а потом убрать дублирующие, то все символы помещаются на цифровой ряд.

Всё равно в программировании нужны двойные парные скобки, как и в арифметических вычислениях. Остальные кнопки в цифровом ряде остаются практически неизменёнными, только к ним добавляется через макросы нижний ряд с нажатием CTRL на рус\лат раскладку, символы в рус на SHIFT прописываются в раскладку лат и на одной клавише будет не пересекающиеся символы в разных раскладках, а одинаковые для обеих раскладок.
Примерно так:
https://upforme.ru/uploads/0012/22/6b/142/t530906.png
1. Обычное нажатие цифры(центральный символ) - Красный,
2. Нажатие SHIFT Верхний символ - Синий,
3. Нажатие CTRL  Нижний символ. - Жёлтый.

Кстати у меня к Вам вопрос:  Вы на каком языке пишите свой Русский ассемблер, можете посоветовать ресурс где есть примеры кода для компилятора, лексера и парсера на ассемблере. Есть предварительный неполный синтаксис, пока в таблице эксель, хочу попробовать написать "средний" язык между низкоуровневым ассемблером и высокоуровневыми языками, типа бейсик и паскаля, но не смог найти чтобы компиляторы писали на чистом ассемблере или может быть это вообще глупая затея.

Отредактировано lex (15.06.2025 00:10:03)

0

141

на каком языке пишите свой Русский ассемблер

Этот ассемблер писался с одной единственной целью, которая достигнута и дальнейших планов нет (https://compiler.su/o-russkom-assemblere.php). Поэтому "пишете" тут неуместно; он "уже написан". Писал его на русифицированном Си (https://compiler.su/utilita-translitera … artnyj.php).

где есть примеры кода для компилятора, лексера и парсера на ассемблере

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

не смог найти чтобы компиляторы писали на чистом ассемблере или может быть это вообще глупая затея.

Когда-то на заре компьютерной эры их так и писали. Могу привести пример из современности: покойный Д.Ю. Караваев дизассемблировал купленный компилятор PL/1 (исходников не было), а потом в ассемблерный текст постепенно вносил правки (https://compiler.su/idealnyj-translyator.php). И этот компилятор сперва генерировал код для 16-разрядных х86, потом 32-разрядных, потом 64-разрядных. В итоге от исходного компилятора ни единого старого байта не осталось. И все эти годы Караваев совершенствовал компилятор, работая с ассемблерным текстом. Но это по современным меркам конечно экзотика.

0

142

Юрий написал(а):

Этот ассемблер писался с одной единственной целью, которая достигнута и дальнейших планов нет (https://compiler.su/o-russkom-assemblere.php). Поэтому "пишете" тут неуместно; он "уже написан". Писал его на русифицированном Си (https://compiler.su/utilita-translitera … artnyj.php).

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

Когда-то на заре компьютерной эры их так и писали. Могу привести пример из современности: покойный Д.Ю. Караваев дизассемблировал купленный компилятор PL/1 (исходников не было), а потом в ассемблерный текст постепенно вносил правки (https://compiler.su/idealnyj-translyator.php). И этот компилятор сперва генерировал код для 16-разрядных х86, потом 32-разрядных, потом 64-разрядных. В итоге от исходного компилятора ни единого старого байта не осталось. И все эти годы Караваев совершенствовал компилятор, работая с ассемблерным текстом. Но это по современным меркам конечно экзотика.

Понял, благодарю за ответ, вас услышал, будем думать.

П.С.
может и не экзотика: PLINK 2.0

Отредактировано lex (15.06.2025 05:13:37)

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»