Run Hello World on ARM emulator [on hold]
up vote
0
down vote
favorite
I'm trying to emulate a ARM-cpu at the moment. I read a lot about how to emulate a cpu. Right now I managed to write down all OpCodes, Registers etc and compiled a Hello World on a ARM-Maschine written in C, to get the assembler code (to test my emulator).
Assembler
.arch armv8-a
.file "hello.c"
.section .text.startup, "ax", @progbits
.align 2
.p2align 3,,7
.global main
.type main, %function
main:
stp x29, x30, [sp, -16]!
adrp x1, .LC0
add x1, x1, :lo12:.LC0
mov w0, 1
add x29, sp, 0
bl __printf_chk
mov w0, 0
ldp x29, x30, [sp], 16
ret
.size main, .-main
.section .rodata.str1.8, "aMS", @progbits, 1
.align 3
.LC0:
.string "Hello World"
.ident "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10)"
.section .note.GNU-stack, "", @progbits
I have to load the code from the ROM to my emulated RAM from which the code will be executed. But how do I load it to the RAM? I dont understand how to split the OpCodes and the Registers.
Summary
I want to emulate a ARM-CPU on a Intel CPU with Windows. To test my emulator I wrote a Hello World in C and compiled it to get the assembler code. The assembler code is written on a ARM-Maschine with Ubuntu 16.04. My question is how to fetch the assembler code with my emulator.
cpu c arm emulator assembly
put on hold as off-topic by Ramhound, DavidPostill♦ Nov 20 at 21:29
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "This question is not about computer hardware or software, within the scope defined in the help center." – Ramhound, DavidPostill
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
up vote
0
down vote
favorite
I'm trying to emulate a ARM-cpu at the moment. I read a lot about how to emulate a cpu. Right now I managed to write down all OpCodes, Registers etc and compiled a Hello World on a ARM-Maschine written in C, to get the assembler code (to test my emulator).
Assembler
.arch armv8-a
.file "hello.c"
.section .text.startup, "ax", @progbits
.align 2
.p2align 3,,7
.global main
.type main, %function
main:
stp x29, x30, [sp, -16]!
adrp x1, .LC0
add x1, x1, :lo12:.LC0
mov w0, 1
add x29, sp, 0
bl __printf_chk
mov w0, 0
ldp x29, x30, [sp], 16
ret
.size main, .-main
.section .rodata.str1.8, "aMS", @progbits, 1
.align 3
.LC0:
.string "Hello World"
.ident "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10)"
.section .note.GNU-stack, "", @progbits
I have to load the code from the ROM to my emulated RAM from which the code will be executed. But how do I load it to the RAM? I dont understand how to split the OpCodes and the Registers.
Summary
I want to emulate a ARM-CPU on a Intel CPU with Windows. To test my emulator I wrote a Hello World in C and compiled it to get the assembler code. The assembler code is written on a ARM-Maschine with Ubuntu 16.04. My question is how to fetch the assembler code with my emulator.
cpu c arm emulator assembly
put on hold as off-topic by Ramhound, DavidPostill♦ Nov 20 at 21:29
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "This question is not about computer hardware or software, within the scope defined in the help center." – Ramhound, DavidPostill
If this question can be reworded to fit the rules in the help center, please edit the question.
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
You could hookbkpt
with your emulator (like ARMsemihosting
).
– domen
Nov 20 at 8:38
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm trying to emulate a ARM-cpu at the moment. I read a lot about how to emulate a cpu. Right now I managed to write down all OpCodes, Registers etc and compiled a Hello World on a ARM-Maschine written in C, to get the assembler code (to test my emulator).
Assembler
.arch armv8-a
.file "hello.c"
.section .text.startup, "ax", @progbits
.align 2
.p2align 3,,7
.global main
.type main, %function
main:
stp x29, x30, [sp, -16]!
adrp x1, .LC0
add x1, x1, :lo12:.LC0
mov w0, 1
add x29, sp, 0
bl __printf_chk
mov w0, 0
ldp x29, x30, [sp], 16
ret
.size main, .-main
.section .rodata.str1.8, "aMS", @progbits, 1
.align 3
.LC0:
.string "Hello World"
.ident "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10)"
.section .note.GNU-stack, "", @progbits
I have to load the code from the ROM to my emulated RAM from which the code will be executed. But how do I load it to the RAM? I dont understand how to split the OpCodes and the Registers.
Summary
I want to emulate a ARM-CPU on a Intel CPU with Windows. To test my emulator I wrote a Hello World in C and compiled it to get the assembler code. The assembler code is written on a ARM-Maschine with Ubuntu 16.04. My question is how to fetch the assembler code with my emulator.
cpu c arm emulator assembly
I'm trying to emulate a ARM-cpu at the moment. I read a lot about how to emulate a cpu. Right now I managed to write down all OpCodes, Registers etc and compiled a Hello World on a ARM-Maschine written in C, to get the assembler code (to test my emulator).
Assembler
.arch armv8-a
.file "hello.c"
.section .text.startup, "ax", @progbits
.align 2
.p2align 3,,7
.global main
.type main, %function
main:
stp x29, x30, [sp, -16]!
adrp x1, .LC0
add x1, x1, :lo12:.LC0
mov w0, 1
add x29, sp, 0
bl __printf_chk
mov w0, 0
ldp x29, x30, [sp], 16
ret
.size main, .-main
.section .rodata.str1.8, "aMS", @progbits, 1
.align 3
.LC0:
.string "Hello World"
.ident "GCC: (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.10)"
.section .note.GNU-stack, "", @progbits
I have to load the code from the ROM to my emulated RAM from which the code will be executed. But how do I load it to the RAM? I dont understand how to split the OpCodes and the Registers.
Summary
I want to emulate a ARM-CPU on a Intel CPU with Windows. To test my emulator I wrote a Hello World in C and compiled it to get the assembler code. The assembler code is written on a ARM-Maschine with Ubuntu 16.04. My question is how to fetch the assembler code with my emulator.
cpu c arm emulator assembly
cpu c arm emulator assembly
edited Nov 20 at 7:23
asked Nov 20 at 7:01
Tailor
34
34
put on hold as off-topic by Ramhound, DavidPostill♦ Nov 20 at 21:29
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "This question is not about computer hardware or software, within the scope defined in the help center." – Ramhound, DavidPostill
If this question can be reworded to fit the rules in the help center, please edit the question.
put on hold as off-topic by Ramhound, DavidPostill♦ Nov 20 at 21:29
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "This question is not about computer hardware or software, within the scope defined in the help center." – Ramhound, DavidPostill
If this question can be reworded to fit the rules in the help center, please edit the question.
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
You could hookbkpt
with your emulator (like ARMsemihosting
).
– domen
Nov 20 at 8:38
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59
add a comment |
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
You could hookbkpt
with your emulator (like ARMsemihosting
).
– domen
Nov 20 at 8:38
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
You could hook
bkpt
with your emulator (like ARM semihosting
).– domen
Nov 20 at 8:38
You could hook
bkpt
with your emulator (like ARM semihosting
).– domen
Nov 20 at 8:38
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Could you clarify: are you writing an emulator?
– domen
Nov 20 at 8:28
Yes, I want to emulate the cpu. Without os, gui etc. Just the cpu with console output.
– Tailor
Nov 20 at 8:33
You could hook
bkpt
with your emulator (like ARMsemihosting
).– domen
Nov 20 at 8:38
isnt semihosting for embedded devices?
– Tailor
Nov 20 at 10:59