att

    0热度

    1回答

    我正在使用AT & T语法。我写了代码,它从c调用函数mmap2。 这是我的C文件: #include <stdio.h> int* callloc(int length); int main(){ int *adres = callloc(1000); printf("%u\n",adres); return 0; } 这是我的汇编函数: #define PROT_READ 0

    -1热度

    1回答

    我创建具有以下签名的函数任意号码: int function_test (char *something, ...); 让我们假设在*的东西有什么东西,让我知道有多少参数为通过(就像printf与'%'一样)。 所以我存储在%ebx当前参数号为4的倍数,从8日开始,这样我就可以得到8(%ebp),12(%ebp)等 我如何做才能得到该参数的内容?当我尝试时: movl %ebx(%ebp),v

    2热度

    1回答

    我正在为教育目的构建一个内核。 右键我的操作系统启动如下:GRUB -> boot.S -> init.c 在boot.S我要加载中断描述符表。这是我的文件的摘录: # load_idt - Loads the interrupt descriptor table (IDT). # stack: [esp + 4] the address of the first entry in the ID

    4热度

    1回答

    我正在写AT & T语法。 这个循环应检查,如果情况是在范围61-7A ASCII(这意味着这个小字母) - 如果没有,然后将其转换为空间''。 change: movb (%esi), %bh #move case temporary to bh register cmp $0x61,%bh #compare 'a' ASCII and case from bh reg

    0热度

    1回答

    我是新来的,所以请耐心等待! ;) 我想在汇编器上返回一个字符串。我有堆栈中的字符串,正确终止。 然后我movl %esp到%eax并返回该函数。 我的想法是从AC函数调用它,并且使用该汇编函数是这样的: extern char* getthestring (void); int main() { char *m; m=getthestring(); printf ("The stri

    7热度

    2回答

    我读我的书,它有代码交换功能: 在C: int exchange(int *xp, int y) { int x = *xp; *xp = y; return x; } 在x86汇编与注释: // xp is at %ebp + 8, y at %ebp + 12 movl 8(%ebp), %edx // get xp movl (%edx), %eax // get x a

    0热度

    1回答

    我必须在汇编中编写一个函数来完成以下c代码。 int main(){ int hist[26]={0}; int i; charHistogram("This is a string", hist); for (i=0; i<26; i++) printf("%c:%d ", i+’a’, hist[i]); printf("\n"); } return 0; } 这

    0热度

    1回答

    我在具有intel语法的asm中有代码。我可以重写它的AT & T语法。 但现在我坚持与.org和bits关键字。如果我使用这些指令,则会引发错误。 AT & T等价于.org和bits? 我正在使用as汇编器。 Intel语法: .org 100h bits 16 AT & T语法: ?? 我想互联网上搜索。但没有给出参考。 编辑:我得到了.org的解决方案。现在位仍然存在。

    1热度

    1回答

    我想知道如何查看传递给使用gdb函数的命令行参数。 为了验证这一点,我整理了以下代码 .global main main: pushl %ebp movl %esp, %ebp movl $1, %eax movl $0, %ebx int $0x80 与 gcc -Wall -Wextra -g -m32 args.s 调用汇编器和链接

    1热度

    1回答

    好吧,这可能是一个愚蠢的问题,但我想我和其他人可能在学习的过程: 我与32位汇编工作,并在& T语法。 假设我想dinamically生成一个字符串,保存它的内容到堆栈: .data str: .long 0 string: .string "value is %s.\n" .globl main movb $0,str+3 #terminate the string movb $67