
Сообщение от
Alex_K
А все довольно просто. В инструкции все правильно сказано насчет чтения-модификации-записи. А вот в описании на процессор 1801ВМ2 очень существенный момент упустили (его нет и в техописании, которое выкладывали Вы). А этот тонкий момент состоит в том, что по записи в источник словные и байтовые команды отличаются. Команд этих всего три - MOV(B), CLR(B) и MFPS.
Провел кое-какие исследования на реале. Оказалось, что вы совершенно правы:
Код:
Сравнение времени выполнения байтовых и словных команд на CPU и PPU:
Мнемоника-1 CPU PPU Циклы Мнемоника-2 CPU PPU Циклы
------------------------------------------------------------------------------
MOV Rn,(Rn) 33.13 36 W MOVB Rn,(Rn) 40.62 52 RMW
CMP Rn,(Rn) 27.90 40 R CMPB Rn,(Rn) 27.90 40 R
BIT Rn,(Rn) 27.90 40 R BITB Rn,(Rn) 27.90 40 R
BIC Rn,(Rn) 40.62 56 RMW BICB Rn,(Rn) 40.62 52 RMW
BIS Rn,(Rn) 40.62 56 RMW BISB Rn,(Rn) 40.62 52 RMW
XOR Rn,(Rn) 40.62 56 RMW
ADD Rn,(Rn) 40.62 56 RMW
SUB Rn,(Rn) 40.62 56 RMW
CLR (Rn) 33.13 36 W CLRB (Rn) 40.62 52 RMW
COM (Rn) 40.62 56 RMW COMB (Rn) 40.62 52 RMW
INC (Rn) 40.62 56 RMW INCB (Rn) 40.62 52 RMW
DEC (Rn) 40.62 56 RMW DECB (Rn) 40.62 52 RMW
NEG (Rn) 40.62 56 RMW NEGB (Rn) 40.62 52 RMW
TST (Rn) 27.90 40 R TSTB (Rn) 27.90 40 R
ROL (Rn) 40.62 56 RMW ROLB (Rn) 40.62 52 RMW
ROR (Rn) 40.62 56 RMW RORB (Rn) 40.62 52 RMW
ASR (Rn) 40.62 56 RMW ASRB (Rn) 40.62 52 RMW
ASL (Rn) 40.62 56 RMW ASLB (Rn) 40.62 52 RMW
ADC (Rn) 40.62 56 RMW ADCB (Rn) 40.62 52 RMW
MFPS (Rn) 40.62 52 RMW
SWAB (Rn) 40.62 56 RMW
SXT (Rn) 33.13 36 W
Итого мы имеем результат - в нашем процессоре как класс отсутствуют циклы байтовой записи в память. Вместо них идут циклы RMW. Кстати, если вы заметили, цикл RMW PPU для словных и байтовых команд отличается на 4 такта из-за того, что ОЗУ PPU 8-битное, и слова записываются в два приема по 8 бит.