Size: a a a

2021 April 16

MK

Matvey Korobieinikov in pro.asm
short int flags;                                                                                         __asm {
 PUSHF
 POP AX
 STC
 PUSHF
 POP AX
 mov flags, AX
}
источник

MK

Matvey Korobieinikov in pro.asm
Так норм?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
работает?
источник

MK

Matvey Korobieinikov in pro.asm
это вывод флагов, с сегментными регистрами не могу понять
источник

n

nano in pro.asm
Всем привет. Делал как-то два года назад модификацию временной метки на fasm.
Мне постоянно не нравилось ее ограничение с ближайшей ступени, в связи с чем в каждой отдельной функции приходилось делать уникальные метки, что не оч удобно. Вообщем решил поделиться тут для fasm-щиков. Вдруг кому тоже будет полезна.

Пример:

@@:nop  ; <---.
@@:nop  ; <--.|
@@:nop  ; <-.||
       ;   |||
jmp @r  ; --'||
jmp @r 1; ---'|
jmp @r 2; ----'

В файле сам макрос с примером на win32 бит. Разобраться не трудно, если будет желание можно перенести и на fasmg
#fasm #macro
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
а чем это не подходит?

proc func1
     ...
.metka:
     ...
endp

proc func2
   ...
.metka:
   ...
endp

я про создание уникальных меток
источник

n

nano in pro.asm
Имена нужно все-равно создавать
источник

n

nano in pro.asm
И не всегда все через proc пишут
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
ты его уже создаешь когда обзываешь процедуру. имя процедуры является глобальной меткой для всех локальных. в моем примере создаются две разных уникальных метки func1.metka и func2.metka
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
да все равно.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
proc1:
   ....
.metka:
   ...
ret

proc2:
   ...
.metka:
   ...
ret
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in pro.asm
аналогия та же
источник

n

nano in pro.asm
Кому как. Этот ответ можно подставить и против оригинальных меток. Поэтому кому как удобно. Мне проще и быстрей через безымянку
источник

n

nano in pro.asm
И да функции могут быть разные по длине, что все-равно заставит тебя добавить локальную метку внутри процедуры, что в итоге без оригинальности выглядит примерно так
proc.metka1;
proc.metka2;
proc.metka3;
proc.metka4;
proc.metka5;

+ название процедуры тоже разное и так себе будет в коде выглядить подобные имена.

Но опять же кому как.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Мне нравится вариант GAS, когда цифровые метки являются временными.
Я бы сделал так (и наверное, сделаю): @+цифра будут временными метками.
И при их использовании будет осуществляться прыжок на последнюю метку с этой цифрой.
В пределах глобальной метки.
Например:
    jmp @2
   mov cx,100
@1: stosb
@2: inc ax
   loop @1
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Или даже так:
  jmp 2
 mov cx,100
1 stosb
2 inc ax
 loop 1
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
То же самое можно сделать с заглавными буквами:
  jmp A
 mov cx,100
A stosb
B inc ax
 loop B
источник

n

nano in pro.asm
Круто, поделись как сделаешь👍
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
А нет, последняя не получится... ведь ещё вперёд прыгать надо. Тогда так:
  jmp 2f
 mov cx,100
1 stosb
2 inc ax
 loop 1b
Или без доп. букв, если метка одна внутри глобальной метки.
источник

EK

Eugene Krasnikov (ᴊɪ... in pro.asm
Ок. Если не забуду про это всё :)
Я вообще, не знал, что можно структуры использовать как макросы, возвращающие значение точкой.
Надо будет почитать про это :)
источник