как обратиться к переменным заданным в си из asm?

Тема в разделе "LANGS.C", создана пользователем amisd, 16 ноя 2007.

  1. amisd

    amisd New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2007
    Сообщения:
    17
    доброго времени суток.
    как обратиться из ассемблерной вставки к переменным заданным в сишном коде? и какой тип в asm имеют char,int,double и т.д.:? мне нужно обратиться к массиву char.
     
  2. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    char - byte
    short int - word
    long int - dword
    обращение - например так:
    mov REG, [array + (e)bx*size of array ]
    Если код в виде функции в отдельном файле, все сишные метки начинаютсмя с подчёркивания.
     
  3. amisd

    amisd New Member

    Публикаций:
    0
    Регистрация:
    16 сен 2007
    Сообщения:
    17
    Vov4ick
    мм, к инт я так обращаюсь:
    ----СИ-------
    int a[100],b;
    ----Asm------
    mov eax,a[4]
    mov b,eax ~ b=a[2]
    --------------
    в какой регистр помещать однобайтовые, тобиш char:?
     
  4. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    amisd

    В однобайтовые регистры :) AH, AL, BH, BL, CH, CL, DH, DL. Они являются старшими-младшими байтами регистров AX, BX, CX и DX соответственно (ну а эти, в свою очередь, -- младшими словами EAX--EDX).