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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 18:07   #1
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию назначение регистров

зачем нужен регистры EAX EBX ECX EDX? Кроме слов
Цитата:
Они 32-х битные и делятся еще на две части, нижние из которых AX, BX, CD, DX - 16-ти битные, и деляется еще на два 8-ми битных регистра. Так, АХ делится на AH и AL, DX на DH и DL и т.д. Буква "Н" означает верхний регистр.

Так, AH и AL каждый по одному байту, АХ - 2 байта (или word - слово), ЕАХ - 4 байта (или dword - двойное слово).
я больше ничего не прочитал. Объясните их назначение
TotKtoNado вне форума Ответить с цитированием
Старый 10.12.2011, 18:12   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

назначение у них общее, такое же как и остальных регистров общего назначения.
f.hump вне форума Ответить с цитированием
Старый 10.12.2011, 18:14   #3
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от f.hump Посмотреть сообщение
назначение у них общее, такое же как и остальных регистров общего назначения.
всмысле общее функции одинаковы?
TotKtoNado вне форума Ответить с цитированием
Старый 10.12.2011, 18:15   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще в асме вы сами его определяете
eax,ebx,ecx,edx - просто регистры общего назначения.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.12.2011, 18:17   #5
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вообще в асме вы сами его определяете
eax,ebx,ecx,edx - просто регистры общего назначения.
кого определяете? eax,ebx,ecx,edx без разницы какой регистр пишешь должно же какой то различие между ними
TotKtoNado вне форума Ответить с цитированием
Старый 10.12.2011, 18:18   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нету различий и не должно быть, регистр это вроде переменной.
Цитата:
кого определяете?
смысл регистра.
ибо регистр общего назначения, используется так как надо функции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 10.12.2011 в 18:20.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.12.2011, 18:49   #7
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

Цитата:
Сообщение от TotKtoNado Посмотреть сообщение
зачем нужен регистры EAX EBX ECX EDX? Объясните их назначение
они нужны для временного хранения каких либо данных, чисел, указателей и прочего
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 10.12.2011, 19:51   #8
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
- регистр-аккумулятор (Accumulator register) EAX/AX/AH/AL применяется для хранения промежуточных данных, в некоторых командах его использование обязательно;

- базовый регистр (Base register) EBX/BX/BH/BL применяется для хранения базового адреса некоторого объекта в памяти;

- регистр-счетчик (Count register) ECX/CX/CH/CL применяется в командах, производящих некоторые повторяющиеся действия. Использование регистра-счетчика зачастую скрыто в алгоритме работы той или иной команды. Например, команда организации цикла LOOP помимо передачи управления анализирует и уменьшает на единицу значение регистра ЕСХ/СХ;

- регистр данных (Data register) EDX/DX/DH/DL, так же как и регистр ЕАХ/АХ/АН/AL, хранит промежуточные данные (в некоторых командах его явное использование обязательно, в других он используется неявно).
из книги Юрова - "ASSEMBLER учебник для вузов". Некоторые моменты в принципе уже неактуальны (про EBX например).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 11.12.2011, 01:17   #9
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

в целом, в 32-х битном режиме 8 регистров общего назначения (EAX, EBX, ECX, EDX, EDI, ESI, ESP, EBP), которые могут быть использованы для чего пожелаете. Но в завистимости от инструкции или контекста эти регистры используются для следующих целей

EAX - акумулятор
EBX - указатель на данные
ECX - счетчик для циклов и строковых операций
EDX - указатель на данные
EDI - указатель для строковых операций
ESI - указатель для строковых операций
ESP - указатель стека
EBP - указатель фрейма
f.hump вне форума Ответить с цитированием
Старый 12.12.2011, 05:17   #10
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Еще как актуальны...
1) команда XLAT получает указатель на таблицу только через EBX
2) команды MUL, DIV, IDIV, CBW, CWD, CDQ работают только с EAX, EDX исключение только IMUL
3) команды STOS, LODS, MOVS, SCAS, CMPS работают исключительно с ESI, EDI, EAX
4) командам JECXZ, LOOPZ, LOOPNZ, LOOP и префиксам REP, REPE, REPNE нужен только ECX
5) команды CALL, RET, PUSH, POP используют только ESP
и т.д. другое дело, что в ассемблере очень многое можно сделать через ...
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование регистров в Делфи DimitarSergius Помощь студентам 16 30.08.2011 16:53
Содержимое регистров maxwelldream Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 15.01.2011 09:28
Снятие блокировки регистров. ТриСемёрки Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 04.10.2010 14:06
Пары регистров в Delphi Jupiter Общие вопросы Delphi 4 13.08.2008 17:29
много регистров nntpaha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.12.2007 19:01