Сейчас на форуме: morgot, Rio, CDK123, zds, tyns777, tihiy_grom, rmn (+4 невидимых)

 eXeL@B —› Программирование —› Как сохранить DS в COM-прог. создавая код в DEBUG
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 октября 2008 13:43
· Личное сообщение · #1

В командной строке CMD, можно создать простенькую программу на асм. с помощью DEBUG, когда сохраняю созданную программу, через команду -W, сохраняется только код программы, а данные нет, и при работе приложения, когда программа обращается к данным например mov al, [0000], то возникает ошибка.
Как правильно сохранять программу?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 25 октября 2008 16:55
· Личное сообщение · #2

когда сохраняю созданную программу, через команду -W, сохраняется только код программы, а данные нет
Код пожалуйста

Статья по теме wasm.ru/article.php?article=1022002

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 25 октября 2008 17:06
· Личное сообщение · #3

1) *.com проги (как давно это было...) не имеют при загрузке отдельного DS (если я правильно понял это Data Seg?)
данные хранятся вместе с кодом.

2) также нужно учитывать, что файлы com загружаются и начинают выполняться c адреса 0x100 (относительно текущего свободного сегмента), так что непонятно, откуда твои данные возьмутся по адресу 0 (там системная всякая инфа при старте будет).

3) команда w начинает по умолчанию сохранять с адреса cs:100, если надо с нуля - надо указывать.
но, при последующем запуске всё сместится на 0x100 (см пункт 2)



Ранг: 27.7 (посетитель), 2thx
Активность: 0.01=0.01
Статус: Участник

Создано: 25 октября 2008 17:50
· Личное сообщение · #4

а, если речь о регистре DS, то его надо вычислять

mov ax,cs
add ax, (размеркода/16)
mov ds,ax


 eXeL@B —› Программирование —› Как сохранить DS в COM-прог. создавая код в DEBUG
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати