Вопрос

No comments
  • It starts with...
    It should start with...
    File address should start with http://
  • "Он начинает" (он - что делает?) - это третье лицо, ед. ч., на английском "He starts"
    "Должен начинаться" (что делать?) - это инфинитив, на английском "should start"
    Как-то так.
  • Спасибо :)
  • Нужен полный список команд процессора.
    вот тут http://www.kolasc.net.ru/cdo/programmes ... er/tc.html все ? или есть более полный ?
  • Есть ещё команды сопроцессора, там операции с большими дробными числами и тригонометрия. Ещё есть мультимедийные наборы MMX, SSE... тысячи их.
  • [quote="ALEXS1983"]Нужен полный список команд процессора.[/quote]
    http://www.intel.com/content/dam/www/pu ... 325383.pdf
  • А можно покритиковать ?! :-) Может до кого-то что-то дойдёт?!.... :-)
    Итак, я создал тему «Названия системных функций”, с горем пополам утвердили названия числовых констант функций КОС. Далее надо бы утвердить сами названия процедур и параметры передаваемые и возвращаемые в те процедуры. Как я успел заметить и понять, то всем это пофиг и никому до этого нет никакого дела. Это видимо никому не нужно и без этого вполне можно жить. Возможно, конечно, что без этого вполне можно жить, но вопрос в том, - каким образом (жить)?!
    Для КОС есть описание функций, полное, вроде толковое, - похвально. Но вот возьмём и почитаем первую попавшуюся функцию «Функция 0 - определить и нарисовать окно», а там написано вот такое:....
    * ebx = [координата по оси x]*65536 + [размер по оси x].....…...........
    edx = 0xXYRRGGBB, где: Y = стиль окна..... X = DCBA (биты).............
    Все настолько привыкли к такому описанию функций, что никто ничего ненормального в этом описании не видит. Ведь правда?! Не видите?! Ничего ненормального нету ?
    А то, что на дворе 21-век, (уже не первый год между прочим,) и что в 21 веке вместо того, чтобы отдельной переменной (регистром) передавать значения процедуре, а не формировать несколько значений в один регистр, используя смещения регистров, установки битов и т. д. в этом, как я понял, никто ничего ненормального не видит. Точнее говоря, не видят специалисты которые вполне привыкли к такому.
    Я как новичок, ознакомившись внимательно с описанием функций, первое, что мне пришло в голову, что это должно было бы уже давным давно приведено к нормальному виду. т. е. например вот такому:
    procedure CreateWindow(X,Y:Word; SizeX,SizeY:Word; WindowColor:Cardinal;
    WindowStyleX,WindowStyleY:Byte;HeadColor:Cardinal;HeadStyleX,HeadStyleY:
    Byte;FrameColor:Cardinal);
    И даже используя фасм, можно бы было давным давно написать вспомогательные процедуры с помощью которых было бы удобно вызывать функции КОС не прибегая к смещению (установки) битов и прочему, чтобы сводить «всё в один регистр» (в данном случае edx — цвет, стильX, стильY). Можно бы было стандартизировать процесс передачи данных для процедур в том же фасме, например, через регистры (или через стек), каждый параметр отдельно первый параметр в eax, второй в ebx и т.д. И тогда любой и новичок в том числе знал бы, что если нужно передать процедуре (любой) 3-й параметр, что его нужно помещать в ecx, например. А вызов процедуры согласно утверждённому стандарту, в данном случаее, - call CreateWindow или в ЯВУ CreateWindow (X,Y:SizeX...... ) или ещё как-то там.
    На данный момент, как я понял, меня никто не слышит. Ну или не хочет слышать.
    Всё сводится к тому, что я вот так, посмотрю-посмотрю на это всё и.... «плюну»! Думаю, что и другие новички однажды заинтересовавшиеся КОС, явившиеся однажды на форум, но и увидевшие и понявшие всё то, что понял я , тоже «плюнут» на это всё! Можно было бы долго и нудно писать, что что понял я, но не вижу в этом никакого смысла. Одним словом, - НИЧЕГО ХОРОШЕГО!
  • Берёшь названия из KOSfuncs.inc, удаляешь префикс. На ассемблере с такой передачей параметров проблем не возникает, если не сказать удобно. От тебя требуется сделать так, как будет удобно тебе. Здесь вообще на паскале мало кто пишет, да и чаще всего решает тот, кто делает. А ещё, здесь не социальная сеть, комментарии просто так не пишут, лайки не предусмотрены. Если все молчат — значит все согласны.
  • ALEXS1983 писал(а):
    > Все настолько привыкли к такому описанию функций, что никто ничего ненормального
    > в этом описании не видит. Ведь правда?! Не видите?! Ничего ненормального нету ?
    > А то, что на дворе 21-век, (уже не первый год между прочим,) и что в 21 веке вместо
    > того, чтобы отдельной переменной (регистром) передавать значения процедуре, а не
    > формировать несколько значений в один регистр, используя смещения регистров, установки
    > битов и т. д. в этом, как я понял, никто ничего ненормального не видит.

    ...так никаких волостей не напасешься...
    Вместо 1-го регистра использовать 6 (1 для цвета, 4 для стиля окна, 1 для типа окна) это при том что в процессоре регистров общего назначения всего 8 (eax ebx ecx edx edi esi ebp esp).
    Кто мешает сделать набор констант с нужными битами и при вызове функции цеплять необходимые параметры через or или через +.
  • [quote="IgorA"]...так никаких волостей не напасешься...
    Вместо 1-го регистра использовать 6 (1 для цвета, 4 для стиля окна, 1 для типа окна)... [/quote]
    Ну да ! Всё по полочкам! Удобно и понятно! Как в ЯВУ, в том же дельфи, да и в других ЯВУ наверное тоже. А с таким подходом как в документации, далеко ни у каждого будет желание писать (пробовать что-то написать для КОС). Отсюда вопрос: Чего добиваются разработчики ?... чтобы писали только те, кто, извините меня, "тащятся" от асма?.... причём "тащятся" от самой установки битов, смещения битов в регистре?... а остальные, как говорится, - нафиг с пляжа!... Так что ли ?
    Я не против того, что в документации и того как оно всё создано , но я говорю от том, что должно было бы принято и утверждено другие более удобные способы вызовов и передачи параметров. А мне говорят: "Сделай как тебе удобней!"... но я хотел бы перестраховаться, чтобы было сделано правильно!... и для всех!... чтобы не только я "опирался" на сделанное, а все! Но другим я вижу нет никакого дела до этого!

    [quote="IgorA"]Кто мешает сделать набор констант с нужными битами и при вызове функции цеплять необходимые параметры через or или через +.[/quote]
    Ну вот! Подтверждение того, что в частности ты считаешь это вполне нормальным! :-(
    А я еще раз скажу: а какого чёрта в 21-м веке, даже если использовать фасм, то нужно, что-то "городить" с помощью OR, AND, SHR, LHR и прочего для вызова какой-то функции, если можно чётко передавать каждый параметр?!
    Но самое большее, что меня удивляет, что это никого не беспокоит! :-( :-)
    Я даже делая пробы программирования на фасме, понял, что постоянно так делать нельзя! Должно быть какое-то решение! Причём не у каждого своё, а общее и для всех! Стандартизация, есть такое слово! :-)
    Я бы мог понять если бы существовал какой-то макрос или процедура, причём опять же единая для всех процедур, которая конвертирует "кучу" параметров в "кучу" регистров и обратно, что-то типа распаковки и запаковки, перед вызовом процедуры и после её вызова, но тут ведь, далеко не тот случай!
    =============
    ну не знаю.... вряд ли молчание в теме "названия системных функций" это знак согласия?!... не может такого быть, чтобы в том, что я выложил, все и во всем, были бы согласны и не писали коментов по тому поводу! Странно всё это как-то... :-( :-)
  • В 2015 году самым популярным компилируемым языком остаётся С, и в нём тоже есть флаги, и тоже упаковываются в один параметр. Посмотри на Windows API.
  • То, что ты предлагаешь, для меня сродни использованию int вместо byte для хранения булевого значения. Не так уж и сложно вместо запятой написать + или логическое или (а зависимости от ЯП)
    to infinity and beyond
  • Хотелось бы присоединиться к разработчикам KolibriOS. Знаю я средне так C++. Что мне посоветуете?
  • [b]barbar89[/b]
    Напиши программу вроде Paint'a.
  • Who is online

    Users browsing this forum: No registered users and 2 guests