linux: c++ inline assembler zur ausgabe eines char arrays ....
-
Hallo,ich habe noch nicht viel Ahnung von assembler, habe mir aber schon
einiges angeschaut. Nach meiner logik müsste das Programm unten den String in line[] auf dem Bildschirm ausgeben. Ich übergebe adresse und länge. aber es wird nichts ausgegeben. compilieren geht problemlos.Könnt ihr mir sagen, woran es liegt? Vielen Dank im Voraus
int main()
{
char line[] = {'H','a','l','l','o','\n'};
int lenght = sizeof(line);asm volatile
(
"movl %0,%%edx # third argument: message length;"
"movl %1,%%ecx # second argument: pointer to message to write;"
"movl $1,%%ebx # first argument: file handle (stdout);"
"movl $4,%%eax # system call number (sys_write);"
"int $0x80 # call kernel;": //nooutputs
:"r"(lenght),"r"(&line)
:"%edx","%ecx","%ebx","%eax"
);
}