Magic Team

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Magic Team » Программирование » Pascal и Carry Flag


Pascal и Carry Flag

Сообщений 1 страница 3 из 3

1

Как известно, в Паскале 6 логических операторов: not, and, or, xor, shl, shr. В асме 6502 есть ещё
две: rol, ror (roll left/right): циклический сдвиг через флаг Carry [это мнемоника ассеблера NES - может на Асме под интел какие-то другие операторы(по-моему RCL, RCR)]. Так вот, если в коде, скажем, распаковки встречаются эти две команды. А в операторах Паскаля их нет (наверное, потому что тут задействован флаг Carry). Тогда как же писать распаковщик?
Аналогично и с условием BCC: Branch if Carry Clear. Если это условие встречается в коде как проверить флаг уже в своей программе на языке высокого уровня?
Неужели только в инлайне? Это получается новый язык придётся выучить! Очень не хочется...

0

2

Я с таким сталкивался, написал процедурку =)
Procedure ROL(Var A: Byte; Var CarryFlag: Boolean);
Var B: Boolean;
begin
B := CarryFlag;
CarryFlag := Boolean(A shr 7);
A := A shl 1;
A := A or Byte(B);
end;

0

3

О! Зашибись =) тут и BCC тоже снимается =)

0


Вы здесь » Magic Team » Программирование » Pascal и Carry Flag