- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将一个简单的 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,然后执行 for 循环,直到 i 大于或等于 5,并每次递增 i。在 for 循环中,我将 j 设置为 i*2,k 等于 j+1。我的Y86代码如下:
main:
irmovl $0, %ebx
jmp L2
halt
L3:
rrmovl %ebx, %eax
addl %eax, %eax
rrmovl %eax, %ecx
rrmovl %ecx, %eax
irmovl $1, %esi
addl %esi, %eax
rrmovl %eax, %edx
addl %esi, %ebx
L2:
irmovl $4, %edi
subl %edi, %ebx
jle L3
我可以提供我音译的C代码和IA32代码,如果它可以帮助您回答我的问题,我真的需要一些帮助,谢谢。
最佳答案
您忘记在源文件中添加额外的 NL (CR)。 YAS 有缺陷。当它汇编时,如果源 (ys) 文件末尾没有 NL (CR),它会包装程序集,覆盖创建的目标代码 (yo) 文件的开头。
结果...嗯,很糟糕。在您的情况下,YAS 可能在目标文件的第一个字符中插入了 HLT 指令。
关于c - Y86 1 步停止异常 HLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27117428/
我正在为我的自定义内核编写引导加载程序,它(引导加载程序)基于 Linux 内核 v0.1 boot.s .这是代码: .set BOOTSEG, 0x7c0 .set LOADSEG,
我在 QEMU 下运行我的保护模式内核,它在尝试执行汇编器 HLT 指令时导致一般保护错误。 EFLAGS 中的 CPL 为 0,IOPL 为 0,启用中断。 这可能是 QEMU 问题还是我遗漏了什么
我将一个简单的 C 程序翻译为 IA32,然后将其音译为 Y86,但出现错误,我不理解或不知道如何调试,因为我刚刚学习 Y86。错误是: Stopped in 1 steps at PC = 0x1.
我尝试在 win8 上执行 asm("hlt"); 但出现了一个 Windows 错误窗口。 有没有办法让 HLT 运行一段时间? 最佳答案 除非您正在编写设备驱动程序,否则您无法调用 HLT。这是一
我正在研究 Intel VMX,并编写了一个 Linux 内核模块来运行 VM。 VM将执行'hlt'指令,并发生VMExit of 12。 但是在VMExit之后,'activity state'是
我是一名优秀的程序员,十分优秀!