adds first version of the expanded as assembler from mikko

This commit is contained in:
Torsten Ruger
2014-04-14 18:09:56 +03:00
parent 52e9542d73
commit 408b290b8a
32 changed files with 1943 additions and 1 deletions

27
test/code_generator.rb Normal file
View File

@ -0,0 +1,27 @@
if (__FILE__ == $0)
gen = Asm::ARMCodeGenerator.new
gen.instance_eval {
mov r0, 5
loop_start = label
loop_start.set!
subs r0, r0, 1
bne loop_start
bx lr
}
require 'objectwriter'
require 'tempfile'
writer = Asm::ObjectWriter.new(Elf::Constants::TARGET_ARM)
writer.set_text gen.assemble
begin
writer.save('arm_as_generated.o')
rescue => err
puts 'as: cannot save output file: ' + err.message
exit
end
end

19
test/elf_object.rb Normal file
View File

@ -0,0 +1,19 @@
if (__FILE__ == $0)
obj = ELF::ObjectFile.new ELF::TARGET_ARM
sym_strtab = ELF::StringTableSection.new(".strtab")
obj.add_section sym_strtab
symtab = ELF::SymbolTableSection.new(".symtab", sym_strtab)
obj.add_section symtab
text_section = ELF::TextSection.new(".text")
obj.add_section text_section
symtab.add_func_symbol "_start", 0, text_section, ELF::STB_GLOBAL
fp = File.open("test.o", "wb")
obj.write fp
fp.close
end