assembly

    0热度

    1回答

    发表于:星期一2010年11月22日上午2:30发表主题:如何将组件对象与C++项目 你好, 我联系试图将汇编程序与我的C++程序联系起来。我正在使用NASM通过命令“nasm -fobj myprogram.asm”生成.obj文件。 .obj文件已创建,但我不确定如何将其与我的项目链接。我尝试将文件添加到链接器 - >依赖项,但仍然出现我的外部程序集函数未定义的错误。 .obj文件可能位于错误

    0热度

    1回答

    我想了解MIPS的应用程序,但我有点困惑于以下说明: la $k1, off_9FC005A8 lw $k1, (off_9FC005D4 - 0x9FC005A8)($k1) jr $k1 在我的理解,这将等同于以下伪C代码: $k1 = *off_9FC005A8; $k1 = *($k1 + (*off_9FC005D4 - 0x9FC005A8)); 因此,了解以下内容

    9热度

    1回答

    我一直在关注编程Ground Up的优秀书籍,想学习大会。虽然在这一点上没有在本书中,但我想从C上的一个32位机器上调用我的汇编函数,这在从本书开始的工作中是一样的。 我在这里做的是存储第一个参数%ebx和第二个%ecx。 .type power, @function .globl power power: pushq %ebp movl %esp, %ebp s

    1热度

    1回答

    如何在汇编中编写一个函数,将函数的参数转发给另一个函数并添加一些额外的函数? 到目前为止,我推出了两个额外的参数,然后只是jmped到另一个函数。这有效吗?假设我使它成为一个裸体功能,没有序言/ epilog。我在x86中。

    1热度

    2回答

    我在堆栈上分配了12个字符串,或者等价地是12个字节。 与gdb混合(在Linux下)显示为了为堆栈中的字符串分配空间,esp被-24(向下堆栈)移动。 push %ebp mov %esp,%ebp sub $0x18,%esp 为什么它移动了24(0x18)?

    5热度

    4回答

    我知道如何编写MSIL代码,但出于好奇,我想知道是否有解决方法来编写汇编代码。我可以想象一种方法,就像在一个字符串中编写代码并将其传递给一个本地窗口API,该窗口执行并返回结果,但不确定这是真实还是可能。 我想听听你的意见/ suggestions.Thanks

    9热度

    2回答

    我试图构建通过调用objdump -d返回的程序集结果的控制流图。目前最好的方法是将结果的每一行放入一个链表中,并将每行的内存地址,操作码和操作数分开。我通过依赖objdump结果的常规性质(内存地址从表示每行的字符串中的字符2到字符7)将它们分开。 一旦完成,我开始实际的CFG指令。 CFG中的每个节点都有一个起始和结束内存地址,一个指向前一个基本块的指针,以及指向任何子基本块的指针。然后通过o

    3热度

    3回答

    我在Linux上使用gdb版本6.8-debian。我一直很好奇c程序中的主函数是如何被执行并且在不同的地方播放和查看的,我知道函数__libc_start_main对此负责。 __libc_start_main的参数是:主要的地址(就像我们从c知道的那样,路径总是以argv [0]给出的),下一个应该存在于寄存器ESI中的argc,以及应该是argv的下一个地址在ECX中。 要玩我做了如下简单的

    0热度

    4回答

    用C(或汇编)编写的程序是否可能使用gcc与c stdlib链接来打印其条目的地址? (因为_start符号实际上表示程序入口,所以我询问是否可以在不使用ELF可执行文件解析的情况下从主函数内部打印该符号的地址)。

    0热度

    2回答

    我在阅读broken thorn operating system development series。我读了关于实模式和保护模式。我读过中断在保护模式下不可用。我必须设置一些模式之间的切换。我可以在真实模式下使用BIOS中断进行编码。所有这些都很好。但是我想知道这些背后是什么?当我们关闭CR0中的PE标志时究竟发生了什么?为什么我们不能在保护模式下使用BIOS中断?这些BIOS中断背后是什么?