ну дык
старшая половина 32битного регистра
лежит в 8битных регистрах H и L
в H за одно и знак в 7-бите
младшая половина 32битного регистра
лежит в новом 16 битном регистре HLL ну или LHL
все команды работающие с 32 бит регами
оперируют с HL и LHL как с одним регистром EHL
все старые команды z80
могут без проблем брать HL (старшую половину да еще со знаком)
и отбрасывать дробную часть LHL
или же вообще брать один H и работать по 8-ми битному
тоесть при переходе к работе с 8\16 битными числами старыми командами z80 из 32 битного режима
у нас НЕ ОСТАЮТСЯ ОГРЫЗКИ (младшие байты) от цифр
у нас остается числа деленные на 256 и со знаком
(другими словами просто со сниженной точностью)
мы можем работать с ними старыми командами
а потом снова новыми 32битными
то есть
add ede,ebc
add $01230000,$11111111
ede= $12341111
а тут старый 16 битный
add hl,de
add $0001,$1234
de = $1235 (старшая значимая половина со знаком доступна старым командам)
- - - Добавлено - - -
о боже
теперь будем знать
а зачем нужна логическая операция?
выдавать 1 только
если первый операнд 1 а второй 0
с ходу не вижу применения






Ответить с цитированием