|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2008, 12:58 | #1 |
Регистрация: 30.06.2008
Сообщений: 5
|
не нашел тему, но раз здесь обсуждают самык начала то у меня такой вопрос, народ помогите разобраться, никак просто понять не могу, почему например в одном случае используется регистр AX, а в другом данные записываются уже в AL, то есть возникает закономерный вопрос почему используется именно этот регистр в одном случае, а в другом только младший байт
// Если не нашли тему, значит создавайте свою, незачем задавать вопрос в первой попавшейся. Последний раз редактировалось B_N; 30.06.2008 в 13:24. |
30.06.2008, 13:24 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Уточните, о чём именно речь. Ассемблер предоставляет достаточно свободы в использовании регистров. Можно просто "захотеть" написать так, а не иначе без особых причин, или верхняя "половинка" может использоваться позднее, или могут приниматься в расчёт факторы быстродействия - с регистрами размером в слово процессор справляется быстрее.
|
30.06.2008, 14:50 | #3 |
Регистрация: 30.06.2008
Сообщений: 5
|
извините, я искал тему типа начала программирования или что то в этом духе, но меня выкинуло сюда, по вопросу конкретно, я только начал читать ассемблер, в книге вроде написано что как и когда, но некоторые моменты не раскрываются, а именно примерно разъясните если можно вот такие моменты, AX - регистр через который в основном происходит копирование данных, короче аккумулятор, это я понял, но почему в некоторых примерах указывается AX а в некоторых AL и прсто скажите если допустим я данные, которые в примере помещают в младшую половину я помещю полностью в AX ничего страшного не случится?
|
30.06.2008, 15:12 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
размер AL - 1 байт, AX - 2 байта. если данные размеров 1 байт то используется AL, если 2 байта, то используется AX.
|
30.06.2008, 21:09 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
полностью согласен с B_N и rpy3uH.
ну и я вставлю свои "пять копеек": есть двух байтовых регистр (его ещё называют аккумулятор), к его содержимому можно обратиться через имя AX. А можно обратиться к старшему байту этого же регистра через имя AH или к младшему байту — через имя AL |
01.07.2008, 05:47 | #6 |
Регистрация: 30.06.2008
Сообщений: 5
|
спасибо!!! тогда не могли бы вы разъяснить начинающему вот такой вопрос, а зачем тогда париться, высчитывать сколько байт займут те или иные данные, тогда ведь проще просто работать всегда через регистр ЕАХ допустим и не париться.
|
01.07.2008, 08:59 | #7 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
глупый вопрос! если хочешь, то работай с EAX, кто тебе запрещает? почитай немного, напиши несколько программ и вопросы отпадут сами по себе.
|
01.07.2008, 10:12 | #8 |
Регистрация: 30.06.2008
Сообщений: 5
|
хорошо, я постараюсь последовать Вашему совету, но в некоторых случаях все же хотелось бы проконсультироваться
|
01.07.2008, 10:24 | #9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
А кто же против! Я выше писал, что в ассемблере много свободы в использовании средств машины. 32 бита данных могут быть просто числом, тогда и работать с ними нужно целиком, а могут быть, скажем, структурой, содержащей координаты точки, тогда "гонять" по памяти их выгоднее целым куском, а обрабатывать и пользоваться - только "половинками"...
|
01.07.2008, 11:12 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Например: Код:
Ну и иногда ради оптимизации еще частями регистров пользуются...
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, где ошибка в использовании ControlSource... | Tooree | Microsoft Office Access | 2 | 18.08.2008 20:46 |
Виснет приложение при использовании winsock | TR1PL3X | Работа с сетью в Delphi | 1 | 31.03.2008 09:14 |