所以这里是代码,直到第4次打印我很容易跟着它,但在第5次打印时,我不明白
为什么"5: a[0] = 200, a[1] = 128144, a[2] = 256, a[3] = 302 "呢?
我已经在代码中评论了我不理解的行.我期待着您的回复.
"#include <stdio.h>
#include <stdlib.h>
void
f(void)
{
int a[4];
int *b = malloc(16);
int *c = 0;
int i;
printf("1: a = %p, b = %p, c = %p\n", a, b, c);
c = a;
for (i = 0; i < 4; i++)
a[i] = 100 + i;
c[0] = 200;
printf("2: a[0] = %d, a[1] = %d, a[2] = %d, a[3] …Run Code Online (Sandbox Code Playgroud) 我在这做错了什么?
int val = 15;
asm ("movl %1, %%eax"::"r"(val):"%eax" );
__asm__ volatile ("int $0x80");
Run Code Online (Sandbox Code Playgroud)
我想在eax中移动15然后调用中断
"错误":'asm':操作数超出范围