Несколько вопросов по FASM'у.

Assembler programming questions
  • Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Demonikss
    Все очень просто. peremen это адрес памяти. Если мы хотим загрузить этот адрес в регистр, то пишем mov reg, peremen
    если нужно загрузить значение по этому адресу, используем скобки mov reg, [peremen]
    как будет правильно записать команду mov byte ptr es:[di], cl
    mov [di], cl :)
    es - сегмент по умолчанию для di, поэтому префикс es: лишний.
    Fasm знает, что размер регистра cl 1 байт, поэтому указывать размер операнда не обязательно.
  • Ну, насчёт "es - сегмент по умолчанию для di, поэтому префикс es: лишний." Serge несколько погорячился. Сегменты в fasm указываются внутри квадратных скобок: mov [es:di],cl.
    Сделаем мир лучше!
  • CleverMouse
    Интел так пишет. bx, si - ds. di - es. bp, sp - ss. Наверное опять обманули :( .

    И правда, обманули. Не надо доверять новым мануалам.
  • В строковых инструкциях везде es:di, в остальных di не влияет на сегмент. sp вообще не адресуется, у bp/ebp/esp умолчальный сегмент ss, да.
    Сделаем мир лучше!
  • Demonikss wrote:Уважаемые разработчики, у меня есть к вам вопрос по ассемблеру Fasm. Начал изучать его и столкнулся с небольшими затруднениями по поводу синтаксиса. Почти все примеры для разбора которые удается найти в интернете, предназначены для tasm/masm...
    Цитата:
    Используется Intel-синтаксис записи инструкций.

    Единственное существенное отличие от формата, принятого в других ассемблерах (MASM, TASM в режиме совместимости с MASM) — значение ячейки памяти всегда записывается как [label_name], а просто label_name означает адрес (то есть порядковый номер) ячейки. Это позволяет обходиться без ключевого слова offset. Также в fasm при переопределении размера операнда вместо byte ptr пишется просто byte, вместо word ptr — word и т. д. Не позволяется использовать несколько квадратных скобок в одном операнде, таким образом вместо [bx][si] необходимо писать [bx+si]. Эти изменения синтаксиса привели к более унифицированному и лёгкому для чтения коду.

    http://ru.wikipedia.org/wiki/Fasm
    Demonikss wrote:Почти все примеры для разбора которые удается найти в интернете
    На всякий случай:
    http://asmworld.ru
  • Serge wrote:И правда, обманули. Не надо доверять новым мануалам.
    Даже если бы там это было написано, поведение проца не могло так кардинально измениться. А то что в руководствах Intel встречаются ошибки, так это да. Раздражает, когда не можешь на 100% довериться докам даже такой солидной фирмы.
  • У кого-то есть макрос для рисования незакрашенного прямоугольника ?
    Из хаоса в космос
  • Who is online

    Users browsing this forum: No registered users and 0 guests