Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |
Значит баг 19.11.01 15:43 Число просмотров: 896
Автор: PS <PS> Статус: Elderman
|
Судя по логике, это не "чистый" ассемблер, а ассемблерные вставки в С коде. Т.е. компилер "должен" сначала просмотреть имена С переменых, а уже потом делать выводы.
А компилер делает наоборот: сначала пытается применить asm синтаксис, если не получается (как в первом случае), лезет к С коду.
|
<programming>
|
Народ ! Баг, не баг, или дефайн ? 19.11.01 15:19
Автор: PS <PS> Статус: Elderman
|
#include <stdio.h>
void a( )
{
short CXA;
_asm
{
mov CXA, cx
}
}
Выход:
mov WORD PTR _CXA$[ebp], cx
void a( )
{
short CX;
_asm
{
mov CX, cx
}
}
Выход:
mov cx, cx
Это как понимать ?
|
 |
Народ ! Баг, не баг, или дефайн ? 19.11.01 15:35
Автор: ggg <ggg> Статус: Elderman
|
ассемблер по умолчанию не различает верхний и нижний регистры
|
 |  |
Значит баг 19.11.01 15:43
Автор: PS <PS> Статус: Elderman
|
Судя по логике, это не "чистый" ассемблер, а ассемблерные вставки в С коде. Т.е. компилер "должен" сначала просмотреть имена С переменых, а уже потом делать выводы.
А компилер делает наоборот: сначала пытается применить asm синтаксис, если не получается (как в первом случае), лезет к С коду.
|
 |  |  |
как раз наоборот 19.11.01 16:10
Автор: ukv Статус: Незарегистрированный пользователь
|
Правило в С: локальное имя имеет приоритет над глобальным. Если рассматривать
ассемберную вставку как блок, то вполне естественно, что локальные имена этого блока - имена регистров - скрывают внешние для этого блока имена.
|
 |  |  |  |
Если уж идти до конца... 19.11.01 16:16
Автор: PS <PS> Статус: Elderman
|
>Правило в С: локальное имя имеет приоритет над глобальным.
Вот пусть по правилам С различает регистр.
Ну да ладно, это уже офф пошел.
|
|
|