我使用easy68k,我有一个字符串,我想为每个数字添加一个数字,所以它最终成为一个不同的字符串。是否有一个命令可以让我定位字符串中的特定字节?
例如:
ORG $1000
START:
MOVE.B str,D0
ADD.B #$20,D0
MOVE.B D0,str
str DC.B 'ASDF'
END START
我试图制作" ASDF"进入" asdf",但我当前的代码只允许我定位" ASDF"的第一个字节。这是" A",所以我的结果字符串现在是" aDSF",我怎么做到这样,字节就转移到D,S和F?是否有特定的命令来执行此操作?
提前致谢
答案 0 :(得分:2)
一点只能是0
或1
。 0和1是base2数字中的唯一数字。
xor是一个没有从低位到高位进位的加法。这有帮助吗?然而,问题正文似乎与标题不匹配。
不幸的是,你的术语非常混乱。从您的母语翻译可能会失去许多技术意义。
A"数字"通常表示十进制或十六进制数字:0-9或0x0-0xF
A" bit" 始终表示a single 0 or 1 value。这个问题的标题与您在身体中所要求的内容并不匹配。
A" string"通常表示编码可打印字符串的ASCII(或UTF8或UTF16)字节序列。例如char *str="Hello World!";
(即不是任意二进制文件。)你可以说"一串字节",这似乎就是你所说的。
一个"数组"是一系列元素,如uint8_t arr={0xA2, 0x02, 0x15, 0xFF};
这似乎是你所说的:一个字节数组。
如果您没有打算询问个别位,请编辑您的问题以重新编辑。
听起来更像是你有一个字节序列,并且你想为每个字节添加相同的值。您需要一个循环来执行此操作,因为没有SIMD指令集for m68k, accoding to google。 SIMD指令可以在向量寄存器的每个字节上并行执行多个单字节添加。 (比如x86' s PADDB
vector instruction,你可以在向载波寄存器的所有16个元素广播0x20之后使用它。)
SIMD add是一个在元素边界从低位到高位进位中断的加法。