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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2016, 18:31   #1
movchinar
Пользователь
 
Регистрация: 06.01.2015
Сообщений: 15
По умолчанию Assembler - процессоры IA 32

Привет всем,
У меня экзамен по assembler, и не могу найти конкретный ответ для этих вопросы:
1. Архитектура IA 32 процессоров
2. Система команд процессора IA 32
3. Синтаксис assembler
P.S. Читала некоторых книгах очень сложно написано, не могу понять
movchinar вне форума Ответить с цитированием
Старый 25.01.2016, 00:50   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Сообщение от movchinar Посмотреть сообщение
Привет всем,
У меня экзамен по assembler, и не могу найти конкретный ответ для этих вопросы:
1. Архитектура IA 32 процессоров
2. Система команд процессора IA 32
3. Синтаксис assembler
P.S. Читала некоторых книгах очень сложно написано, не могу понять
А что вы от нас хотите? Чтобы получить знания вам самостоятельно придётся читать книги, документацию, искать в интернете, смотреть на практике, понимать. Первое, что вы должны были найти - это оф. документацию: Руководства для разработчиков приложений для 64- и 32-разрядных архитектур Intel

То что мне помогало:
- "Изучаем Ассемблер", Крупник
- Введение в крэкинг с нуля, используя OllyDbg - Глава 1
- "Архитектура компьютера", Таненбаум
8Observer8 вне форума Ответить с цитированием
Старый 25.01.2016, 01:30   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

Архитектура IA32

Впервые объектный код для процессоров на архитектуре IA32 был создан в 1978 году и используется до сих пор. Предшествующими архитектуре IA32 процессорами были 16-битные процессоры Intel 8086 и 8088. Процессор 8086 включал 16-битные регистры, 16-битную шину данных с 20-битной адресацией и адресным пространством 1 мегабайт. 8088 имел шину данных 8 бит. В процессоре Intel 286 появился защищенный режим. Защищенный режим использует содержимое сегментных регистров как указатели на таблицы дескрипторов. Дескрипторы обеспечивают 24-битные базовые адреса и доступ к оперативной памяти размером до 16 мегабайт. Защищенный режим включает 4 уровня привелений для защиты системного кода операционной системы от приложений или пользовательских программ, проверку на сегментные ограничения, настройки сегмента только на чтение или только на исполнение.

Первым процессоров на архитектуре IA-32 был Intel 386, выпущенный в 1985 году. В нем использовались 32-битные регистры для адресов и операндов. 16-битные части 32-битных регистров сохраняют свойства 16-битных регистров предыдущих процессоров. Это обеспечивает обратную совместимость. Адресная шина 32 битная поддерживат до 4 гигабайт физической памяти. Логическое пространство адресов обеспечивается для каждого программного процесса.

Поддерживаются два типа моделей памяти - сегментированная и фиксированная. При фиксированной модели памяти, сегментные регистры указывают на тот же самый адрес.

Процессор поддерживает разбивку на страницы с фиксированным размером страницы 4 килобайт и обеспечивает метод для управления виртуальной памятью.

Процессор Intel 386 был первым, в котором использовалось 6 параллельных стадий обработки.
1. блок шинного интерфейса (обеспечивает ввод-вывод для других блоков и доступ к памяти)
2. блок упреждающей выборки (получает объектный код с шины и помещает в 16-битную очередь)
3. блок декодирования инструкции (декодирует объектный код с блока упреждающей выборки в микрокод) 4. блок исполнения (выполняет микрокод)
5. блок сегмента (преобразует логические адреса в линейные и осуществляет защитную проверку)
6. блок разбивки на страницы (преобразует линейные адреса в физические, осуществляет проверку защиты страницы и содержит кэш с информацие о 32 последних использованных страницых)

Процессорами, использующими эту архитектуру являются:
- Intel 486 (1989). В процессор был добавлен кэш первого уровня размером 8 килобайт, что позволило увеличить количество инструкций, выполняемых за один тик. Кроме того был добавлен арифметический сопроцессор (FPU). Блок исполнения 5-стадийный, конвейерный.
- Intel Pentium (1993). Добавлен второй конвейер. В процессоре два конвейера u и v, которые могут выполнять 2 инструкции за тик. Кэш первого уровня удвоился, и размер стал 8 килобайт для кода и 8 килобайт для данных. Внутренние пропускные пути 128,256 битные. Добавлен APIC (продвинутый программируемый контроллер прерываний). Представлена технология MMX с моделью исполнения SIMD (одна инструкция, множество данных) для выполнения параллельных вычислений над пакованными целочисленными данными, содержащимися в 64-битных MMX регистрах.
- семейство процессоров P6 (1995) со суперскалярной конвейерной архитектурой, позволяющей выполнять 3 инструкции за тик. Семейство включало Pentium Pro, Pentium II, Pentium II Xeon, Celeron, Pentium III, Pentium II Xeon. В процессоре представлено динамическое исполнение. Кэш первого уровня - 8 килобайт. Кэш второго уровня - 256 килобайт с 64-битной скоростной шиной. Кэш второго уровня поддерживает 4 совместных доступа. Максимальный физический размер памяти для Pentium Pro - 64 гигабайт
- Intel Pentium 4 (2000) (...)
- Intel Xeon (...)
- Intel Pentium M (...)

Схема передачи данных:
системная шина <---> блок шины <---> кэш второго уровня <---> кэш первого уровня, постобработка <--> ядро исполнения <--- исполнение / кэш инструкций / микрокод / постоянное запоминающее устройство <--- извлечение/ декодирование<---ветка упреждения <--- постобработка

http://flint.cs.yale.edu/cs422/doc/24547012.pdf
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 25.01.2016, 01:41   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

- Intel Pentium II. Кэш первого уровня - 16 килобайт. Поддерживается кэш второго уровня размерностью 256 килобайт, 512 килобайт, 1 мегабайт.
- Intel Pentium II Xeon поддерживает кэш второго уровня размером 2 мегабайта.
- Intel Celeron содержит кэш второго уровня 128 килобайт.
- Intel Pentium III включает набор инструкций SSE (потоковый SIMD), расширяющий набор инструкций MMX посредством добавления 128-битных регистров для выполнения операций над запакованными одинарными данными с плавающей точкой
- Intel Pentium III Xeon содержит продвинутый транспортный кэш (ATC)
- Intel Pentium 4 (2000). Поддерживает микро-архитектуру NetBurst, которая выключает "движок" для быстрого исполнения, гипер-конвейерную технологию, продвинутое динамическое выполнение, инновационную подсистему кэшей. В данном процессоре реализован набор инструкций SSE2, расширяющий возможности MMX и SSE 144 новыми инструкциями, которые выключают поддержку для арифметических операций над 128-битными целыми числами и операций с плавающей точкой двойной точности над 128-битными операндами, а также операции для управления кэшем и памятью. Системная шина частотой 400 мегагерц с пропускной способностью 3,2 гигабайта в секунду
- Intel Xeon
- Intel Pentium M. Предназначен для мобильных устройств.

Комментарий: дальше в документации идет описание P5 архитектуры, набора инструкций SSE2 и netBurst. Не знаю, нужно ли перевести.

http://flint.cs.yale.edu/cs422/doc/24547012.pdf
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 25.01.2016, 02:18   #5
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,639
По умолчанию

2. Система команд включает инструкции общего назначения, инструкции для сопроцессора (FPU), наборы инструкций SIMD, MMX, SSE, SSE2.

Фундаментальные типы данных:
- байт (byte) 8 бит
- слово (word) 16 бит
- двойное слово (double word, dword) 32 бита
- четверное слово (quadword) 64 бита
- двойное четверное слово (double quadword) 128 бит

Примеры команд:
- CALL (процедура вызова)
- RET (возврат из процедуры)
- INT (программное прерывание)
- JMP (безусловный переход)
- ADD (сложение)
- SUB (вычитание)
- MUL (беззнаковое умножение)
- DIV (беззнаковое деление)
- CMP (сравнение)
- MOV (поместить данные)
- PUSH (поместить в стек)
- POP (вытолкнуть из стека)
- INC (инкремент)
- DEC (декремент)

3. Стандартный формат инструкции:
префикс - код операции (1,2 байта) - режим (байт) - масштаб, индекс, база(1,2,4 байта) - смещение - непосредственные данные(1,2,4 байта)

Пример: add eax, 1

У ассемблера два синтаксиса:
- At&T
- Intel

Про синтаксис At&T на странице http://paukpv.pp.ru/atit.php
Сравнение синтаксисов - http://webhamster.ru/mytetrashare/index/mtb0/744


http://flint.cs.yale.edu/cs422/doc/24547012.pdf
http://flint.cs.yale.edu/cs422/doc/24547112.pdf
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler DEFOX Помощь студентам 0 14.12.2011 14:32
Как программировались первые процессоры ? gefest58 Свободное общение 17 21.03.2011 13:16
Процессоры elektroniks Компьютерное железо 5 15.02.2011 00:47
6-ти ядерные процессоры? Mixim Компьютерное железо 22 11.11.2010 13:35
Assembler Morgusha Помощь студентам 11 12.02.2010 18:05