Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru - www.lycos.ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 257
от 30.04.2002, 04:20

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 49
Отправлено ответов: 86
Активность: 175.5 %
[Задать вопрос >>][Регистрация эксперта >>]


 Список экспертов, ответы которых опубликованы в данном выпуске

Dream
Статус: Начальный
Общий рейтинг: 127.27
[Подробней >>]
freeseacher
Статус: Опытный
Общий рейтинг: 156.52
Телефон: 8(3832)366362
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 180.44
[Подробней >>]
masquer
Статус: Опытный
Общий рейтинг: 176.62
[Подробней >>]
 
Топор
Статус: Опытный
Общий рейтинг: 166.91
URL: Хорошая Русская Металлическая команда
Телефон: (8462)160302, 162918
[Подробней >>]
Артём Шегеда
Статус: Опытный
Общий рейтинг: 168.06
URL: Пристанище неодинокого программиста
[Подробней >>]
 
DiGiT
Статус: Профессиональный
Общий рейтинг: 184.44
[Подробней >>]
Samodelkin
Статус: Опытный
Общий рейтинг: 153.33
[Подробней >>]
 
Dron
Статус: Профессиональный
Общий рейтинг: 184.93
URL: Операционная система с нуля!
[Подробней >>]
kostik
Статус: Опытный
Общий рейтинг: 162.68
Телефон: (4212)393-276
[Подробней >>]
 
Beeblebrox
Статус: Опытный
Общий рейтинг: 166.12
URL: Beeblebrox / TMA HomePage
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 184.19
URL: Моя работа
Телефон: (0572) 41-76-04 дом.
[Подробней >>]
 
root
Статус: Опытный
Общий рейтинг: 140.65
URL: Когда-то будет homepage
Телефон: (8-632) 77-97-02
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 188.95
[Подробней >>]
 
v4D
Статус: Доверительный
Общий рейтинг: 147.43
[Подробней >>]
GL
Статус: Опытный
Общий рейтинг: 146.34
[Подробней >>]
 
baldr
Статус: Профессиональный
Общий рейтинг: 170.42
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 12. гДПЮБЯРБСИРЕ ЩЙЯОЕПРШ. мЕЛНЦКХ АШ БШ ОНДЯЙЮГЮРЭ ЙЮЙ Б БХМДЮУ МЮ ПЮАНВХИ ЯРНК БШБЕЯРХ ЙЮПРХМЙС (МЮОПХ... (ответов: 1)
Вопрос № 14. Помогите студенту здать ассемблер ? Наш препод задал написать прогу " дано двумерный масив 3Х3... (ответов: 2)
Вопрос № 16. Конкурс… Это письмо я уже отправлял вчера, не сохранив, но подтверждения не приходило, т.ч. он... (ответов: 2)
Вопрос № 17. Привет всем ! Подскажите пожалуйста, что значит "uses ebx" в объявлении процедуры MyProc p... (ответов: 7)
Вопрос № 18. Люди, помогите инфой по работе с TCP/IP на Асме (прям на мыло).... (ответов: 2)
Вопрос № 19. Уважаемые эксперты У меня возникло желание начать учить Java, - можно сказать что на это решение по... (ответов: 6)
Вопрос № 20. Я ещё ламер, но пытаюсь учится! Мой вопрос: В com программе при опредиление переменных нужно задават... (ответов: 12)

Вопросов: 7, ответов: 32


 Вопрос № 12

гДПЮБЯРБСИРЕ ЩЙЯОЕПРШ.
мЕЛНЦКХ АШ БШ ОНДЯЙЮГЮРЭ ЙЮЙ Б БХМДЮУ МЮ ПЮАНВХИ
ЯРНК БШБЕЯРХ ЙЮПРХМЙС (МЮОПХЛЕП ЙЮЙ ЯЙПЕОЙЮ -
ОНДЯЙЮГЙЮ Б НТХЯЕ). еЯКХ ЛНФМН РН ХЯУНДМХЙ МЮ ЮЯЛЕ
гЮПЮМЕЕ АНКЭЬНЕ ЯОЮЯХАН.



Вопрос отправлен: 26.04.2002, 06:46
Отправитель: mooon (mooon@beep.ru)

[Следующий вопрос >>]

Отвечает Dream

Здравствуйте, mooon!
Зачем тебе Assembler?
Все это можно сделать средствами обыкновенного Java skript!!
- да-да не удивляйся!
Дело в том что вместо обыкновенного рисунка на рабочем
столе можно поставить HTML страницу, - а следовательно и
Java skript,Flesh,Java,DHTML и т.д....
R.S.- смени кодировку...
С наилучшими пожеланиями....


Ответ отправлен: 26.04.2002, 22:48
Отправитель: Dream


 Вопрос № 14

Помогите студенту здать ассемблер ?
Наш препод задал написать прогу
" дано двумерный масив 3Х3 целых положительных числ. Отсортировать 2 ряд масива по уменшению. Результат вывести на экран"



Вопрос отправлен: 26.04.2002, 10:26
Отправитель: SERGEY

[Следующий вопрос >>]

Отвечает freeseacher

Здравствуйте, SERGEY!
знаешь так дело не пойдет если учишься, то учись, а не..

Ответ отправлен: 27.04.2002, 12:58
Отправитель: freeseacher


Отвечает Ayl

Доброе время суток, SERGEY!
А вы правила читали? Здесь не пишут программы, здесь отвечают на вопросы! В вашем случае никакого вопроса нет, кроме первой строки. Но так как кто-нибудь из экспертов вряд ли пойдет на сдачу ассемблера к вашему преподу, то он похож на риторический :)
Теперь по сути. Могу предложить несколько рекомендаций:
1. Возможная сложность - определить на асме 2-мерный массив. Тут есть несколько вариантов. Первое - трансформировать его в одномерный и пересчитывать индекс. В вашем случае это, пожалуй, самое оптимальное. Второе - определить массив для цказателей на строки массива и далее заполнять построчно. Но это слишком сложно.
2. Сортировка. В вашем примере самое оптимальное - это "пузырек". Организуете 2 вложенных цикла. Первый (i) - по индексам от 1 до N-1 (N - количество элементов в строке). Второй (j) - от i + 1 до N. Сравниваем элементы с индексами i и j. Если Ai > Aj, то меняем их местами. Все.
3. Для вывода потребуется процедура перевода числа в последовательность десятичных знаков (можно найти в прошлых выпусках рассылок). Ну и потом вывести массив.
Если что непонятно - задавай конкретные вопросы!

Ответ отправлен: 27.04.2002, 19:07
Отправитель: Ayl


 Вопрос № 16

Конкурс…
Это письмо я уже отправлял вчера, не сохранив, но подтверждения не приходило, т.ч. оно могло не дойти, поэтому еще раз посылаю – по памяти восстанавливаю что я писал, поэтому не сочтите за сумашествие.

Главная новость – нашего полку прибыло!
Эксперту BlackBeast (или для тех, кто в танке... 
Программа должна складывать два числа, представленных в ASCII-коде (например, chislo1 db ‘1234567890’ и chislo2 db ‘449166’) и выводить результат на экран.
Важное условие: РАЗМЕР СЛАГАЕМЫХ (и суммы есесно) – ВЕЛИЧИНА РЕЗИНОВАЯ (ДИНАМИЧЕСКАЯ), т.е. в проге активно юзим значки бакса. Конечно, на конкурс выставляется код с наименьшими возможными (однознаковыми) слагаемыми, но прога ДОЛЖНА корректно складывать числа с большим кол-вом знаков.
Слагаемые НЕ ВООДЯТСЯ, а задаются в самой проге. РЕЗУЛЬТАТ ВЫВОДИТЬ ОБЯЗАТЕЛЬНО!!!
Дополнительное условие – любое из слагаемых (и сумма) могут дополняться слева произвольным количеством нулей (и это очевидно)
Эксперту User-у
Давай, сдавай поскорее свои сессии и присоединяйся! Чем нас больше, тем азартнее играть.
Эксперт Beeblebrox прислал следующее:
“Как это ни прискорбно, все варианты с com-файлами надо забраковать, так как они противоречат условию задачи, где максимальное число длиной 65535, соответственно два числа 131070, что выходит за рамки com”
Да, это так… чето я этот момент протупил!  Но если абстрагироваться от форматов файлов, то вообще к чему я приплел эти 65 тыщ. – чтобы в цикле перевода числа из ASCII задействовать именно 16-разр. регистр (чтобы не было потом что ктото юзил 32-разр. и у него оттого больше код), это все не важно, потом все варианты можно скосить под одну гребенку, поэтому условие по макс. размеру в 65 тыщ. убирается как нафиг никому не нужное.
Эксперту Артему Шегеде.
98 байт. Отлично! Еще порезать можно… Только у меня вопрос ко всем: почему «динамическая» длина воспринялась как то неоднозначно? Или может я просто термин немного неподходящий выбрал ? я всего лишь имел ввиду
chislo1 db ‘123456...........’
chislo2 db ‘234234...........’
chislo_len db $-chislo2
rezultat db chislo_len dup (?)
Не забывайте про возможность дополнить любое число нулями слева (и сделать их одинаковой длины
Вот и все…
Эксперту Пуля
Чего вдруг ты решил скончаться в такой ответственный момент??? И не вздумай даже!!! Доживи хотя б до конца этого конкурса…

Итак, итоги на сегодняшний момент таковы:
Эксперт Пуля – 128 байт
Эксперт Шегеда – 98 байт
Эксперт Dron - ???? (по заявкам – 50 байт), пока есть только вариант на 209
Эксперт Broken Sword – 54 байт
Ожидаются поступления еще от 4-5 экспертов!

А ты еще не записался добровольцем ?! К участию допускаются ВСЕ желающие и не очень!!!
P.S. Кстати, принимаются также ваши варианты заданий для будущих (я надеюсь) конкурсов подобного роду племени..
Шлите свои шедевры на brokensword@mail.ru в любое удобное для вас время!!!
Ждем-с...



Вопрос отправлен: 26.04.2002, 16:08
Отправитель: Broken Sword (brokensword@mail.ru)

[Следующий вопрос >>]

Отвечает masquer

Добрый день, Broken Sword!
К сожалению я пропустил начало этой увлекательной затеи, поэтому всех условий не знаю. Ниже привожу пример для МАСМ под виндами. Размер кода до месадж бокса - 90 байт. (Это со второй попытки). Вообще если подумать - можно и меньше написать - если убрать определение максимальной длины - то можно меньше 50 байт сделать.

Приложение:

Ответ отправлен: 26.04.2002, 21:35
Отправитель: masquer


Отвечает Топор

Доброе время суток, Broken Sword!
Слушай, а пойдёт тебе такой вариант - процедура со входом, например, DS:BX - строка первого числа, ES:DX - второго, и посаженная на какое-нить свободное прерывание? Это я к тому, чтобы сами числа в код не включать, заодно и экскре...тьфу ты, эксперимент чище, и кода меньше.


Ответ отправлен: 27.04.2002, 08:08
Отправитель: Топор


 Вопрос № 17

Привет всем !
Подскажите пожалуйста, что значит "uses ebx" в объявлении процедуры
MyProc proc uses ebx, myParam : DWORD

До встречи !
P.S. Почему-то не получается поставить оценку ?



Вопрос отправлен: 26.04.2002, 19:09
Отправитель: Alexey

[Следующий вопрос >>]

Отвечает masquer

Добрый день, Alexey!
Это означает, что регистр будет резервироваться, т.е. в начале процедуры сохраняться в стеке, а в конце - восстанавливаться

Ответ отправлен: 26.04.2002, 19:27
Отправитель: masquer


Отвечает Артём Шегеда

Доброе время суток, Alexey!
Ответ на свой вопрос ты можешь найти в документации по TASM (можешь взять на моём сайте). Но от себя скажу (чтобы не подумал, что "эксперты только ссылки давать могут"): "uses" используется компилятором для принятия решения о том, какие жизненно важные регистры (с точки зрения языка программирования, под который "заточена" процедура) будут модифицироваться процедурой. Если указанные регистры попадают под определение "жизненно важные", то компилятор на входе сгенерирует push, а на выходе - pop. И программа не пострадает. Но иногда это не нужно.
Если компилятор начинает умничать и указывать, что какой-то регистр был модифицирован и его нужно сохранить, а потом восстановить - то это плохой компилятор. Но это уже совсем другой разговор...

Ответ отправлен: 26.04.2002, 19:37
Отправитель: Артём Шегеда


Отвечает Топор

Здравствуйте, Alexey!
Регистры, объявленные в uses, сохранятся в стеке. В данном случае транслятор просто вставит в нужном месте push ebx и в конце соответствующую форму команды ret.


Ответ отправлен: 27.04.2002, 07:59
Отправитель: Топор


Отвечает DiGiT

Приветствую Вас, Alexey!
значит что регистр сохраняется в стеке при входе и выпихивается при выходе , насколько я помню так.

Ответ отправлен: 27.04.2002, 08:04
Отправитель: DiGiT


Отвечает Samodelkin

Добрый день, Alexey!
даже странно отвечать на такой вопрос...
uses с аглицкого - использовать ....
у тебя и ответ написан вроде
использовать ebx, myParam : DWORD

Ответ отправлен: 27.04.2002, 09:27
Отправитель: Samodelkin


Отвечает Dron

Здравствуйте, Alexey!
Это вероятно означает что ebx может измениться при выполнении процедуры.


Ответ отправлен: 27.04.2002, 11:23
Отправитель: Dron


Отвечает kostik

Добрый день, Alexey!
Означает сие, что регистр ebx в ходе выполнения процедурки изменяется и необходимо сохранить его в стеке.


Ответ отправлен: 29.04.2002, 11:04
Отправитель: kostik


 Вопрос № 18

Люди, помогите инфой по работе с TCP/IP на Асме (прям на мыло).



Вопрос отправлен: 26.04.2002, 19:38
Отправитель: Нуждающийся (_archive@mail.ru)

[Следующий вопрос >>]

Отвечает Beeblebrox

Добрый день, Нуждающийся!
На мыло не буду, так как эта инфа понравится всем. Зайдите на http://book.itep.ru/1/intro1.htm и прозрейте :)

Ответ отправлен: 29.04.2002, 10:02
Отправитель: Beeblebrox


Отвечает DiGiT

Приветствую Вас, Нуждающийся!
Асм, что понимать под асмом вообще!!!
Это ж ведь не язык программирования, а язык псевдомашинных кодов.
А сокеты, или там другой интерфейс для работы с TCP не реализуешь никак. Ведь это стек протоколов, набор правил и т.п. Но можно заюзать АПИ ОС и спокойно написать на асме. Так вот твоя проблема разрешается в доке по следующим функциям: socket, bind, accept, connect, .... , closesocket.

Ответ отправлен: 27.04.2002, 08:02
Отправитель: DiGiT


 Вопрос № 19

Уважаемые эксперты
У меня возникло желание начать учить Java,
- можно сказать что на это решение повлияло то что Java
является передовой технологией в переносимости программ
на другие платформы плюс то что этот язык очень похож
на язык С++, и программисты пишушие на Java наиболее
востребованы на рынке труда...
Так вот вопрос состоит в том возможно ли в Java делать вставки на ассемблере(дело в том что к асму настолько прывык что учить язык не поддерживающий ассемблер нет никакого желания)- информации по этой теме найти нигде
к сожалению не удалось :(((
Возможно есть среди экспертов которые пишут на ассемблере
те которые знают Java...
С наилучшими пожеланиями...



Вопрос отправлен: 26.04.2002, 20:31
Отправитель: Dream (andrey@zp.ukrtel.net)

[Следующий вопрос >>]

Отвечает Sensey

Приветствую Вас, Dream!
Я не знаю вопроса, но поррасуждаю
Если Ява настолько переносимый язык, насколько я слышал, а он очень переносимый, то откуда вставки на Асме, если Асм - аппаратно зависимый язык
ЗЫ Если меня поправят, а обижатся не бцудуЁ!
Удачи!
ЗЗФЫ Мзвини шо по клаве6 не попадал - день рожднения как никак бывл


Ответ отправлен: 26.04.2002, 20:49
Отправитель: Sensey


Отвечает masquer

Здравствуйте, Dream!
Ты в вопросе ответил - переносимость. Ассемблер язык не переносимый, поэтому увы.

Ответ отправлен: 26.04.2002, 21:38
Отправитель: masquer


Отвечает root

Доброе время суток, Dream!
По моим скромным данным - нельзя. Java работает под управлением JVM, которая интерпретирует его и проверяет не только ошибки(читать - исключения) времени выполнения, но также права данной программы выполнить некоторые действия в системе. За ассемблерным кодом проследить она не может. Причем, ты же сам написал - МЕЖПЛАТФОРМЕНАЯ ПЕРЕНОСИМОСТЬ. А какая переносимость ассемблера. Я его очень люблю, но ее нет. Пример: 1) х86 регистры AX, BX, CX, DX; 2) Макинтошевые регистры R0, R1, R2, R3, R4, R5, R6, R7 etc.


Ответ отправлен: 27.04.2002, 08:01
Отправитель: root


Отвечает DiGiT

Добрый день, Dream!
не видел никогда яву. Но думаю что нет, нельзя. Перл не может с чего бы это яве вдруг. К тому же как написать кроссплатформенное приложение с асмовскими вставками под ПС и потом юзать на спарках например.

Ответ отправлен: 27.04.2002, 08:15
Отправитель: DiGiT


Отвечает Артём Шегеда

Здравствуйте, Dream!
Что касается передовых технологий, то .NET - более передовая, чем Java (и это говорит человек, "почти враждебно" настроенный к Microsoft!). Почитай http://www.dotsite.spb.ru/Publications/PublicationDetails.aspx?ID=71 по этому поводу.
А что касается смеси ассемблера и Java - то это возможно, но, может быть, не так, как бы тебе хотелось. На асме нужно писать DLL, которые при выполнении программ на Java будут подгружаться. Об этом есть литература - и много.

Ответ отправлен: 27.04.2002, 12:28
Отправитель: Артём Шегеда


Отвечает freeseacher

Здравствуйте, Dream!
нет не держит он вставок на асме....
А где это Асматиков не любят и предпочитают им Явистов??? Я такого не знаю..... любят нынче VC++, Delphi, а они держат вставки.
Хоца делать вставки на асм в java делай dll

Ответ отправлен: 27.04.2002, 13:10
Отправитель: freeseacher


 Вопрос № 20

Я ещё ламер, но пытаюсь учится! Мой вопрос:
В com программе при опредиление переменных нужно задавать только смещение, так как сегмент там один, насколько я понял! А в ехе программах, на сколько я понимаю надо задавать и сегмент переменной. А как енто делается? смещение offset, а сегмент!?



Вопрос отправлен: 26.04.2002, 20:49
Отправитель: Dark_Lord (Dark_Lord@land.ru)

[Следующий вопрос >>]

Отвечает Beeblebrox

Доброе время суток, Dark_Lord!
Ты понял все неправильно. В COM файле только лишь при старте один сегмент, а дальше - сколько угодно
Для того, чтобы "определить" переменную, в программе достаточно указать ее имя и db, dw и тому подобное. Для того, чтобы работать с такой переменной, надо тоже использовать ее имя. Понадобится адрес переменной - тогда offset, понадобится сегмент - тогда seg.
Но COM и EXE здесь совершенно ни при чем

Ответ отправлен: 29.04.2002, 10:11
Отправитель: Beeblebrox


Отвечает Broken Sword

Приветствую Вас, Dark_Lord!
Ой, чето ты такое спросил... Ты имеешь ввиду, как "обратиться к переменной в exe-проге" ?
Да очень просто:
mov reg, size ptr seg:var
где reg - любой регистр, size - соотв. регистру размер (byte, word и т.п.) seg - нужный тебе сегм. регистр (по умолчанию - подразумевается всегда DS), var - название переменной
Например, mov ah,byte ptr bukva, для компиллятора равносильно mov ah,byte ptr ds:bukva
Но если тебе нужно, например, достать bukva из сегмента es, то какие проблемы? пишешь mov ah,byte ptr es:bukva (но это уже на байт длиннее) вот и все...

Ответ отправлен: 26.04.2002, 21:23
Отправитель: Broken Sword


Отвечает masquer

Добрый день, Dark_Lord!
Дай-ка вспомнить, в экзешнике кажись так пишеться
mov ax, @data
mov ds, ax
и все, пользуйся смещениями

Ответ отправлен: 26.04.2002, 21:43
Отправитель: masquer


Отвечает v4D

Приветствую Вас, Dark_Lord!
Привожу пример в приложении

Приложение:

Ответ отправлен: 26.04.2002, 23:39
Отправитель: v4D


Отвечает Топор

Приветствую Вас, Dark_Lord!
Если у тебя один сегмент кода, то в ЕХЕ его тоже задавать не надо. Ну уж если очень надо, то, например, так:
mov ax, dword ptr ds:[offset var]




Ответ отправлен: 27.04.2002, 07:50
Отправитель: Топор


Отвечает DiGiT

Доброе время суток, Dark_Lord!
все переменные(если в асме их так можно назвать) адресуются через ds. В нем может быть адрес любого сегмента. Если нужно явно адресовать через другой сегмент, то пиши например es:variable

Ответ отправлен: 27.04.2002, 07:56
Отправитель: DiGiT


Отвечает Dron

Добрый день, Dark_Lord!
вообще-то сегмент проще задавать в сегментных регистрах.
про адресацию не буду ничего говорить, давно уже не программлю под ДОС... :)


Ответ отправлен: 27.04.2002, 11:26
Отправитель: Dron


Отвечает Артём Шегеда

Приветствую Вас, Dark_Lord!
Неправильное понимание проблемы. Попробуем разобраться...
Основное отличие .EXE от .COM в том, что первый содержит море дополнительной информации, в том числе и так называемые fixup, т.е. коррекции. Эти коррекции указывают на то, что какое-то слово программы после загрузки необходимо откорректировать, т.е. к существующему значению прибавить сегмент посадки программы в память (программы могут размещаться в любой области памяти). Таким образом, можно, не напрягаясь, получить реальное значение сегмента какой-либо переменной или процедуры. Для получения сегмента какого-то объекта программы необходимо использовать функцию SEG.
Если тебе захочется узнать сегмент какого-то объекта в .COM-прграмме, то придётся отталкиваться только от CS. А fixup в .COM отловится ещё на этапе линкования - ты получишь ошибку "segment-relocatable items present".

Ответ отправлен: 27.04.2002, 12:06
Отправитель: Артём Шегеда


Отвечает freeseacher

Здравствуйте, Dark_Lord!
нет.
Cseg ends
dseg segment
bla
bla
bla
dseg ends
cseg segment
На asm .exe делают только очень редкие извращенцы... :-)))

Ответ отправлен: 27.04.2002, 13:13
Отправитель: freeseacher


Отвечает GL

Доброе время суток, Dark_Lord!
Адресация в ехе почти такая же как и в сом, только надо учитывать, что имеется несколько сегментов и перед обращением к "переменной" настраивать используемые при адресации сегментные регистры. По умолчанию при адресации к данным используется регистр DS (Data Segment) и если "переменные" находятся в сегменте данных и DS настроен на сегмент данных, то и адресуешься как в обычной сом-программе (например mov di offset metka).
Удобно также пользоваться специальными командами, например:
lds si,metka - адрес метки в ds:si
les di,metka - адрес метки в es:di

Ответ отправлен: 27.04.2002, 19:14
Отправитель: GL


Отвечает Ayl

Здравствуйте, Dark_Lord!
Ну так и будет - seg:
mov ax, seg My_Var
mov es, ax
mov di, offset My_Var
В результате в es:di - адрес переменной My_Var

Ответ отправлен: 27.04.2002, 19:19
Отправитель: Ayl


Отвечает baldr

Приветствую Вас, Dark_Lord!
Если ты уже загрузил вначале программы в DS или ES сегмент:
MOV AX, SEG @DATA
MOV DS, AX

то ничего указывать чаще всего не надо... То есть, если ты будешь использовать переменную из
сегмента данных, тебе достаточно указать просто:
MOV AX, MyVar
Но если ты обращаешься, например к переменной из своего сегмента кода, то надо в явном виде
указать сегмент, если, опять же, DS настроен не на него:
MOV AX, CS:BadVar
В общем, если не указано имя сегмента, автоматически используется DS или ES (зависит от
команды).
Если же тебе надо, например, передать в процедуру (вывод строки - INT 21h (AH=9h)) адрес
строки, то загружаешь как обычно, в DX - смещение (OFFSET peremennaya), а DS должен быть уже
настроен на тот сегмент, где эта peremennaya находится... Вот и все!


Ответ отправлен: 27.04.2002, 23:51
Отправитель: baldr



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (81)
C / C++ (28)
Perl (11)
Delphi (21)
Pascal (29)
Basic / VBA (12)
Java / JavaScript (13)
PHP (11)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (73)
Windows NT/2000/XP (64)
"Железо" (65)
Поиск информации (19)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (6)
Юристу
Гражданское право (24)
Уголовное право (3)
Семейное право (4)
Трудовое право (4)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




be number one SUPERTOP Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное