x86

    0热度

    1回答

    处理页面目录(页表)中的内核区域地址转换是否必须是全局转换?

    3热度

    1回答

    我正在使用Visual Studio 2017,并且想要测试$符号。使用下面的代码,我期望var1和var2的值是不同的,但它们是相同的。 .data var1 DWORD $ var3 BYTE 16 dup (0FFh) var2 DWORD $ 这是一个什么样VS显示内存 的图像VAR1值对我来说很有意义,但是如果$应该显示下一个内存地址,为什么VAR2显示与var1相同的?它不应

    0热度

    1回答

    我看到这种情况下,从一个网站: cmpl $0x0,-0x20(%ebp) jne xxx (program terminated so -0x20(%ebp) == 0) cmpl $0x1,-0x1c(%ebp) jne xxx (program terminated so -0x1c(%ebp) == $1) 则: lea -0x18(%ebp),%ebx mov -0x

    0热度

    2回答

    PCI卡可以有一些与其关联的内存(映射到内存空间或映射到IO空间)。 现在说我们有一个PCI以太网卡(并且它使用内存映射IO),以太网卡将有一些内存作为缓冲区来放置数据以发送线路,并且每当以太网驱动程序想要通过电线发送数据,它可以要求以太网卡这样做。 现在我假定以太网卡映射内存的一部分是一个“命令寄存器”,并且当您向该命令寄存器写入例如字符串"send it"时,以太网卡将向缓冲区发送缓冲区。 现

    0热度

    1回答

    正如我们在x2APIC中所知,我们使用MSR而不是由xAPIC使用的MMIO。 但根据我的测试,我发现MSR访问的速度比MMIO慢得多。 例如,在我的环境我写了下面一个简单的测试用例: static __inline__ void __loApicWrite ( UINT32 * addr, UINT32 value ) { __asm__ volatile ( "m

    0热度

    1回答

    我想解决一个问题,要求用户输入用户名。如果该用户名是回文(即字符串的反转与原始字符串相同),则应打印“重新输入用户名”并再次输入。如果没有,它应该打印'OK'并终止。我写了下面的代码,并且一直无法找到它的谬误。如果有人能指出我的错误,这将是很大的帮助。提前致谢。 data segment str0 db 'Enter username: $' str db '$' str1 db 'OK$'

    3热度

    1回答

    假设我的计算机中有一个并行端口,现在并行端口会有一些与CPU相关的内存(不确定并行端口是否使用内存映射IO或端口映射IO)。 现在,如果我想发送信号到并行端口或从并行端口接收信号,我将不得不写入或读取与并行端口关联的内存。 现在说我有一台打印机连接到并行端口,打印机也将有一些内存(例如:它可能有一个缓冲区,它用来存储它应该打印的数据)。 我的问题是,CPU可以直接访问打印机的内存,例如,CPU可以

    -2热度

    1回答

    所以我有2个寄存器,eax其中容纳0xDEADC0DE和ebx其中持有0x1337CA5E。 第一个数字大于第二个数字。但是,在cmp指令:cmp eax, ebx之后SF(符号标志)已设置。为什么? 为什么如果结果是肯定的(eax - ebx)?

    2热度

    1回答

    这是我第一次问,所以我要在这里尽我所能,但是我在汇编任务中遇到了麻烦,在这个汇编任务中我给了一个.cpp文件(下面),并且必须创建一个包含乘法,方形和除法函数的.asm文件。我遇到的问题是Square和Multiply函数完成后,我必须调用PrintResult来显示答案。对于分区,成功的分隔返回1,不成功的分隔返回0并调用PrintResult显示失败消息。我不允许编辑他的.cpp文件,但我不知

    0热度

    1回答

    你们能告诉我我在哪里弄错了吗? 我需要在inline-assembly -2xy-3z中计算它。 int solution(int x, int y, int z) { x=4; y=5; z=2; int result; __asm { mov eax, -2 imul [x] imul [y]