информационная безопасность
без паники и всерьез
 подробно о проекте
Атака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Chainalysis раскрыла взлом собственных... 
 SMS of Death для Android 
 Исследователи Anthropic продемонстрировали... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Народ ! Баг, не баг, или дефайн ? 19.11.01 15:35  Число просмотров: 1061
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
ассемблер по умолчанию не различает верхний и нижний регистры
<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





Рейтинг@Mail.ru


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