Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
Troll_Face
602 / 402 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
#1

GCC. генерация кода - Assembler

22.05.2013, 22:20. Просмотров 652. Ответов 4
Метки нет (Все метки)

зачем GCC в начале функции main делает такую вставку: and esp,0xfffffff0
Assembler
1
2
3
4
5
6
7
8
9
10
push   ebp
mov    ebp,esp
and    esp,0xfffffff0
sub    esp,0x10
mov    DWORD PTR [esp+0xc],0x1
mov    DWORD PTR [esp+0xc],0x0
call   0x80482f0 <getchar@plt>
mov    eax,0x0
leave
ret
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 22:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос GCC. генерация кода (Assembler):

Динамическая генерация кода - Assembler
Добрый день. Наткнулся в нете на следующее: &quot;Функция BitBlt содержала своего рода небольшой компилятор. На основе растровой...

GCC FPU x^y - Assembler
Есть такой код-асм. вставка. По ходу написания которого выяснилось что для f2xm1 st(0) должен быть в диапазоне Для приведения st(0)...

переписать код в GCC Inline Assembly - Assembler
Добрый день! cld lea di,buffer mov dx,01f0h mov cx,256 rep insw

Вывод scan кода и ascii кода нажатой клавиши - Assembler
Подскажите пожалуйста, как реализовать вывод scan кода и ascii кода нажатой клавиши в ассемблерной вставке в c++ builder 6

GCC Inline Assembly перевести в Visual Studio Inline Assembler - Assembler
Здравствуйте. Есть код на GCC Inline Assembly и его нужно перевести в Visual Studio Inline Assembler. Не работал с GCC Inline Assembly...

Генерация звука - Assembler
написать программу которая генерирует звук : должна проигрывать мелодию в виде процедуры , вызывать программу с частотой и временем ...

4
Vourhey
Почетный модератор
6487 / 2261 / 123
Регистрация: 29.07.2006
Сообщений: 12,534
22.05.2013, 22:32 #2
Выравнивание стека?
1
Troll_Face
602 / 402 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
22.05.2013, 22:39  [ТС] #3
не вижу смысла его ровнять... Для чего?
0
Mikl___
Заблокирован
Автор FAQ
23.05.2013, 04:43 #4
Troll_Face,
чтобы обращения к памяти шли быстрее, перепечатываю перевод статьи Агнера Фога
Все данные в RAM должны быть выравнены так, чтобы их адреса были кратны 2, 4, 8 или 16 согласно данной схеме:
выравнивание
размер операнда PPlain и PMMX PPro, PII и PIII
1 (byte) 1 1
2 (word) 2 2
4 (dword) 4 4
6 (fword) 4 8
8 (qword) 8 8
10 (tbyte) 8 16
16 (oword) n.a. 16
На PPlain и PMMX при обращении к невыравненным данным будет теряться по меньшей мере 3 такта, если пересечена граница в 4 байта. Потери будут выше при пересечении границы кэша.
На PPro, PII и PIII невыравненные данные будут стоить вам 6-12 дополнительных тактов, если пересечена граница кэша. Невыравненные операнды, меньшие чем 16 байтов и не перешедшие границу в 32 байта, не приводят к потерям.
Выравнивание данных на 8 или 16 в стеке двойных слов может стать проблемой. Общий метод решения - установить выравненный указатель на кадр стека. Функция с выравненными локальными данными может выглядеть примерно так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
_FuncWithAlign PROC NEAR
        PUSH    EBP                        ; пролог
        MOV     EBP, ESP
        AND     EBP, -8                    ; выравнивание указателя на кадр стека на 8
        FLD     DWORD PTR [ESP+8]          ; параметр функции
        SUB     ESP, LocalSpace + 4        ; резервируем локальные данные
        FSTP    QWORD PTR [EBP-LocalSpace] ; теперь сохраняем что-нибудь в
                                           ; локальной переменной
        ...
        ADD     ESP, LocalSpace + 4        ; эпилог, восстанавливаем ESP
        POP     EBP                        ; (потеря скорости AGI на PPlain/PMMX)
        RET
_FuncWithAlign ENDP
В то время как выравнивание данных важно всегда, выравнивание кода не является необходимым на PPlain и PMMX. Принципы выравнивания кода на PPro, PII и PIII изложены в главе 15.
1
Mikl___
Заблокирован
Автор FAQ
24.05.2013, 04:55 #5
  • Статьи Агнера Фога по оптимизации
  • Переводы на русский язык части его статей
1
24.05.2013, 04:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2013, 04:55
Привет! Вот еще темы с ответами:

Генерация звука - Assembler
Почему данная программа не воспроизводит звук? Частоты менял, и длительность - бес толку.Спасибо за ответы заранее) TITLE SONOR (COM);...

Генерация кода - PHP
Доброго времени суток! Решил сделать простой скрипт генерации кода. Но вот, не получается. А всё из-за циклов. /* Список со всемя...

.NET 4.x Генерация кода - C#
Доброго времени суток. Необходимо во время выполнения создать .cs файл кода. Содержание .cs зависит от введённых в программу данных. Есть...

Генерация кода - C# ASP.NET
Добрый день, ищу решение. существует базовая структура, на её основе созданы сайты для различных организаций (например организация скаутов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.