Есть ли способ изменить каждый флаг вручную? Или вам нужно использовать команду с результатом, который, как вы знаете, изменит их?смена флажков вручную сборка 8086
В основном я работаю с командой RCL
, и я не хочу, чтобы получить 1 в начале так я хочу, чтобы изменить CF в 0, и я знаю, что я могу использовать такие команды, как:
mov al, 0
shl al, 1
Но я хочу знать, есть ли другой способ сделать это, без использования другого результата команды.
А также я хочу знать, способ, которым вы меня научите, может фактически изменить все флаги, а не только CF, OF, ZF и т. Д.
Возможно, sahf/popf? – Leeor
Да, вы правы! Большое спасибо! вы очень помогли мне – Argaman
Carry имеет специальные инструкции (в ответ), но если вам повезет, иногда вы можете просто изменить порядок своего кода, например, если вам удастся сделать некоторые и/или/xor раньше rcr, это сделало бы CF = 0 тоже. Часть сборки «игра в гольф» заключается в том, чтобы заказать свою инструкцию таким образом, чтобы даже побочные продукты были повторно использованы - когда это возможно. Но такой код сложнее читать и понимать, поэтому 'clc' идеально подходит для вас. Если вам нужно изменить флаг (RCL - это действительная потребность), то очень вероятно, что у процессора есть какой-то способ, команда, установленная в целом, прекрасно работает вместе (хотя иногда это не очевидно). – Ped7g