如何将DS和ES寄存器设置为CS?

时间:2014-08-22 14:27:53

标签: x86 cpu-registers fasm

我的问题如下:我有一个程序,它的数据和代码在同一段(代码段)中。我想使用ESI和EDI寄存器来比较几个字符串,但它们在Code Segement中。

ESI和EDI寄存器是DS和ES寄存器段的偏移量,(DS:ESI),(ES:DI),但我想更改数据段和ES段指向的地址,并将其设置为相等到代码段地址。

请帮帮我。谢谢你的回答。能给我一个关于如何做的简短例子吗?

1 个答案:

答案 0 :(得分:3)

简单方法:

  PUSH CS
  PUSH CS
  POP  DS
  POP  ES

当然,执行

  PUSH DS
  PUSH ES

在玩DS和ES之前,

  POP  ES
  POP  DS

当您完成并希望恢复细分设置是解决本地问题的简便方法。