OSDev http://osdev.su/ |
|
Проблемы начинающего осеписателя http://osdev.su/viewtopic.php?f=5&t=165 |
Страница 4 из 5 |
Автор: | Himik [ 28 ноя 2007, 20:12 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Я имел ввиду те самые "логические типы величин". Да, в регистрах они меняются чаще, чем в ЯВУ из-за малого количества самих регистров. Но это делает проверку типов на порядок актуальней. |
Автор: | vkos [ 28 ноя 2007, 20:22 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
По-моему, асм всё же для того и существует, что программировать на низком уровне. По этому никаких типов там не должно быть. А если тебе нужны типы -- бери Си или др. ЯВУ. А на счёт того, что в команде должен указываться размер операндов как в AT&T -- я согласен. |
Автор: | SII [ 28 ноя 2007, 20:33 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Насчёт команд у меня вообще желание реализовать два подхода: один -- стандартные мнемоники от Интела (т.е. на уровне самих инструкций ассемблер будет совместим с MASM и иже с ним, что облегчит при необходимости перенос программ), второй -- свой формат, отчасти напоминающий AT&T (с явно заданной длиной операндов и % перед именами регистров -- всё это было ещё на PDP-11 и VAX-11, так что мне не привыкать). |
Автор: | Himik [ 29 ноя 2007, 00:25 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
vkos, можно сделать вывод, что ты не знаком с типами данных процессора. Вообще писать программу из несвязных инструкций дело неблагодарное. К тому же у многих инструкций неявные операнды. Например надо быть ясновидящим, чтобы сразу правильно понять, что происходит с регистрами в инструкциях "cmpxchg [ebx],ecx", "mul ebx", "rdtsc", "cpuid" которые неявно используют и модифицируют множество дополнительных регистров. Ущербный синтаксис инструкций не отвечает современным стандартам выразительности. |
Автор: | semiono [ 29 ноя 2007, 01:29 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Цитата: В частности, если нет особых причин, нет смысла пытаться поддерживать старые процессоры (80386, к примеру) и древнюю периферию (не поддерживающие LBA жёсткие диски). +1 Однако, так наверное документации более можно заполучить... Нынче камень преткновения serial-ata - либо он есть либо нету! Если его нет тады совсем пата! |
Автор: | SII [ 29 ноя 2007, 09:59 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Chizh Цитата: Вообще писать программу из несвязных инструкций дело неблагодарное. К тому же у многих инструкций неявные операнды. Например надо быть ясновидящим, чтобы сразу правильно понять, что происходит с регистрами в инструкциях "cmpxchg [ebx],ecx", "mul ebx", "rdtsc", "cpuid" которые неявно используют и модифицируют множество дополнительных регистров. Ущербный синтаксис инструкций не отвечает современным стандартам выразительности "Современные стандарты выразительности" -- чушь, поскольку и раньше стандарты были ничуть не меньше (или, по-Вашему, в 1967-м выразительность неважна, а спустя 40 лет вдруг потребовалась?). Что касается ущербного синтаксиса -- согласен, но он проистекает из ущербной системы команд, а её изменить мы не в силах. Единственное, что реально можно сделать (если не притягивать "за уши") -- это комментировать подобные места для облегчения восприятия (вообще, комментарии -- вещь очень полезная, даже если пишешь исключительно для себя). Что же касается "ясновидения", то нужно не ясновидящим быть, а опытом достаточным обладать ;) Я вот сходу не скажу, что и как меняется в CMPXCHG, RDTSC и CPUID -- инструкции весьма редкие. А вот с MUL у меня проблем не возникает ;) |
Автор: | sadko [ 29 ноя 2007, 10:25 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Цитата: Надо, наверное, как-нибудь глянуть... //SII 28.11.2007, 16:07 Простенький примерчик: http://xskernel.svn.sourceforge.net/viewvc...174&view=markup |
Автор: | SII [ 29 ноя 2007, 11:32 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Chizh SadKo С фичами встроенного ассемблера вот ещё какая загвоздка... Описывать изменяемые регистры и т.п. -- это хорошо, но эта информация нужна оптимизирующему компилятору, чтобы он понимал, какие регистры нужно сохранять, а какие нет. В "голом" же ассемблере эти сведения нужны только программисту, поскольку транслятор за него думать не должен (да и не может -- на то он и ассемблер). Поэтому подобная инфа в виде специальных синтаксических конструкций лишь перегружает язык -- все необходимые сведения можно (и нужно) сообщать в комментариях. А за ссылку спасибо, на следующей неделе гляну (у меня трафик дорогой, несрочные вещи с работы делаю). |
Автор: | semiono [ 29 ноя 2007, 19:27 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Когда создателя фасма спросили, что он думает про контролируемые сновидения, он сказал, что недавно совсем узнал об этом из интернета, что это именно так называется... ато говорит долгое время прикалывался с них, пока они ему совсем не надоели... Мне кажется если сильно погрузится в асм и осестроение, то сновидения и ясновидения долго не дадут себя ждать! :D |
Автор: | Himik [ 29 ноя 2007, 20:13 ] |
Заголовок сообщения: | Re: Проблемы начинающего осеписателя |
Цитата: В "голом" же ассемблере эти сведения нужны только программисту, поскольку транслятор за него думать не должен //SII 29.11.2007, 11:32 Тогда комментарии будут перегружены технической информацией, и энтропия не уменьшится :) Именно из-за повышенной сложности программирования, я бы "думающим" транслятором не стал пренебрегать. Хотя конечно, ВЭДРО из него не получится :) |
Страница 4 из 5 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |