From fe722b9304052b7a0a67fe01633c24ba5b4cdafa Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sun, 18 Oct 2020 18:38:26 +0200 Subject: Implemented insertAddresses() --- test-asm.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'test-asm.cpp') diff --git a/test-asm.cpp b/test-asm.cpp index 256902c..efdeab9 100644 --- a/test-asm.cpp +++ b/test-asm.cpp @@ -93,12 +93,26 @@ TEST_F(AsmTest, Intel64_multiple) { Segment segment; segment.push_back(makeOp("nop")); - AsmArgs args{{AsmArgs::Immediate8(5)}}; - segment.push_back(makeOp("int", args)); + AsmArgs args0{{AsmArgs::Immediate8(5)}}; + segment.push_back(makeOp("int", args0)); segment.push_back(makeOp("ret")); segment.push_back(makeLabel("data1")); + segment.push_back(makeOp("ret")); + AsmArgs args1{{AsmArgs::Label("data1")}}; + segment.push_back(makeOp("jmp", args1)); segment.push_back(makeData({1, 2, 3})); - ASSERT_EQ(segment.size(), 5); - ASSERT_EQ(segment.getCode(), std::vector({0x90, 0xCD, 0x05, 0xC3, 0x01, 0x02, 0x03})); + segment.insertAddresses(); + + ASSERT_EQ(segment.size(), 7); + ASSERT_EQ(segment.getCode(), std::vector( + { + 0x90, // nop + 0xCD, 0x05, // int 5 + 0xC3, // ret + // data1: + 0xC3, // ret + 0xE9, 0xFF, 0xFF, 0xFF, 0xFF, // jmp data1 + 0x01, 0x02, 0x03 // data + })); } -- cgit v1.2.3