Похоже, масм неправильно считает размер джампов вперед. Например вот такой код: Код (Text): label1: jmp label2 label2: codesize equ $ - offset label1 %echo @CatStr(%codesize) ; вместо 2 выдает 10 С коллами и условными джампами тоже самое - размер неправильный. Хотя, если делать джамп назад, то все ок. Например: Код (Text): label1: jmp label1 codesize equ $ - offset label1 %echo @CatStr(%codesize) ; выдает 2 У меня стоит масм 6.14.8444 Может версия не та?
Насколько я помню, MASM не может высчитывать расстояние "наперёд", поэтому ставит его по-максимуму. В случае джампа назад, он уже знает целевую метку и может высчитать расстояние до неё и поставить короткий опкод. За подробностями — поиск по форуму.
IMHO для таких целей лучше fasm использовать. Он и скомпилирует во что угодно, хоть в jpeg, да и с вычислением размера джампов проблем не имеет.