Что означает строка mov ax,word ptr ds:[004020d8] , а именно ds:
то, что это записывает в младшую часть eax 2 байта по адресу в памяти (или файле, не совсем понимаю) 004020d8.
а то, что означает ds не знаю. я же просто хочу вытащить данные
Программе при запуске операционной системой выделяется участок адресов физической памяти. Внутри программа оперирует адресами вида 4020D8, но реальный физический адрес переменной будет [ds]+4020D8, ds это тоже регистр, в котором записан адрес "начала" сегмента данных, того самого диапазона адресов, выделенного программе. Ну это если по-простому
т.е. то, что я видел - cs и тд, это лишь особенность процессора и оперировать я буду всегда только ds? и что именно делает моя строка - записывает в ax значение, находящееся по адресу 004020d8 в файле?
в каком файле?
Вы говорите об ассемблере. Это страница в памяти. Все разбито на сегменты.
можете обратиться к cs:xxxxxxxx, можете к ds:xxxxxxxx
в зависимости от архитектуры, с которой работаете, у процессора есть определенное количество инструкций для работы с сегментами. В старых восьмибитных их было 4, сейчас - не в курсе.