а есть ли внятное описание?
смотрю списки недокументируемых команд, и ничего нового.
Вид для печати
а есть ли внятное описание?
смотрю списки недокументируемых команд, и ничего нового.
Shift Left Logical
как бы так :)
меня это смутило:
http://quasar.cpcscene.com/doku.php?id=iassem:calculs
CarrY<-Reg<-0
и SRL обратное.
и дальше:
http://www.z80.info/z80_faq.htm#Q-20
надо дебаггером гонять и смотреть на результат, короче.Цитата:
Q-32: What does SLL do?
Thomas Scherrer:
There are no SLL opcode in the Zilog official list, but
The block CB 30 - CB 37 (missing from the official list)
These instructions, usually denoted by the mnemonic SLL, Shift Left Logical, shift left the operand
and make bit 0 always one.
Try some of the official mnemonics below:
SLA = SHIFT LEFT ARITHMETIC register
SRA = SHIFT RIGHT ARITHMETIC register
SRL = SHIFT RIGHT LOGICAL register
Так она вообще зачем нужна, эта инструкция? Когда есть SLA, которая я чет не очень понимаю чем от SLL в данном случае будет отличаться.
Ты на логическом уровне представляешь что делает Shift Left Logical? И что делает Shift Left Arithmetic?
Значением младшего разряда после сдвига они отличаются. У SLA там будет 0, у SLL 1.
SLL не используй. ТЧК. Он работает неправильно (не так, как я на картинке показал). Он работает как полный аналог SLA, только SLA заносит 0, а SLL 1 в младший бит, Blade правильно написал.
Я даже не знаю, зачем может понадобиться такой сдвиг, честно говоря. Он не логический и не арифметический, ну баг и есть баг.
В Анриле оно называется SLI (Shift Left and Increment).
Shadow Maker, кстати да в младший бит заносится 1
goblinish, ты как будто впервые программу пишешь :)
ссылку не сохранил, но гляньте на скриншот. еще больше схема позабавит.
На схеме SLS = SLL = SLI в Z80, вроде правильно всё показано.
В книге "Как написать игру на Ассемблере" в главе 5 всё понятно разрисовано, я туда всегда заглядываю. Но SLL там нету.
загляни туда ради фана:
http://www.z80.info/z80undoc3.txt
еще хуже, чем было.
ну я не знаю как еще внятнее описать действие этой комманды
Цитата:
1.2) CB Prefix [1]
An opcode with a CBh prefix is a rotate, shift or bit test/set/reset
instruction. There are a few instructions missing from the official list,
which are usually denoted with SLL (Shift Logical Left). It works like
SLA, for one exception: it sets bit 0 (SLA resets it).
CB30 SLL B
CB31 SLL C
CB32 SLL D
CB33 SLL E
CB34 SLL H
CB35 SLL L
CB36 SLL (HL)
CB37 SLL A
goblinish, sp работает только с регистровыми парами так что не дождешься :)
goblinish, для чего она нужна? :) есть весьма элегантные конструцкии
а чтобудет 5 октября?