Variables 在汇编中,将变量移动到代码段将做什么?

Variables 在汇编中,将变量移动到代码段将做什么?,variables,assembly,segment,Variables,Assembly,Segment,当我这样做的时候 mov [cs:10], dl 它在代码中做了什么更改? dl不是存储在数据段中吗 多谢各位 它在代码中做了什么更改 指令mov[cs:10],dl不一定会将任何内容更改为代码。它只是覆盖代码段中地址10处的任何字节值。这个字节可以包含(部分)指令,也可以只包含数据 dl不是存储在数据段中吗 由于指令具有CS:段重写,因此DL寄存器内容存储在代码段中。如果没有此段重写,DL寄存器内容将存储在DS寻址的数据段中 将变量移动到程序集中的代码段会做什么 汇编语言需要精确。该指令

当我这样做的时候

 mov [cs:10], dl 
它在代码中做了什么更改? dl不是存储在数据段中吗

多谢各位

它在代码中做了什么更改

指令
mov[cs:10],dl
不一定会将任何内容更改为代码。它只是覆盖代码段中地址10处的任何字节值。这个字节可以包含(部分)指令,也可以只包含数据

dl不是存储在数据段中吗

由于指令具有CS:段重写,因此DL寄存器内容存储在代码段中。如果没有此段重写,DL寄存器内容将存储在DS寻址的数据段中

变量移动到程序集中的代码段会做什么


汇编语言需要精确。该指令不引用任何变量。它包含一个寄存器。

取决于程序在何种环境下运行。+取决于此地址上的操作码以及之前加载的DL值。如果CS=DS,则不需要段覆盖前缀,否则本指令中没有对数据段的引用。在实地址模式下,写入代码段可用于在可执行文件运行时操作指令。例如,我们可以将“inc”指令的操作码加载到DL寄存器中,以替换代码段中的“dec”指令。当ip到达代码段中的10行时会发生什么?并非所有值的组合都是有效的指令,但是cpu只能执行有效的指令,我们必须把指令指针只指向有效的指令。你为什么要这样做?