Assembly 有没有办法将16位值的一部分存储在汇编中的8位变量中?
我创建了一个存储16位变量的变量,我尝试将上半部分存储在一个8位变量中。 我该怎么做 编辑:它适用于IA-32,我想我不能使用寄存器Assembly 有没有办法将16位值的一部分存储在汇编中的8位变量中?,assembly,variables,cpu-registers,x86,Assembly,Variables,Cpu Registers,X86,我创建了一个存储16位变量的变量,我尝试将上半部分存储在一个8位变量中。 我该怎么做 编辑:它适用于IA-32,我想我不能使用寄存器 EDIT2:我可以使用寄存器。您可以这样做: mov AX, [var16] mov [var8], AH 或者,您可以使用SHR、SHL或ROR和ROL来移位或旋转寄存器中的位。如果不使用寄存器,您怎么可能写入汇编?这就像是试图不使用算术进行加法。它是针对某个特定的CPU(例如Z80或细胞处理器的SPU)还是针对某个抽象CPU?@Crashworks:或者像是
EDIT2:我可以使用寄存器。您可以这样做:
mov AX, [var16]
mov [var8], AH
或者,您可以使用SHR、SHL或ROR和ROL来移位或旋转寄存器中的位。如果不使用寄存器,您怎么可能写入汇编?这就像是试图不使用算术进行加法。它是针对某个特定的CPU(例如Z80或细胞处理器的SPU)还是针对某个抽象CPU?@Crashworks:或者像是试图不使用生殖器进行性行为。在IA-32上,你不能
mov
内存对内存