Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2009, 00:40   #1
Troi666
Пользователь
 
Регистрация: 01.12.2008
Сообщений: 58
По умолчанию Архитектура процессора

Хотел начать изучение ассемблера (тем более что на более старших курсах он всё равно будет) и сразу наткнулся одну "бяку". Как понял - ассемблер свой для каждой системы, каждого компьютера, но схож для компьютеров с одной архитектурой процессоров. Так вот помогите пожалуйста определить, что у меня за архитектура и как это понять: процессор "intel core 2 duo E7300". И ещё вопрос, что будет, если попробовать запустить программу из учебника по другой архитектуре? Может ли это привести к непредсказуемым последствиям относительно железа и прочего? Ну и последний, наверное, вопрос пока что...часть учебников об ассемблере под дос, а часть под виндос. Что лучше/проще для начального освоения и много ли различий?
Troi666 вне форума Ответить с цитированием
Старый 10.06.2009, 00:59   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
на более старших курсах он всё равно будет
Везёт.....

А у нас не будет...
Преподаватель и так по своей инициативе пытался нам основы объяснить.....

У нас был компилятор TASM и мы делали всё на каких-то более-менее стандартных командах...)

Цитата:
часть учебников об ассемблере под дос, а часть под виндос
Думаю надо начинать с простого, чтоб изучить основы... А уже потом изучать как всякие системные вызовы делать...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 10.06.2009, 01:44   #3
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Цитата:
И ещё вопрос, что будет, если попробовать запустить программу из учебника по другой архитектуре?
Ничего страшного не случится. Все процессоры архитектуры x86, и более младшие обратно совместимы, т.е. если программа написана для более старшего процессора, а ее запустили на более новом, то она, скорее всего, даже не поймет это. А если наоборот, программа написана для более нового процессора (с вашим это не скоро случится), то просто вылетит с ошибкой.
Другое дело если программа написана для одной версии ОС (даже у ДОС бывают разные версии), а запускают на другой. В этом случае программа (возможно, но не обязательно!) будет работать не правильно, либо не работать совсем. Я думаю вам встречались программы, которые прекрасно работали под WinXP, но наотрез отказывались работать под вистой.
Цитата:
Что лучше/проще для начального освоения и много ли различий?
Различий, конечно довольно много. А вот начать, ИМХО, лучше доса, потому как в dos лучше понимаются основы ассемблера, а винде, в основном, все сводится к использованию апи функций.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 10.06.2009 в 02:23.
Goodwin98 вне форума Ответить с цитированием
Старый 10.06.2009, 02:55   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Введение в машинный код.

Ваша архитектура это Core 2 но это разновидность x86 архитектура. Ассемблер для нас(программистов) остается неизменным в своем базисе, для инженеров же все по другому. Вполне может оказаться так что какая ни будь команда выполняется на VIA быстрее чем на Intel и AMD и наоборот. Но ведь для нас это роли не играет - что на VIA что на Intel или AMD - оппкод будет одинаковым. Если кто то захочет сменить опкод он автоматически приговорит свой бренд.
Собственно сейчас у нас почти такая ситуация. У AMD SSE4A а у Intel SSE4.1. Грядет AMD SSE5 и Intel AVX - там уже точно будет полное различие в командах. Так что нам стоит готовится к тому что придется делать по 2 версии программ - с оптимизацией под Intel и под AMD.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 10.06.2009, 12:39   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Troi666 Посмотреть сообщение
(тем более что на более старших курсах он всё равно будет)
так вот могу с вероятностью 99% сказать что вам будут излагаться основы, а именно: программирование под DOS, всякие досовские прерывания и так далее, т.е. программироание в 8086, т.е. 16 битный режим процессора. Это только основы и не более! Про защищённый режим процессора, (в котором работают почти все нормальные системы windows и unix), даже намёка не будет. т.е. ничему дельному не научат. Все полученные знания будут бесполезны при реальном программировании в windows. Исключением может стать разве что ты учишься в супер навороченном институте, где учат суперинженеров.
rpy3uH вне форума Ответить с цитированием
Старый 10.06.2009, 13:07   #6
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Цитата:
Что лучше/проще для начального освоения и много ли различий?
Конечно лучше начать с программирования под DOS, различия между виндой и досом просто коллосальное!!! Я когда начинал сразу программировать под винду, то ужаснулся с размера простого, обычного окна !!! Сразу расхотелось программировать, но купил несколько учебников ассемблера, а там под DOS и все со временем стало на свои места!
У меня в подписи есть ссылка на уроки под виндовс, так что посмотри если хочешь
Цитата:
если попробовать запустить программу из учебника по другой архитектуре?
Запускай! Должно работать!!! По утверждению IBM: каждая следующая разработка должна поддерживать предыдущую.
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 10.06.2009, 22:35   #7
Troi666
Пользователь
 
Регистрация: 01.12.2008
Сообщений: 58
По умолчанию

Всем огромное спасибо! Всё начинает медленно вставать на свои места
Troi666 вне форума Ответить с цитированием
Старый 11.06.2009, 09:44   #8
Tiro
 
Аватар для Tiro
 
Регистрация: 10.06.2009
Сообщений: 6
По умолчанию

Насколько я знаю, все (или большинство) современных процессоров для ПК являются процами с Virtual Instruction Set... То есть они могут исспользовать в работе новые технологии типа pipelining, out of order architecture, VLIW (very long instruction word) и так далее (и естественно собственные команды)... Но для программирования исспользуются команды для x86... "Перевод" команд x86 в команды процессора происходит в firmware процессора...
Поидее это должно обеспечивать совместимость как "вверх", так и "вниз"...

Последний раз редактировалось Tiro; 11.06.2009 в 09:47.
Tiro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Температура процессора HelloZAPOR Win Api 20 26.11.2011 03:09
Трехзвенная архитектура "клиент-сервер": обновление данных Lisi4ka Помощь студентам 1 07.04.2009 11:14
Загрузка процессора Terran Общие вопросы Delphi 1 15.12.2007 22:27