"... , но я не знаю, как установить бит в позиции ..."
Понятный. Есть множество инструкций.
Первый, SHR
(и SHL
игнорировали для обсуждения этого вопроса), который вы будете использовать, будет поиграться флаг переноса, чтобы содержать немного на краю (регистра источника), которые сдвинуты.
Существует еще одна инструкция, RCL
(и RCR
, так же игнорируется для обсуждения этого вопроса), который поставит бит переноса в бит на другом краю (целевой регистр), который вы «сдвиг», так сказать
Выполняйте это восемь раз подряд, и у вас будет выполнен «обратный o-matic».
Вот две страницы, которые описывают эти две команды, в том числе маленькой картинке ...
Penguin Explains SHR instruction
Penguin Explains RCL instruction
Эй, это легко, поэтому, свободный код, только потому, что я чувствую хорошо сегодня ...
Mov AL,Some_Number ;Define this somewhere
Sub AH,AH ;Not really needed, placed here to help newcomers understand
SHR AL,1 ;Get the bottom bit (bit #0) from AL
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #1
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #2
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #3
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #4
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #5
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #6
RCL AH,1 ;Put it into the top bit of AH
SHR AL,1 ;Now get bit #7
RCL AH,1 ;Put it into the top bit of AH
Mov Reverse_Pattern,AH ;The pattern is now exactly backwards
Испытано его и дайте нам знать, если это работает
Не понимаю. Можете ли вы привести пример? – ales