информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 ФБР нашла русский след в атаках... 
 Массовый взлом SharePoint 
 Microsoft Authenticator прекращает... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Значит баг 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
<"чистая" ссылка>
>Правило в С: локальное имя имеет приоритет над глобальным.
Вот пусть по правилам С различает регистр.

Ну да ладно, это уже офф пошел.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach