diff --git a/arm_asm.md b/arm_asm.md index a079c191..f0536662 100644 --- a/arm_asm.md +++ b/arm_asm.md @@ -2295,16 +2295,26 @@ hello_asm.binはほとんどハードコードで対応出来てしまったは 対応してない、と正しく判断されるようになった後は、ちゃんと対応していきます。 -print_loopでは、2つのレジスタにldrするので、 -レジスタの部分をハードコードでは無くちゃんと読むように変える必要があるでしょう。 -そしてoffsetもちゃんと直す。 +print_loopでは、2つのレジスタにldrするので、レジスタの部分をハードコードでは無くちゃんと読むように変える必要があるでしょう。 +そしてoffsetもちゃんと直す必要がありそうです。 + +以下の命令は ``` ldr r1,=message ``` -のバイナリとobjdump結果が何になるか、誰か教えてください。 -それをUnit Testに追加して通します。 +たぶんバイナリ的には + +``` + ldr r1, [pc, #0x24] +``` + +とかになっているはずで(オフセットは人によって違うかも)、 +値としては0xe59f1024あたりのはずです。 + +これ(の実際の手元での値)をUnitTestに追加して通します。 + ### ldrbを実装する