English 中文(简体)
QWORD 利用32个轨道区域评价进行追踪/执行?
原标题:QWORD Storing / implementing using 32-bit REGs.?
  • 时间:2011-10-23 10:11:31
  •  标签:
  • assembly
  • x86

鉴于变数一被定义为“关键词”,可使用以下最低指示执行“一”=2*I:

解决办法:

MOV EAX, DWORD PTR I
ADD DWORD PTR I, EAX

......

MOV EAX, DWORD PTR I+4
ADC DWORD PTR I+4, EAX
问题回答

X86是little endian 架构。 这意味着,首先储存的数量最少。

例如,0x1234 存储于0x34,首先在<0x12上。 锡基皮亚条款的内容更多,但我很快总结如下:

Memory location:       X      X+1
                    +------+------+
Content (byte)      | 0x34 | 0x12 |
                    +------+------+

<代码>0x1234是怎样储存在记忆中。 因此,如果你在X号记忆点接触到最少重要的星号,那么最重要的星号储存在X+1。 让我们看一看DWORD(0x12345678):

Memory location:       Y      Y+1    Y+2    Y+3
                    +------+------+------+------+
Content (byte)      | 0x78 | 0x56 | 0x34 | 0x12 |
                    +------+------+------+------+

在座各位可以接触个人(如上例)或你可以在Y(0x5678)和Y+2(0x1234)的记忆中听一字。 同样,QWORD(0x0001020304050607):

Memory location:       Z      Z+1    Z+2    Z+3    Z+4    Z+5    Z+6    Z+7
                    +------+------+------+------+------+------+------+------+
Content (byte)      | 0x07 | 0x06 | 0x05 | 0x04 | 0x03 | 0x02 | 0x01 | 0x00 |
                    +------+------+------+------+------+------+------+------+

因此,你可以认为QWORD由2个DWORDS、4个字或8个字体组成。 你们可以看到,第二(最重要的)词储存在Z+4上。 只要你记住,最不重要的 by/口号/口号首先储存,并且carry/borrow

因此:

    MOV EAX, DWORD PTR I
    ADD DWORD PTR I, EAX

加上4个低端tes(DWORD)和工艺组(如果适用的话)的带旗帜,后者是上半部分加起来的(还有翻了一番):

    MOV EAX, DWORD PTR I+4
    ADC DWORD PTR I+4, EAX

如果把左侧推回,则考虑添加<条码>0x00FF<>/条码>和<条码>0x1001的这个较小例子。 a. 按性别分列:

    MOV AX, 0x00FF ; AL=0xFF AH=0x00
    MOV BX, 0x1001 ; BL=0x01 AH=0x10

    ADD AL, BL     ; Add lower parts, the result is 0x100 which 
                   ; doesn t fit in 8 bits, i.e. AL=0x00 now and
                   ; the carry flag is set

    ADC AH, BH     ; Add the most significant bytes together and 
                   ; include the carry flag. That is 0x00 + 0x10 + 1 = 0x11

    ; Final result AX = 0x1100

在X86区,1个WORD为16个轨道,1个DWORD 32个轨道,1个QWORD 64个轨道。 因此,1个QWORD由2个DWORDS组成,其中1个将称为LOW DWORD(这是一个较低的记忆地址,因为X86几乎没有终点员),而另一个我们将称为DWORD。

MOV EAX, DWORD PTR I
ADD DWORD PTR I, EAX

上文增加了LOW DWORD本身。

MOV EAX, DWORD PTR I+4
ADC DWORD PTR I+4, EAX

上文增加了DWORD号,其中考虑到以前增加的任何遗留问题(LOW DWORD本身)。





相关问题
How can I do a CPU cache flush in x86 Windows?

I am interested in forcing a CPU cache flush in Windows (for benchmarking reasons, I want to emulate starting with no data in CPU cache), preferably a basic C implementation or Win32 call. Is there a ...

What are the names of the new X86_64 processors registers?

Where can I find the names of the new registers for assembly on this architecture? I am referring to registers in X86 like EAX, ESP, EBX, etc. But I d like them in 64bit. I don t think they are the ...

How do I disassemble raw 16-bit x86 machine code?

I d like to disassemble the MBR (first 512 bytes) of a bootable x86 disk that I have. I have copied the MBR to a file using dd if=/dev/my-device of=mbr bs=512 count=1 Any suggestions for a Linux ...

32bit application access to 64bit registry

I have an OS Shell written in 32bit that is replacing the Explorer.exe of a Vista machine. I run a utility which is also written in 32bit, which allows to switch between the Explorer shell and My ...

Left Shift Overflow on 68k/x86?

I heard that the Motorola 68000 and Intel x86 architectures handle overflow from left shifting differently. Specifically the 68k LSL vs. the Intel SAL/SHL assembly instructions. Does anyone know the ...

Translate a FOR to assembler

I need to translate what is commented within the method, to assembler. I have a roughly idea, but can t. Anyone can help me please? Is for an Intel x32 architecture: int secuencia ( int n, ...

热门标签