Size: a a a

Ассемблер

2020 December 23

A

Aleksandr in Ассемблер
он у отрицательных
источник

DR

Dima Richev in Ассемблер
А что тогда?
источник

A

Aleksandr in Ассемблер
просто числа в бинарной системе счисления
источник

A

Aleksandr in Ассемблер
вроде бы, иногда используют термин "прямой код"
источник

A

Aleksandr in Ассемблер
А, вру, это не про него
источник

ST

Saenro T in Ассемблер
Dima Richev
Почему нет?
источник

DR

Dima Richev in Ассемблер
Понял
источник

АМ

Алексей Маринченко... in Ассемблер
Dima Bat
ты куда комп дел?
Никуда. Компа у меня и не было, с ноутбуком все в порядке, а что?
источник

DB

Dima Bat in Ассемблер
Алексей Маринченко
Никуда. Компа у меня и не было, с ноутбуком все в порядке, а что?
не понимаю зачем тогда на тел код писать, в автобусе кодить учишься?
источник

АМ

Алексей Маринченко... in Ассемблер
Dima Bat
не понимаю зачем тогда на тел код писать, в автобусе кодить учишься?
Нет, но бывает что не дома, и при этом нечего делать. Вариантов два: играть или кодить. Для меня. Хочу чтобы оба были ;)
источник

DR

Dima Richev in Ассемблер
мдееее
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Eugene Krasnikov (ᴊɪɴ x)
Вот вы говорите, грабить корованы...
flat assembler  version 1.73.25  (1048576 kilobytes memory)
error: code cannot be generated.
Больше всего от этот выколбашивает!
Слишком запутанными макросы ему показались, по ходу, ля!
попробуй увеличить память для компиляции, там по умолчанию вооде 64к стоит
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
попробуй увеличить память для компиляции, там по умолчанию вооде 64к стоит
1 Гб написано ж :)
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
64к было где-то в прошлом веке :)
источник

DR

Dima Richev in Ассемблер
Что там у тебя за код такой
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Вложенные макросы. В них проверки if/match.
Генератор байт-кода, короче.
источник

DR

Dima Richev in Ассемблер
Странно
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Ну я уже не первый раз такое вижу.
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Меня бесит в fasm его эта многоэтапность.
Сначала обрабатываются fix (может, ещё что-то), потому equ, define, match, macro, а потом уже код.
Т.е. нельзя сделать вот так:
if my_const = 1
 include 'const.inc'
end if
Потому что include будет включен на более раннем этапе.

Ни в одном другом асме такой шняги нет. По крайней мере, в NASM, MASM, TASM.
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
И соответственно, если у меня макрос меняет какую-то константу, допустим:

macro set n
{
 a equ n*2;
}

x = 1

if x = 1
 set 5
else if x = 2
 set 3
else
 set 0
end if

mov ax,a

То что запишется в ax?
10? Хер там, ноль! Потому что код превратится в следующий:

x = 1

if x = 1
 a equ 10
else if x = 2
 a equ 6
else
 a equ 0
end if

mov ax,a

Т.е. макросы раскроются ДО обработки if'ов.
А что буде дальше?

Дальше будет так:

  a equ 10
 a equ 6
 a equ 0

x = 1

if x = 1
else if x = 2
else
end if

mov ax,a

Потому что equ обрабатывается раньше if'ов и кода.
Ну и в итоге

mov ax,a, т.е. 0.

И вот это надо всё учитывать при разработке макросов.
Вместо if использовать match, который может только строгое соответствие принять, нельзя проверить, что x <> 5 или x > 5, только x = 5, например. И то если 5 задано числом, а не x = 2+3.
источник