Русские вычислители

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

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



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

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

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



форум на 24bb Создать форум бесплатно