Assembly 程序集-将用户输入的字符串转换为十六进制等效字符串
我正在用汇编语言(Easy68K)编写一个程序,提示用户输入内存地址。然后,程序将这些ASCII字符中的每一个转换为它们的十六进制等价物。我可以很好地转换十六进制,但我遇到了一个问题 如果用户输入A234567F,它将以8字节的形式存储(在A1中),但有效的内存地址十六进制等效值仅为4字节(2个字,1个长字)。我可以遍历每个字符,并将其转换为等价的十六进制数字,没有问题。但可以说,我不知道如何将它们“连接”在一起 我不希望“a”和“2”分别有一个单独的存储字节和一个单独的存储字节。我希望“A2”存储在相同的存储字节中 因此,在本例中,我希望存储器在本例中的外观如下: 内存地址Assembly 程序集-将用户输入的字符串转换为十六进制等效字符串,assembly,hex,ascii,68000,easy68k,Assembly,Hex,Ascii,68000,Easy68k,我正在用汇编语言(Easy68K)编写一个程序,提示用户输入内存地址。然后,程序将这些ASCII字符中的每一个转换为它们的十六进制等价物。我可以很好地转换十六进制,但我遇到了一个问题 如果用户输入A234567F,它将以8字节的形式存储(在A1中),但有效的内存地址十六进制等效值仅为4字节(2个字,1个长字)。我可以遍历每个字符,并将其转换为等价的十六进制数字,没有问题。但可以说,我不知道如何将它们“连接”在一起 我不希望“a”和“2”分别有一个单独的存储字节和一个单独的存储字节。我希望“A2”
$00000000
应包含值$A2
$00000001
持有$34
$00000002
持有$56
$00000003
持有$7F
然后,如果我将.L从address$00000000
开始移动到D1,那么D1将包含值$A234567F
如何执行此操作?移位4位,然后添加下一个十六进制数字。听起来用户输入已经是十六进制(二进制数的序列化格式),您希望将其反序列化为寄存器中的单个二进制整数。不要转换成十六进制。@Jester谢谢你!当涉及到位移位时,我自然看不到答案,但这正是我所寻找的。@PeterCordes我不太确定你的意思,但从我的角度来看,用户输入是十六进制数字的ASCII表示,我想转换为数字表示。然后我想把这个表示存储在寄存器中,作为十六进制。