Я использую easy68k, и у меня есть строка, и я хочу добавить число к каждой цифре, чтобы она оказалась другой строкой. Есть ли команда, которая позволяет мне настраивать конкретные байты в строке?68k Как добавить/вычесть отдельные байты?
, например:
ORG $1000
START:
MOVE.B str,D0
ADD.B #$20,D0
MOVE.B D0,str
str DC.B 'ASDF'
END START
Я пытаюсь сделать «ASDF» в «ASDF», но мой текущий код только позволяет мне предназначаться первый байт «ASDF», который является «А», поэтому моя результирующая строка теперь «aDSF», как я могу сделать так, чтобы байт перемещался на D, S и F? есть ли конкретная команда для этого?
Заранее спасибо
Спасибо, да, похоже, моя терминология была действительно неправильной, я поменял ее на правильную терминологию в своем посте и добавил пример, мне интересно, как переместить байт, чтобы я мог настраивать каждый отдельный байт, а не просто первый в строке –
@JoeyZhang: если вы уже знаете, что все байты являются алфавитными символами, вы можете использовать 'OR' или' AND' для установки или очистки бит в нескольких байтах одновременно. (Или 'XOR' для переключения). Это простая форма [SWAR] (https: //en.wikipedia.org/wiki/SWAR) и работает, потому что не может генерировать перенос, который распространяется в следующий байт. Если вы знаете, что все байты имеют верхний регистр, вы можете использовать 'add' вместо' or', так как вы знаете, что он не будет переноситься. Кроме того, m68k не имеет SIMD-инструкций. –
Кроме этого, это язык ассемблера. Вам часто приходится перебирать байты в строке, потому что не существует целых строковых инструкций. –