Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 有没有办法将16位值的一部分存储在汇编中的8位变量中?_Assembly_Variables_Cpu Registers_X86 - Fatal编程技术网

Assembly 有没有办法将16位值的一部分存储在汇编中的8位变量中?

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:或者像是

我创建了一个存储16位变量的变量,我尝试将上半部分存储在一个8位变量中。 我该怎么做

编辑:它适用于IA-32,我想我不能使用寄存器


EDIT2:我可以使用寄存器。

您可以这样做:

mov AX, [var16]
mov [var8], AH

或者,您可以使用SHR、SHL或ROR和ROL来移位或旋转寄存器中的位。

如果不使用寄存器,您怎么可能写入汇编?这就像是试图不使用算术进行加法。它是针对某个特定的CPU(例如Z80或细胞处理器的SPU)还是针对某个抽象CPU?@Crashworks:或者像是试图不使用生殖器进行性行为。在IA-32上,你不能
mov
内存对内存