ia-32

    0热度

    1回答

    我正在尝试学习x86语法,并且在一般情况下我有点困惑。我知道堆栈中有帧,并且在进行调用时,该函数中发生的第一件事是某种帧更新,然后获取参数。所以,如果我在我的主要代码区域中的寄存器eax中具有某种类型的值5并且调用Function,那么我仍然可以访问eax中的值5正确吗?或者为了把它作为一个参数,我必须做这样的事情。我在别的地方看到你在调用函数之前将你的参数推入堆栈,这是真的吗?我认为必须在8(e

    0热度

    1回答

    什么是IA-32关键字?标签名称有哪些限制?目前我正在写汇编代码在AT & T语法 - 奖金:我甚至不知道Intel和AT语法之间有什么区别。 编辑:我主要想知道哪些限制没有标签,例如,print是允许的标签名称? print: pushl %eax pushl $str call printf # output contents of stack according to out str

    4热度

    1回答

    我是使用IA-32型处理器的嵌入式软件工程师。我们正在寻找一个编译器工具链 - 最好是免费的。 我们曾经使用Mentor Graphics CodeBench Lite,但它不再可用。 我们看过其他GCC发行版,但没有一个具有glibc的裸机实现。没有,除了newlib,但由于GPL和LGPL授权问题,我们无法使用它。我们是OEM,我们的客户(和我们)拥有专有代码。 欢迎任何建议。

    2热度

    1回答

    IA32到Y86 ATT大会 我有以下的IA32汇编代码: Bubble: .LFB0: pushl %esi pushl %ebx movl 16(%esp), %esi movl 12(%esp), %edx subl $1, %esi andl %esi, %esi jle .L1 .L7: xorl %ea

    4热度

    2回答

    我知道我要说的这句话可能是非常快速地在StackOverflow上变得非常不受欢迎的最好方法。无论如何,我会这样说:为什么这不工作(完全)? 我试图弄清楚lea/leal指令的作用是什么。按照我的理解,lea/leal找出第一个操作数的内存地址,并将此地址写入第二个操作数(可能是一个寄存器或其他地址)。 这部分似乎工作。当我运行下面的程序时,它说: The memory address of va

    0热度

    1回答

    我正在学习MySQL数据库,我不能理解一个概念。假设在同一个类中有两个方法,如下所示。现在,我必须使用Connection connect = dbConnection.getDBConnection();每种方法还是有不同的方法来声明一个连接并在多个方法?: private void setUpdateButton(ActionEvent event) { try{ Con

    1热度

    1回答

    我试图在NASM中定义一个常量IDT (Interrupt Descriptor Table)条目,并且要这样做,我需要将一个双字的高位字发送到数据表地址,直到链接时间才能解决。有没有办法做到这一点? 这里的中断服务程序: ;;; Interrupt 3 (breakpoint) handler. For now, just poke the screen and halt. ali

    0热度

    1回答

    这是混乱的来源: MOVL(%EDX),%eax中这对待%eax中的值作为地址,进入到它并复制其含量%eax中, 牢记这一点然后查看: jmp *(%edx)由于括号之前使用过(在mov指令中作为解引用),那么星号是双引号的形式吗? ...以及怎么会变成这样的指令执行不同? - > JMP(%EDX) ...或者怎么样 JMP *%EDX与JMP%EDX?

    0热度

    1回答

    有什么方法可以访问条件标志的值,比如零标志,并将该值移入寄存器中?事情是这样的: cmpl %eax,%edx movl ZF, %eax 感谢, 问候

    1热度

    2回答

    请看下面有关各种指令集体系结构中的字大小的问题,以及与汇编语言的关系。感谢您的帮助。 首先有一些事实(如果其中任何一个错误,请纠正我)。处理器架构的字大小表示(编辑:有些错了,请参阅下面塞瓦的职位): 每个的最大尺寸寄存器 每个内存地址的最大尺寸(量的存储器可被解决) 的最大整数CPU可以在单个指令处理 最大的数据的片,可以在单个操作中 被转移到和从工作存储器 现在来了一个非常奇怪的事情:在IA-