Scannen Sie von Standard und drucken Sie auf Standard, indem Sie die Inline-Baugruppe in gcc verwenden
So lesen Sie in Inline Assembly GCC von STDIN und schreiben nach STDOUT, so wie wir es in NASM tun:
_start:
mov ecx, buffer ;buffer is a data word initialised 0h in section .data
mov edx, 03
mov eax, 03 ;read
mov ebx, 00 ;stdin
int 0x80
;Output the number entered
mov eax, 04 ;write
mov ebx, 01 ;stdout
int 0x80
Ich habe versucht, aus stdin in der Inline-Assembly zu lesen und dann die Eingabe x zuzuweisen:
#include<stdio.h>
int x;
int main()
{
asm(" movl $5, %%edx \n\t" "
movl $0, %%ebx \n\t" "
movl $3, %%eax \n\t" "
int $0x80 \n\t "
mov %%ecx,x"
::: "%eax", "%ebx", "%ecx", "%edx");
printf("%d",x);
return 0;
}
Dies ist jedoch nicht der Fall.
syscall aus der GCC-Inline-Assembly heraus
Dieser Link enthält einen Code, der nur ein einzelnes Zeichen in die Standardausgabe drucken kann.