Цитата Сообщение от CityAceE Посмотреть сообщение
А какие это может дать преимущества? Как я себе это понимаю, когда каждый флаг в отдельной переменной, его можно быстрее устанавливать/сбрасывать. Всего пара команд i8080 требует полного флагового регистра, и для этих команд не сильного дорого запаковать все флаги в один байт и производить обратную процедуру. А все остальные команды расставляют флаги по отдельности.
Я не знаю, питона, поэтому пример приведу на Си:

Вот, например, твой вариант RLCA:

Код:
    reg_a = reg_a << 1
    flag_c = bool(reg_a & 0x100)
    reg_a = (reg_a | flag_c) & 0xff
    if not i8080:
        flag_h = False
    fflag_n(False)
    fflag_3(bool(reg_a & 0b00001000))
    fflag_5(bool(reg_a & 0b00100000))
И как можно оптимально это эмулировать (без учета универсальности Z80/8080):

Код:
	reg_A = (reg_A << 1) | (reg_A >> 7);			
	reg_F = (reg_A & CONST_53C) | (reg_F & CONST_SZPH);