9得票5回答
编写汇编器,需要帮助。

我正在为一项大学项目编写8086汇编程序。我已经通过互联网上的一些编译器设计资料,并阅读了《编译器龙书》。但问题是,我没有找到有关汇编(生成目标代码)部分的太多资料。是否有什么好的书籍或链接可以用于汇编设计?从哪里开始?我已经了解了词法分析、语法分析和中间代码生成。

7得票1回答
x86汇编GAS语法中的冒号 : 在%ds:(%bx)中代表什么意思?

我刚接触x86汇编语言,正在尝试理解这份文档中的代码:http://www.cs.cmu.edu/~410-s07/p4/p4-boot.pdf 第3页: movw $0x1234, %ax movw %ax, %ds movw $0x5678, %bx # The following in...

14得票1回答
如何获取VESA BIOS信息

我正在跟随Phil-Opp Tutorials关于在Rust中编写操作系统的教程,并且在玩弄一下后,我想尝试在屏幕上显示真正的图形。 我已经想到应该从使用带有VESA的线性帧缓冲开始。我在osdev.org上找到了一些教程here和here,但它们不断谈论“函数代码”和es:di。第二个链...

27得票1回答
x86页面表是如何工作的?

我熟悉MIPS架构,它具有软件管理的TLB。因此,操作系统需要存储页面表和页面表项的方式和位置完全取决于你。例如,我曾使用单个反转的页面表完成了一个项目;我看到其他人使用每个进程的2级页面表。 但是,x86有什么故事呢?据我所知,TLB是硬件管理的。基本上,x86会告诉你,“嘿,这是你当前使...

12得票2回答
将32位DirectX9应用程序转换为大内存地址应用程序

我们遇到了一个老的闭源游戏引擎的问题,当内存接近2GB时,它无法编译着色器。 问题通常出现在D3DXCreateEffect上。通常会返回 "内存不足" 的 HResult,有时d3dx9_25.dll弹出随机错误的窗口或者直接崩溃。 我认为问题是缺乏大地址感知:我注意到其中一个d3dx9_2...

160得票3回答
“dword ptr”是什么意思?

有人能解释一下这是什么意思吗?(Intel语法,x86,Windows)and dword ptr [ebp-4], 0

16得票4回答
如何使用SSE获取__m128i向量的最大值?

我刚开始使用SSE,对于如何获取__m128i类型的最大整数值(max)感到困惑。例如: __m128i t = _mm_setr_ps(0,1,2,3); // max(t) = 3; 我搜索了一下,发现了MAXPS指令,但是我不知道如何在"xmmintrin.h"中使用它。 另外,...

28得票1回答
AT&T语法中的(%eax)的含义是什么?

请原谅我,我对x86汇编和汇编一般都是新手。 所以我的问题是,我有类似下面的代码:addl %edx,(%eax) %eax是一个寄存器,它保存着指向某个整数的指针。我们将其称为xp。 这是否意味着它在说:*xp = *xp + %edx?(%edx是一个整数) 我只是困惑addl将在哪...

9得票1回答
在Visual Studio中添加运行时断点是如何工作的?

当我在 C# 代码运行时添加断点,它会被触发。这是如何实现的呢? 我想说,在调试模式下运行时,Visual Studio 为代码块引用提供了参考,并且在运行时添加断点后,只要在编译后的代码中调用该引用,断点就会被激活。 如果我的假设是正确的,您可以详细说明一下它是如何工作的吗?

133得票9回答
汇编代码中的"int 0x80"是什么意思?

有人可以解释一下下面的汇编代码是做什么的吗? int 0x80