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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
#1

Что значит регистры флагов? - C++

01.04.2013, 17:04. Просмотров 568. Ответов 6
Метки нет (Все метки)

Известно где услышал звон "Пацаны, компиляйте в нейтив, дебажте идой, прописывайте относительные смещения, сбрасывайте регисты флагов." Поясните что означают эти фразы, не на примерах, а назначение и цель, где используется (про натив знаю)...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 17:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что значит регистры флагов? (C++):

Sleep(8000) - что значит? На что можно заменить в борланд с++? - C++
Не распознаёт Sleep(8000) . Если за комментировать пишет что f заданно но не используется. Как исправить? ...

Что значит Handle hf? Что в эту функцию нужно передавать - C++
мне нужно создать функцию Node * ReadNode(HANDLE hf); (Node это структура) Так вот вопрос в том что значит Handle hf? Что в эту функцию...

Что значит ^= ? - C++
нашел в коде данную фичу (язык С) не понимаю что конкретно она выполняет пример из кода ... mistake ^= i+1; ...

Что значит new () - C++
Случайно ошибся и написал double *F1 = new double (count); вместо double *F1 = new double ; компилятор не выдал ошибки,но приложение не...

что значит /= - C++
Бродил по форуму и наткнулся на вот такой синтаксис temp/=10; а что это значит

Что значит? - C++
std::cout << (myCircle.pointInCircle(x, y) ? "In circle" : "Out of circle"); Что означет эта строчка?

6
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
01.04.2013, 17:15 #2
Регистр флагов - это регистр, в котором позиция каждого бита отображает состояние процессора или результаты операций.

А вообще возьмите книгу по ассемблеру, там есть все что нужно знать о регистрах.

Добавлено через 2 минуты
Цитата Сообщение от vbloodv Посмотреть сообщение
"Пацаны, компиляйте в нейтив,
Машинный код
Цитата Сообщение от vbloodv Посмотреть сообщение
дебажте идой,
IDA?
1
CheshireCat
Эксперт С++
2896 / 1245 / 78
Регистрация: 27.05.2008
Сообщений: 3,404
01.04.2013, 17:18 #3
Нет, тут ида - это IDA - Interactive Disassembler Pro - один из дизассемблеров. Но "дебажить идой".... хммм... я бы сказал, что это на любителя.
1
Croessmah
01.04.2013, 17:20
  #4

Не по теме:

Цитата Сообщение от CheshireCat Посмотреть сообщение
Нет, тут ида - это IDA - Interactive Disassembler Pro
букву перепутал

1
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
01.04.2013, 17:20 #5
Цитата Сообщение от vbloodv Посмотреть сообщение
Известно где услышал звон "Пацаны, компиляйте в нейтив, дебажте идой, прописывайте относительные смещения, сбрасывайте регисты флагов." Поясните что означают эти фразы, не на примерах, а назначение и цель, где используется (про натив знаю)...
регистры флагов даже к высокому уровню вообще не относятся, тем более к плюсам, это раздел не ассемблера и не паскаля.
1
Kastaneda
Jesus loves me
Эксперт С++
4697 / 2901 / 238
Регистрация: 12.12.2009
Сообщений: 7,385
Записей в блоге: 2
Завершенные тесты: 1
01.04.2013, 18:09 #6
Цитата Сообщение от taras atavin Посмотреть сообщение
это раздел не ассемблера и не паскаля.
а к паскалю FLAGS какое отношение имеет? Просто я его вообще не знаю, но всегда считал, что это что-то куда выше, чем С.

Цитата Сообщение от vbloodv Посмотреть сообщение
Поясните что означают эти фразы, не на примерах, а назначение и цель, где используется
Регистр флагов - каждый (почти) бит в этом регистре имеет определенное значение.
Пример
C++
1
2
3
unsigned int a = 0xFFFFFFFE; 
unsigned int b = 3;
unsigned int c = a + b; // 0xFFFFFFFE + 3 = 1, т.е. происходит переполнение
в регистре флагов есть специальный бит (читай "флаг") который выставляется при переполнении. По нему можно узнать было ли переполнение при выполнении предыдущей операции.
Еще в регистре флагов есть флаги, отвечающие за режим работы (конкретно virtual mode) и IOPL (приоритет ввода/вывода, актуально для Virtual mode). Более подробную информацию можно найти в той же википедии, но, как уже написали выше, при программировании на С/С++ о флагах можно вообще не заботиться и даже не знать, что они существуют.

Добавлено через 3 минуты
Цитата Сообщение от vbloodv Посмотреть сообщение
прописывайте относительные смещения
Это вообще что-то странное. Если я правильно понял, то имеется ввиду относительное (относительно текущей операции) смещение переходов. Это делает программу переносимой, т.е. она может быть загружена в любую область памяти. Но компилятор сам это делает (там где надо, там где не надо не делает ).

Добавлено через 37 секунд
Цитата Сообщение от vbloodv Посмотреть сообщение
сбрасывайте регисты флагов.
с балкона?
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
02.04.2013, 00:39  [ТС] #7
Цитата Сообщение от taras atavin Посмотреть сообщение
регистры флагов даже к высокому уровню вообще не относятся, тем более к плюсам, это раздел не ассемблера и не паскаля.
Про какой высокий уровень идет?
Кликните здесь для просмотра всего текста
Вот собственно сама виновница моего вопроса чтобы быстро найти то что нужно ctrl+f = L"Только хардкор!" многие моменты остаются непонятными такие как и откуда действительно стоит скидывать регистры флагов
0
02.04.2013, 00:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2013, 00:39
Привет! Вот еще темы с ответами:

Что значит ->? - C++
Наткнулся на непонятное место в непонятном коде. Оно показалось мне особенно непонятным, загуглить не получилось. Что значит: new...

что значит ? - C++
что обозначает ? total += Добавлено через 2 минуты вот програма #include <stdio.h> #include <locale.h> #include <conio.h> ...

Что значит string s; - C++
string s; это определение строки? какая для неё нужна библиотека? для чего нужны эти библиотеки: #include<stdlib.h> ...

Что значит 10e1 - C++
Здравствуйте, не подскажите что значит например 10e1, и вообще все числа с e, попробывал 10e1 = 100, это что-то типа степени? Заранее...


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

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

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