Code:
.data ; section declaration - variables only
msg:
.ascii "Hello, world!\n\0"
len = . - msg ; length of our dear string
.text ; section declaration - begin code
.globl _main
_main:
# write our string to stdout
li r0, 4 ; syscall number (sys_write)
li r3, 1 ; first argument: file descriptor (stdout)
; second argument: pointer to message to write
lis r4, ha16(msg); load top 16 bits of &msg
addi r4, r4,lo16(msg) ; load bottom 16 bits
li r5, len ; third argument: message length
sc ; call kernel
# and exit
li r0, 1 ; syscall number (sys_exit)
li r3, 1 ; first argument: exit code
sc ; call kernel
this is the assembly code, then I do this at the root prompt:
gcc helloworld.s -o helloworld, it compiles and create the helloworld, i thought the will be executable to run, so I run it, it says helloworld command not found.
so what the process of having the executable to run and display 'hello world' as my program does?
thanks