new*_*erl 6 assembly cpu-registers
movsb(移动字符串,字节)指令获取地址ds:si处的字节,将其存储在地址es:di,然后将si和di寄存器递增或递减1.
我知道esi,si和edi,di register,
但不ds:si和es:di,
他们的意思是什么?
ds:si并且es:di表示段:相关寄存器引用的偏移量.当您在实模式下工作时,这一点非常重要(偏移量最大为64K).
在实模式中,段被偏移组合为segment * 16 + offset.
在保护模式下,段寄存器保存"选择器".选择器引用的内存的基地址与选择器本身的值没有直接关系 - 相反,选择器只是作为查找表中数据的索引.但是,在通常的情况下,这意味着很少 - 大多数(当前)保护模式环境都设置了CS,DS,ES和SS,所有设置的基址都是0,最大偏移量是4千兆字节,所以通过DS进行寻址与ES没什么区别.