Память

Discussion in 'WASM.BEGINNERS' started by Linkey, Jan 24, 2010.

  1. Linkey

    Linkey Александр

    Blog Posts:
    0
    Joined:
    Aug 15, 2009
    Messages:
    11
    Location:
    Челябинск
    Как сделать чтобы в стек или регистр копировался не адрес памяти, а число которое там храниться? И пример если можно.
    Допустим у меня есть
    mes db "5"
    Как записать в EAX число 5
    mov eax,mes Не работает
    а
    mov eax, offset mes Кидает адрес
    а
    Мне нужно значение СПС)))
     
  2. InsidE

    InsidE Member

    Blog Posts:
    0
    Joined:
    May 28, 2009
    Messages:
    357
    Location:
    Over the hills and far away...
    мда,....а вы не подумали что "5" это не 5?
     
  3. cornolio

    cornolio New Member

    Blog Posts:
    0
    Joined:
    Apr 16, 2009
    Messages:
    50
    у тебя переменная mes рамером в 8 бит, а регистр еах 32 бита потому и не работает
    задай так mes dd 5
    и пиши mov eax,mes
     
  4. treekool

    treekool Member

    Blog Posts:
    0
    Joined:
    Jul 10, 2008
    Messages:
    88
    mov eax, [mes]
    попробуй так.
    или
    mov eax,offset [mes]
     
  5. treekool

    treekool Member

    Blog Posts:
    0
    Joined:
    Jul 10, 2008
    Messages:
    88
    вообще посматри сюда http://www.wasm.ru/article.php?article=1022001#p1_12
     
  6. defaultplayer

    defaultplayer New Member

    Blog Posts:
    0
    Joined:
    Jun 18, 2006
    Messages:
    214
    все верно, только лучше тогда вот так

    Code (Text):
    1. .data
    2.  
    3. mes db 5
    4.  
    5. .code
    6.  
    7. movzx eax, mes
     
  7. max7C4

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    1. ASCII код символа 5 = 35h, чтобы получить 5 вычти 30h
    2. если процессор позволяет, то movzx eax, mes (TASM,MASM) или movzx eax, [mes] (FASM).
    если процессор не позволяет, то xor eax, eax/mov al, mes (или [mes], для FASM)
     
  8. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    movzx eax,byte ptr cs:[mes]
    Неужели так трудно логически подумать..
     
  9. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    этот вариант очевидно бред - почувствуйте разницу между смещением и значением
     
  10. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    какое логическое соображение указало на сегментный регистр CS ???
    почему не
    movzx eax,byte ptr ds:[mes]
    или
    movzx eax,byte ptr es:[mes]
    или
    movzx eax,byte ptr [mes]
     
  11. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Отпад. Ты забыл FS еще :)
     
  12. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    намекаешь на флат модель ??? где cs=ds=es=ss
     
  13. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    Twister
    все равно предпочтение cs ничем не аргументированно
    чтение запись с префиксом cs: вызывает мысль , что
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    я бы выбрал вариант без префикса вообще - так короче
     
  15. Twister

    Twister New Member

    Blog Posts:
    0
    Joined:
    Oct 12, 2005
    Messages:
    720
    Location:
    Алматы
    Да, во Flat-модели эти дескрипторы сегментов указывают на один
    и тот же сегмент памяти.
    Но я бы, на месте ТС и Clerk'a, в данном случае, вообще бы не заморачивался с сегментными регистрами и написал бы просто
    Code (Text):
    1. movzx eax,byte ptr [mes]
    ADD: Долго было открыто окно ответа - отвлекли. Пока написал ответ, ты уже тоже тут настрочил :)
     
  16. Linkey

    Linkey Александр

    Blog Posts:
    0
    Joined:
    Aug 15, 2009
    Messages:
    11
    Location:
    Челябинск
    Спасибо! Я просто думал что при записи числа в EAX не имеет значение db or dd.
    И еще что "5" != 5 тоже знаю просто загнался маласть.
     
  17. JCronuz

    JCronuz New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2007
    Messages:
    1,240
    Location:
    Russia
    Code (Text):
    1. movzx eax,byte ptr es:ds:cs:[mes]
    :)
     
  18. JCronuz

    JCronuz New Member

    Blog Posts:
    0
    Joined:
    Sep 26, 2007
    Messages:
    1,240
    Location:
    Russia
    Code (Text):
    1. movzx eax,byte ptr es:es:es:es:es:es:es:ds:ds:ds:ds:ds:ds:ds:cs:cs:cs:cs:cs:cs:cs:[mes]
    даже так работает
     
  19. Rockphorr

    Rockphorr Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2004
    Messages:
    2,625
    Location:
    Russia
    однако ты сторонник фасма в масме скобы не нужны
    имхо это недостаток фасма необходимость скоб - стирается смысловая разница - этот топик тому пример
     
  20. InsidE

    InsidE Member

    Blog Posts:
    0
    Joined:
    May 28, 2009
    Messages:
    357
    Location:
    Over the hills and far away...
    бггг