Помощь - Поиск - Пользователи - Календарь
Полная версия: 32 компиляторы
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Fanat
Собственно, интересно что это такое. В инете поискал, там в основном описание самих компиляторов.
А мне интересно что значит именно приставка 32?..
Это как то связано с разрядностью?..И что значит разрядность 32?..
Что за программы делаются на таких компиляторах?..
volvo
Цитата
Это как то связано с разрядностью?
Именно с разрядностью...
Цитата
И что значит разрядность 32?..
А у тебя какая ОС установлена? NT? Она скольки-битная? 32-х, вестимо... Вот и расскажи, почему надо писать программы для 32-битной ОСи на старых 16-битных компиляторах? Пишем на более новых, 32-битных. Или на 64-битных (если под 64-битную ОСь)

Цитата
Что за программы делаются на таких компиляторах?
Ну вот ты пишешь на 6-ом Билдере? 32-бита однако... Какие программы ты пишешь? smile.gif Более полно использующие возможности ОС, наверное...
andriano
Основное преимущество 32-разрядных программ - возможность использовать достаточно большие объемы памяти. Адресное пространство с "плоской" адресацией в 16-разрядном режиме составляет 64 Кбайта, а в 32-разрядном - 4 Гбайта.
Fanat
Цитата(volvo @ 23.01.2008 22:09) *

Именно с разрядностью...
А у тебя какая ОС установлена? NT? Она скольки-битная? 32-х, вестимо... Вот и расскажи, почему надо писать программы для 32-битной ОСи на старых 16-битных компиляторах? Пишем на более новых, 32-битных. Или на 64-битных (если под 64-битную ОСь)

Ну вот ты пишешь на 6-ом Билдере? 32-бита однако... Какие программы ты пишешь? smile.gif Более полно использующие возможности ОС, наверное...


То есть мне все свои вопросы надо задавать было в 32 компиляторы?.. smile.gif

У меня Windows XP...Наверно 32-х битная...Только я вот никак не пойму что значит 16, 32, 64- битная...
В википедии написано
Разрядность-
Параметр, отражающий количесво одновременно отрабатываемых Электронным устройством (счётным или отображающим) разрядов (Чисел).

volvo,andriano Как ето связано с ОС?..или процессором?..
andriano
С процессором - напрямую. Любой вменяемый процессор (х86, по-видимому, не очень вменяемый) имеет вполне конкретную разрядность - длину слова, обрабатываемую его АЛУ.
8086 задумывался как переходная модель от 8- к 16-разрядным процессорам, поэтому у него, в отличие от большинства его собратьев, была предусмотрена обработка как однобайтовых, так и двухбайтовых слов.
386 процессор создали 32-разрядным, но при этом программно совместимым с предыдущими моделями х86, так что он умеет обрабатывать 8-, 16- и 32-разрядные слова.
В 80486 к процессорному ядру добавили устройство работы с плавающими числами. Внутреннее представление 80 разрядов, но при вводе/выводе поддерживает 32- и 64-разрядное представление.
В Pentium MMX добавили 64-разрядные MMX-регистры.
В Pentium III - 128-разрядные SSE.
Но процессор по прежденму продолжает называться 32-разрядным по разрядности основного АЛУ и, самое главное, разрядности адреса памяти.

ОС поддерживает определенную структуру памяти. Разрядность адреса и называется разрядностью ОС.
Fanat
Цитата(andriano @ 23.01.2008 23:37) *

С процессором - напрямую. Любой вменяемый процессор (х86, по-видимому, не очень вменяемый) имеет вполне конкретную разрядность - длину слова, обрабатываемую его АЛУ.
8086 задумывался как переходная модель от 8- к 16-разрядным процессорам, поэтому у него, в отличие от большинства его собратьев, была предусмотрена обработка как однобайтовых, так и двухбайтовых слов.
386 процессор создали 32-разрядным, но при этом программно совместимым с предыдущими моделями х86, так что он умеет обрабатывать 8-, 16- и 32-разрядные слова.
В 80486 к процессорному ядру добавили устройство работы с плавающими числами. Внутреннее представление 80 разрядов, но при вводе/выводе поддерживает 32- и 64-разрядное представление.
В Pentium MMX добавили 64-разрядные MMX-регистры.
В Pentium III - 128-разрядные SSE.
Но процессор по прежденму продолжает называться 32-разрядным по разрядности основного АЛУ и, самое главное, разрядности адреса памяти.

ОС поддерживает определенную структуру памяти. Разрядность адреса и называется разрядностью ОС.


А зачем тогда добавили 64 и 128 разрядные регистры если АЛУ осталось 32 разрядным?..
Я так понимаю их использовали для увеличение адресной памяти...
То есть разрядность адреса это и есть длина слова которую может обрабатывать АЛУ?..
volvo
Цитата
А зачем тогда добавили 64 и 128 разрядные регистры
Читаем, в частности, про Расширения SSE
Fanat
Цитата(volvo @ 24.01.2008 12:06) *

Читаем, в частности, про Расширения SSE


Цитата

Это означает, например, что появляется возможность одновременно сложить или умножить с помощью всего одной инструкции два операнда из четырех чисел с плавающей точностью одинарной точности


А как это 2 операнда, но 4 числа с плавающей точкой?..

Всё остальное понятно...и очень интересно...=)...так значит и 32битные компиляторы как раз могут использовать соотаетствующие регистры и инструкции...как я понял...
volvo
Цитата
А как это 2 операнда, но 4 числа с плавающей точкой?..
2 операнда - это 2 SSE-регистра, в каждый из которых можно запихать по 4 числа и потом одной инструкцией их перемножить. Классический пример - вычисление выражений вида "a0*x + a1*y + a2*z + a3*1". Забрасываем a0|a1|a2|a3 в один регистр, а x|y|z|1 - во второй. Перемножаем каждое с каждым одной инструкцией и в регистре-результате получаем a0*x|a1*y|a2*z|a3*1, после чего останется их только сложить...
Fanat
Цитата(volvo @ 24.01.2008 19:12) *

2 операнда - это 2 SSE-регистра, в каждый из которых можно запихать по 4 числа и потом одной инструкцией их перемножить. Классический пример - вычисление выражений вида "a0*x + a1*y + a2*z + a3*1". Забрасываем a0|a1|a2|a3 в один регистр, а x|y|z|1 - во второй. Перемножаем каждое с каждым одной инструкцией и в регистре-результате получаем a0*x|a1*y|a2*z|a3*1, после чего останется их только сложить...


Понятно...а вот это АЛУ где находиться?..(всмысле в системном блоке...=))
andriano
Цитата(Fanat @ 24.01.2008 10:20) *

А зачем тогда добавили 64 и 128 разрядные регистры если АЛУ осталось 32 разрядным?..
Я так понимаю их использовали для увеличение адресной памяти...
То есть разрядность адреса это и есть длина слова которую может обрабатывать АЛУ?..

1. Для векторных инструкций. Т.е. за одну команду обрабатывается не одно, а несколько чисел. MMX работают с целыми числами (8 байт или 4 слова или 2 двойных слова), полезны для звука и растровой графики. SSE работают с 4 числами с плавающей точкой, полезны для операций с векторами, которые обычно используются в 3D-графике.
2. Нет, адресация не изменилась т.к. осуществляется регистрами АЛУ.
3. АЛУ может обрабатывать как адреса, так и данные. Процессоры Intel 8086, 80286 и 80386 содержали в себе только АЛУ. В 80486 внутрь процессора перенесли FPU, которое раньше распоагалось в отдельном корпусе и могло устанавливаться в компьютер опционально. Начиная с Pentium MMX появился блок векторных инструкций.

Добавлено через 2 мин.
Цитата(Fanat @ 24.01.2008 19:38) *

Понятно...а вот это АЛУ где находиться?..(всмысле в системном блоке...=))

АЛУ находится на кристалле, который находится в корпусе процессора, который закреплен в гнезде системной платы, которая находится в корпусе компьютера, который находится вероятнее всего на столе.
Fanat
Спасибо... smile.gif

Я так понимаю ассемблер как раз даёт доступ к этим регистрам...
А где можно посмотреть все возможные регистры для моего компьютера?..
(к которым можно обратиться с помощью ассмблера)
volvo
Ну, это смотря, какой у тебя процессор... Для Intel-овских - ходи сюда: http://www.intel.com/products/processor/manuals/ и смотри доки, начиная с "Volume 1: Basic Architecture"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.