Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Обращение к байту в памяти


Автор: забыл:) 10.5.2005, 10:27
Компилятор ругается на следующий код:
Код

      memory01 dw  3000
      memory02 db 1
      GetSn    dw 1             ;нельзя заменить на "GetSn db 1"

      mov ax,byte ptr [memory01+GetSn]
      mov [0fffh+(memory02*506)],byte ptr ax


Как сделать по другому (чтоб не ругался smile ) smile

Автор: leshiyNEXT 11.5.2005, 12:40
Сделай так:
Код

memory02_and_GetSn dw 257

или что-то в этом роде.

Автор: забыл:) 11.5.2005, 19:38
Цитата(leshiyNEXT @ 11.5.2005, 12:40)
memory02_and_GetSn dw 257


Я бы давно так сделал да нельзя, т.к.
memory01 - постаянный, а GetSN - будет менятся (по ходу работы программы).

Автор: leshiyNEXT 11.5.2005, 23:54
А так почему не пойдет:
Код

memory02 dw 1
GetSn dw 1

?
Слова в памяти в обратно порядке хранятся, так что в первом байте по смещению offset GetSn будет еденица!

Автор: Akina 12.5.2005, 08:09
Цитата
mov ax,byte ptr [memory01+GetSn]

Силен... в AX пихать байт и при этом возмущаться на матюги компилятора...

и потом, всегда можно сделать типа так:
Код

GetSn label word
      db 1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)