
Сообщение от
b2m
Там чёрт ногу сломит при дизассемблировании. Я попытался, но до конца не довёл. Очень часто используются прыжки в середину команды. Изврат, вобщем.
Приложенный архив хоть и даёт исходный бинарник при компиляции, но при релокации работать не будет, это точно.
Это так, чтобы посмотреть, насколько там всё запущено.
Вложение 78956
- - - Добавлено - - -
Понравился сниппет:
Код:
RLC
ADD L
MOV L,A
ADC H
SUB L
MOV H,A
Вроде бы работает как для положительных, так и для отрицательных байт.
класная находка, спасибо! Кстати целиком там такой кусочек кода:
Код:
...
LXI H,L0495
L1B41:
...
RLC
ADD L
MOV L,A
ADC H
SUB L
MOV H,A
...
Он занимает 44 такта. В том контексте пара HL может иметь произвольное значение так как в программе есть JMP L1B41 из другого места, но если нам нужно прибавить к INT16 константе, то код можно немного ускорить до 40 тактов так:
Код:
...
RLC
ADI LOW_BYTE
MOV L,A
ACI HI_BYTE
SUB L
MOV H,A
...
Где LOW_BYTE это младший байт INT16 константы, а HI_BYTE это старший байт INT16 константы.
Надеюсь кому-то будет полезно. Извиняюсь что не по теме топика.