为什么 rep movb 使用数据段?

why rep movb uses data segments?

如果使用旧的段寄存器已经过时,为什么现在仍然存在,而我是这样的:

rep movsb %ds:(%rsi),%es:(%rdi)

这个"ds"和"es"在做什么?没有分段就不一样了?

您不需要指定它们,但它们仍然是 "there." 但是它们没有被用作 "Segment Registers";它们被用作选择器。

段寄存器现在用作全局描述符(或可能是局部描述符)table 之外的选择器,用于定义内存区域及其 read/write 权限。