выввести символ строки

Тема в разделе "WASM.BEGINNERS", создана пользователем maestro-ant, 15 авг 2006.

  1. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Дарова. Несколько дней изучаю АСМ (fasm).

    Такой вопрос:
    есть переменная variable1 = 'abc' нужно в переменную variable2 загнать к примеру второй символ (b).

    Помогите примером в fasm!!!
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Код (Text):
    1. variable1 dd 'abc'
    2. ...
    3. mov  eax,[variable1]
    4. shr  eax,8
    5. and eax,0xFF
    6. mov  [variable2],eax
     
  3. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Спасибо за ответ работает!!! Но хотелось бы понять пример... почему 8 и что это 0xFF?
    Если не затруднит разьясни!
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Код (Text):
    1. variable1 dd 'abc'      ; это то же самое, что db 61h,62h,63h
    2. ...
    3. mov  eax,[variable1]    ; eax = 636261h
    4. shr  eax,8              ; eax = 006362h
    5. and eax,0xFF            ; eax = 000062h
    6. mov  [variable2],eax
    почему 8? потому что в байте 8 бит. а shr сдвигает значение eax на 8 бит вправо.
    почему 0xFF? читай описания команд, а лучше найди книгу по ассемблеру и почитай главу по двоичной арифметике а также булевой алгебре :)
     
  5. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Спасибо IceStudent.