ia-32

    0热度

    1回答

    我把一个简单的c程序翻译成IA32,然后将它转译成Y86,但是我收到一个错误,我不明白或知道如何调试,因为我只是学习Y86。错误是: Stopped in 1 steps at PC = 0x1. Exception 'HLT', CC Z=1 S=0 O=0 Changes to registers: Changes to memory: 的程序是应该初始化i到0,然后通过继续进行循环

    0热度

    2回答

    Im做一些功课和困惑回复:这行代码: ja 8048448 <switch_prob+0x28> 我理解除了一部分一切......这怎么修改跳转到8048448? (我相信这是突破声明) 让我知道是否需要更多的代码。 感谢

    0热度

    1回答

    有谁知道什么是错误的解决方案在这里: func PROC x:sdword, y:sdword LOCAL tmp: sdword ... func ENDP A. mov tmp, y B. mov eax, y C. mov tmp, ecx D. lea eax, tmp 我可以使用所有这些说明吗?或者它们中有哪些是无效的? 诚挚的问候,并感谢您

    1热度

    2回答

    我正在尝试写一个引导加载程序,并且我正在编写的所有代码都以实模式运行。在所有的例子中,我发现有一个xor ax, ax或xor eax, eax,我不明白这是做什么。这似乎与设置段寄存器有关,但我不清楚是什么。

    0热度

    1回答

    我正在使用assebmly IA32,由于没有经验,我对此有些怀疑。 我想做这样的事情: A + B(均为32位)。 该函数可以返回64位的值。 请不要让我很难理解这一点。 谢谢!!!!

    1热度

    2回答

    将这个C代码翻译成程序集时,只有一件小事情被卡住了。这是我坚持的代码行。 if (input == '\n') 我的汇编代码迄今(此行)是 movl input, %eax #%eax = input cmpl ___, %eax 如何比较输入到 '\ n'?我是直接比较它还是首先将它移入内存?谢谢。

    0热度

    4回答

    我开始了我在汇编程序,我正在做一些算法和通用寄存器的数量是不够的,这 有什么办法在asm中使用特殊寄存器(eip,eflags)作为通用寄存器? 我只需要它们进行少量操作,但所有通用寄存器都已占用,我不喜欢将值存储在内存中,这会降低算法的性能。 可能吗?

    1热度

    1回答

    我想测试一下硬件是如何运行的,以防我试图写入段(例如DS以外的数据段可能是GS),仅用于测试目的......是否有程序集指令,允许我指定段wit.h一个偏移量并直接写入它?

    0热度

    1回答

    我想知道机器代码00是什么意思?另外,我有时会在程序中看到机器代码08。 08是什么意思? 08048413 <main>: 8048413: 55 push %ebp #save frame pointer 8048414: 89 e5 mov %esp,%ebp #create new frame pointer 8048416: 83 e4 f

    -1热度

    2回答

    我不想让你做我的功课。我只想提供一些关于如何做的提示,以便我可以自己学习。 给定的是一个从最低位到最高位写入的字节地址内存。然后,我有它具有以下声明一个C程序: long int i = 1; char c = 'x'; short int n = 10; short in m = 11; float f = 0.0; 在IA32 int是4个字节,char是1个字节,短是2字节,并且