OSDev

для всех
Текущее время: 01 май 2024, 08:53

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: 28 ноя 2007, 20:12 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Я имел ввиду те самые "логические типы величин". Да, в регистрах они меняются чаще, чем в ЯВУ из-за малого количества самих регистров. Но это делает проверку типов на порядок актуальней.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 ноя 2007, 20:22 

Зарегистрирован: 03 июл 2007, 11:07
Сообщения: 54
По-моему, асм всё же для того и существует, что программировать на низком уровне. По этому никаких типов там не должно быть. А если тебе нужны типы -- бери Си или др. ЯВУ. А на счёт того, что в команде должен указываться размер операндов как в AT&T -- я согласен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 ноя 2007, 20:33 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Насчёт команд у меня вообще желание реализовать два подхода: один -- стандартные мнемоники от Интела (т.е. на уровне самих инструкций ассемблер будет совместим с MASM и иже с ним, что облегчит при необходимости перенос программ), второй -- свой формат, отчасти напоминающий AT&T (с явно заданной длиной операндов и % перед именами регистров -- всё это было ещё на PDP-11 и VAX-11, так что мне не привыкать).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 00:25 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
vkos, можно сделать вывод, что ты не знаком с типами данных процессора.
Вообще писать программу из несвязных инструкций дело неблагодарное. К тому же у многих инструкций неявные операнды. Например надо быть ясновидящим, чтобы сразу правильно понять, что происходит с регистрами в инструкциях "cmpxchg [ebx],ecx", "mul ebx", "rdtsc", "cpuid" которые неявно используют и модифицируют множество дополнительных регистров. Ущербный синтаксис инструкций не отвечает современным стандартам выразительности.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 01:29 

Зарегистрирован: 06 май 2007, 15:10
Сообщения: 135
Цитата:
В частности, если нет особых причин, нет смысла пытаться поддерживать старые процессоры (80386, к примеру) и древнюю периферию (не поддерживающие LBA жёсткие диски).

+1 Однако, так наверное документации более можно заполучить...
Нынче камень преткновения serial-ata - либо он есть либо нету!
Если его нет тады совсем пата!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 09:59 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Chizh

Цитата:
Вообще писать программу из несвязных инструкций дело неблагодарное. К тому же у многих инструкций неявные операнды. Например надо быть ясновидящим, чтобы сразу правильно понять, что происходит с регистрами в инструкциях "cmpxchg [ebx],ecx", "mul ebx", "rdtsc", "cpuid" которые неявно используют и модифицируют множество дополнительных регистров. Ущербный синтаксис инструкций не отвечает современным стандартам выразительности


"Современные стандарты выразительности" -- чушь, поскольку и раньше стандарты были ничуть не меньше (или, по-Вашему, в 1967-м выразительность неважна, а спустя 40 лет вдруг потребовалась?).

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

Что же касается "ясновидения", то нужно не ясновидящим быть, а опытом достаточным обладать ;) Я вот сходу не скажу, что и как меняется в CMPXCHG, RDTSC и CPUID -- инструкции весьма редкие. А вот с MUL у меня проблем не возникает ;)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 10:25 

Зарегистрирован: 02 май 2007, 14:25
Сообщения: 126
Цитата:
Надо, наверное, как-нибудь глянуть...
//SII 28.11.2007, 16:07

Простенький примерчик:
http://xskernel.svn.sourceforge.net/viewvc...174&view=markup


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 11:32 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Chizh
SadKo

С фичами встроенного ассемблера вот ещё какая загвоздка... Описывать изменяемые регистры и т.п. -- это хорошо, но эта информация нужна оптимизирующему компилятору, чтобы он понимал, какие регистры нужно сохранять, а какие нет. В "голом" же ассемблере эти сведения нужны только программисту, поскольку транслятор за него думать не должен (да и не может -- на то он и ассемблер). Поэтому подобная инфа в виде специальных синтаксических конструкций лишь перегружает язык -- все необходимые сведения можно (и нужно) сообщать в комментариях.

А за ссылку спасибо, на следующей неделе гляну (у меня трафик дорогой, несрочные вещи с работы делаю).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 19:27 

Зарегистрирован: 06 май 2007, 15:10
Сообщения: 135
Когда создателя фасма спросили, что он думает про контролируемые сновидения, он сказал, что недавно совсем узнал об этом из интернета, что это именно так называется...
ато говорит долгое время прикалывался с них, пока они ему совсем не надоели...
Мне кажется если сильно погрузится в асм и осестроение, то сновидения и ясновидения долго не дадут себя ждать! :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 ноя 2007, 20:13 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Цитата:
В "голом" же ассемблере эти сведения нужны только программисту, поскольку транслятор за него думать не должен
//SII 29.11.2007, 11:32

Тогда комментарии будут перегружены технической информацией, и энтропия не уменьшится :)
Именно из-за повышенной сложности программирования, я бы "думающим" транслятором не стал пренебрегать. Хотя конечно, ВЭДРО из него не получится :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB