Цитата Сообщение от breeze Посмотреть сообщение
Цитата Сообщение от TomCaT
…мнемоника путает.
Честно скажу, сколько пишу под Z80 (а это больше 20 лет) никогда не возникало путаницы, сразу запомнил что это безусловный переход на HL. А вот что действительно периодически заставляет заглядывать в «методичку», так это какие команды влияют на какие флаги
Да я-то тоже без проблем воспринимаю запись, мнемоника может путать в принципе. Опять же, путает по большей части благодаря другим процессорам с более перегруженными командами, которые могут и адрес перехода брать из памяти по адресу, который уже в регистре (а то и по адресу, вычисляемому как целое уравнение с регистрами ).
Типа JP [BX] на IBM-процессорах ведь будет переходить не к командам по адресу в BX, а к команадам по адресу, лежащему по адресу, который хранится в BX. Адрес в памяти. И соответсвенно, JP BX - дает переход на команды по адресу из BX.
А раз, опять же, таких команд, которые берут адреса по адресу не было в принципе во время оно, то вопроса, как правильно, JP (HL) или JP HL - не возникало. Визуально запись (HL) была привычнее, вот и прижилась. Хотя тогда честнее было бы писать все команды JP со скобками, JP (#0000), JP (METKA1).
А путаться негде, так как:
JP (HL) не несет неоднозначности, т.к. нет таких возможностей одной командой пересылать два байта, адресуемые не прямо адресом, а содержимым регистра - (HL) во всех командах означает только один байт по адресу в HL.
JP HL, если бы было так принято, тем более вряд ли бы смущало двойным смыслом, потому что переход все равно будет в память (хоть HL и без скобок), естественно по адресу из регистра, во всяком случае ассемблеры не любят меток HL, DE, BC... и спутать с меткой тоже не удастся.