Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Рекомендуемые сообщения

В ASMе я пока-что слабоват (учусь скажем так), и тут вот столкунлся с такой проблемой, не вьезжаю как такое получается! Я создаю маленькую програмку: сегменты размечаю вручную, тоесть с помощью SEGMENT... ENDS и тут то и начинается веселье!

В процесе дебагинга выяснилось, что каким то макаром адрес сегмента даных оказывается записаным в регистре сегмента стека (тоесть вместо DS в SS), либо же данные помещаются по адресу сегмента стека. Если поменять вручную содержимое DS на SS, либо сделать нехитрое копирование то все работает нормально, читает что положено из памяти.

Компилировалось это все в TASM и MASM - результат аналогичен.

Компиляция без дерективы .386

Программа просто пробная и никакой логической нагрузки не несет! :unsure:

assume cs:_code

_data segment

string db "This is a string"

alist db 10h, 20h, 30h

_data ends

_code segment 'code'

main:

assume ds:_data

;mov ax,data -----вот это помогает------

;mov ds,ax

mov bx,offset alist

mov dl,[bx]

inc bx

mov dl, [bx]

inc bx

mov dl,[bx]

mov ax, 4c00h

int 21h

_code ends

end main

Подскажите что творится, и в чем я не прав!

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за такое большое количество ответов! :unsure:

К счастью я сам нашел решение! И оказалось оно достаточно глупым!

Оказывается директивы assume не достаточно для того чтобы "умная" система записала в регистр DS адресс сегмента данных, поэтому его то надо туда копировать вручную! (глупо получилось с учетом того, что я и сам это пробовал)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...