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

Ассемблер? Это просто! Учимся программировать (FAQ)


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Ассемблер? Это просто! Учимся программировать (FAQ)
______________________________________

Выпуск N 091

Вопросы, которые поступили от подписчиков рассылки
"Ассемблер? Это просто! Учимся программировать"

Дата выхода: 2001-09-10


Вопрос №843

Здравствуйте всем

Проблема такая
Регистры Ah или Al могут содержать только 2 бита информации
Допустим мне лень писать mov al,1
ah,1

и я записал ax,11

Я если длина числа нечетная. По какому принципу он раскидает
его по регистрам?

С уважением...

Ответ

Здравствуйте, Александр!
Какие такие два бита? Один 8-битный регистр (AH,AL) вмещает восемь бит, или один байт.
Хочешь AH=1,AL=1, пиши
AX=101h(одно число - 4 бита, шестнадцатеричная) или AX=100000001b (двоичная).
Если делать все через задницу, то в AH частное от AX/256, а в AL - остаток.


Отправил эксперт: DM
Эксперт отправил ответов (всего): 40

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №844

Здравсвуйте, эксперты!
Вот проблемы с почтовой программой начались:
работаю с Батом, при отсылке письма размером более чем 300 килобайт проблемы возникают:
а происходит так:
после соединения, где-то на 220 килобайтах(иногда раньше, иногда позже) модем перестает педевать информацию и
чего-то "ждет", затем минут через 7-8 соединение прекращается, но письмо не отправлено!!
Что посоветуете, а то много отсылать надо!

Ответ

Здравствуйте, Orlando!
Попробуй поменять почтовый сервис...


Отправил эксперт: DM
Эксперт отправил ответов (всего): 41

Экспертная группа: Пользовательская работа с Windows

Вопрос №841

Здраствуйте, уважаемые эксперты!
При переключении клавиатуры RUS/LAT в DOS и в окне DOS
в Windows 95 динамик издает звук. Как сделать так,
чтобы переключение кодировки не сопровождалось звуком?

Ответ

Здравствуйте, Евгений!
В ДОСе никак. разве что воспользовавшись каким-либо другим драйвером клавиатуры (напр keyrus или evfn)
В Виндах посмотри настройки звука, если установлен драйвер динамика (speaker.drv)


Отправил эксперт: Gn
Эксперт отправил ответов (всего): 4

Экспертная группа: Пользовательская работа c DOS

Вопрос №842

Здравствуйте уважаемые Эксперты!
Никак не могу дойти до истины в программе из 006(Затирание функции выхода)

Себе представляю это так:
/Сначала в указатель вершины стека сохраняют смещение метки Lab_1 ПО-видимому для того чтобы после затирания кода программ знала откуда читать

/затеме в стек, в котором уже находится это смещение закидывают еще 2 пустышки по байту каждая

/потом управление передеатся int 20h и она наплевав на
данные в стеке(зачем они ей)и остальных должна бы вырубить программу...

но не обязана...

Ответ

Здравствуйте, Александр!
Я даже в прогу заглядывать не буду - int 20h сама берет точку возврата из стека. Так понятно?


Отправил эксперт: Gn
Эксперт отправил ответов (всего): 5

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №844

Здравсвуйте, эксперты!
Вот проблемы с почтовой программой начались:
работаю с Батом, при отсылке письма размером более чем 300 килобайт проблемы возникают:
а происходит так:
после соединения, где-то на 220 килобайтах(иногда раньше, иногда позже) модем перестает педевать информацию и
чего-то "ждет", затем минут через 7-8 соединение прекращается, но письмо не отправлено!!
Что посоветуете, а то много отсылать надо!

Ответ

Здравствуйте, Orlando!
Помучайте своего почтового клиента - там должна быть настройка типа "делить сообщения при размере более ... [К]байт" на месте многоточия поставте 200К в пересчете на требуемую размерность. А вообще это проблема с вашим провайдером - допросите их по этому поводу.


Отправил эксперт: Gn
Эксперт отправил ответов (всего): 7

Экспертная группа: Пользовательская работа с Windows

Вопрос №845

Почему уже больше 24 часов не работает служба рассылки??? За все это время я получил только 90 выпуск фака. Может меня отрулили уже нарен? Господа эксперты, это один я такой или мы все под одним богом ходим?

Ответ

Здравствуйте, Broken Sword!
А ты не забивай серваку трафик своими глупыми вопросами, а то и двое суток придется ожидать :))


Отправил эксперт: Gn
Эксперт отправил ответов (всего): 8

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №841

Здраствуйте, уважаемые эксперты!
При переключении клавиатуры RUS/LAT в DOS и в окне DOS
в Windows 95 динамик издает звук. Как сделать так,
чтобы переключение кодировки не сопровождалось звуком?

Ответ

Здравствуйте, Евгений!
По моему keyb не пищать не умеет. Если тебя это так напрягает или используй другой руссификатор или отруби спикер аппаратно.


Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 107

Экспертная группа: Пользовательская работа c DOS

Вопрос №845

Почему уже больше 24 часов не работает служба рассылки??? За все это время я получил только 90 выпуск фака. Может меня отрулили уже нарен? Господа эксперты, это один я такой или мы все под одним богом ходим?

Ответ

Здравствуйте, Broken Sword!
НЕ ЗНАЮ ПОД КЕМ (ИЛИ НАД КЕМ ИЛИ ДАЖЕ ПОД КОГО) МЫ (ВЫ) ХОДИМ(ТЕ) НО У МЕНЯ ВСЁ ПУЧКОМ!


Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 110

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №847

Здравствуйте!
Неддавно начал изучать Ассемблер по Вашей рассылке.
В третьем номере приводится программа в самом конце.
При ассемблировании выдается следуещее сообщение:
invalid instruction на
строку mov ah,0B800h
Не могу понять почему?
У меня MASM611 OS:WIN2000 Pro Процессор:AMD-DURON 750 (Они чем-то отличаются от INTEL)
Да и если у автора рассылки (или кого-нибудь)есть возможность то выложите на сайт описание установки и наладки отладчиков AFD и CodeView.
Заранее вам благодарен.
С Уважением и наилучшими пожкланиями Юрий!

Ответ

Здравствуйте, Юрий!
А по качану! Фигли слово в байт то пихать?! У тебя ah регистр какой? Правильно, восьмибитный. А 08b00h что? Правильно - слово (2 байта = 16 бит). Исправь на mov ax,08b00h


Отправил эксперт: Painbringer
Эксперт отправил ответов (всего): 111

Экспертная группа: Работа с MASM/TASM

Вопрос №849

Здравствуйте, уважаемые эксперты. Вопрос у меня такой. Я получаю эти FAQи по рассылке и в клиентской области окна Outlook фактически не письмо, а страница HTML. А как самому отправлять такие письма? Облазил все меню Аутглюка, ничего не нашел. Может подскажет кто? Заранее благодарен.

Ответ

Здравствуйте, Nekto!
Для этого просто надо прикрепить к письму любой HTML-файл


Отправил эксперт: Alexander
Эксперт отправил ответов (всего): 2

Экспертная группа: Пользовательская работа с Windows

Вопрос №848

Здравствуйте, эксперты. Вопрос, может, конечно совсем и не в кассу, но я смотрю у вас тут все подряд спрашивают. :) Вобщем, может в курсе кто, есть прога какая-нибудь для перезаписи звуковой дорожки авишника? Заранее благодарен.

Ответ

Здравствуйте, Nekto!
Это умеет любой видео-редактор


Отправил эксперт: Alexander
Эксперт отправил ответов (всего): 3

Экспертная группа: Пользовательская работа с Windows

Вопрос №849

Здравствуйте, уважаемые эксперты. Вопрос у меня такой. Я получаю эти FAQи по рассылке и в клиентской области окна Outlook фактически не письмо, а страница HTML. А как самому отправлять такие письма? Облазил все меню Аутглюка, ничего не нашел. Может подскажет кто? Заранее благодарен.

Ответ

Здравствуйте, Nekto!

В тот момент когда жмете кнопочку "Создать сообщение" открывается окошко. Там, в меню Формат есть 2 строчки: "Формат HTML" и "Обычный текст". От того по чему щелкнуть и зависит формат письма.


Отправил эксперт: Spartak
Эксперт отправил ответов (всего): 15

Экспертная группа: Пользовательская работа с Windows

Вопрос №847

Здравствуйте!
Неддавно начал изучать Ассемблер по Вашей рассылке.
В третьем номере приводится программа в самом конце.
При ассемблировании выдается следуещее сообщение:
invalid instruction на
строку mov ah,0B800h
Не могу понять почему?
У меня MASM611 OS:WIN2000 Pro Процессор:AMD-DURON 750 (Они чем-то отличаются от INTEL)
Да и если у автора рассылки (или кого-нибудь)есть возможность то выложите на сайт описание установки и наладки отладчиков AFD и CodeView.
Заранее вам благодарен.
С Уважением и наилучшими пожкланиями Юрий!

Ответ

Здравствуйте, Юрий!

У тебя опечатка! Не AH, а AX!!!!
Ну нельзя в 8 бит запихать 16-ти битное число!
Внимательнее надо быть!


Отправил эксперт: Nik
Эксперт отправил ответов (всего): 104

Экспертная группа: Работа с MASM/TASM

Вопрос №846

Здравствуйте!
Неддавно начал изучать Ассемблер по Вашей рассылке.
В третьем номере приводится программа в самом конце.
При ассемблировании выдается следуещее сообщение:
invalid instruction на
строку mov ah,0B800h
Не могу понять почему?
У меня MASM611 OS:WIN2000 Pro Процессор:AMD-DURON 750 (Они чем-то отличаются от INTEL)
Да и если у автора рассылки (или кого-нибудь)есть возможность то выложите на сайт описание установки и наладки отладчиков AFD и CodeView.
Заранее вам благодарен.
С Уважением и наилучшими пожкланиями Юрий!

Ответ

Здравствуйте, Юрий!
AH - 8-битный регистр, ты в него хочешь запихнуть 16-битное значение!
В этом случае исправь на mov ax,0B800h!


Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 97

Экспертная группа: Работа с MASM/TASM

Вопрос №850

Здравствуйте уважаемые Эксперты !
Огромное СПАСИБО за внимание к моим откровенно ламерским вопросам. Но к сожалению, не получается у меня ничего ! В общем смотрите:
Написал прогу, трассирую стандартным виндовским дебагом (под чистым досом).
Вот что происходит:
-r
AX=0000 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0000 NV UP EI PL NZ NA PO NC
16F8:0000 B44A MOV AH,4A
-t
AX=4A00 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0002 NV UP EI PL NZ NA PO NC
16F8:0002 BB0200 MOV BX,0002
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0005 NV UP EI PL NZ NA PO NC
16F8:0005 CD21 INT 21
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=FFFA BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=0C80 IP=0445 NV UP DI PL NZ NA PO NC
0C80:0445 EAA004C407 JMP 07C4:04A0
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=FFFA BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=07C4 IP=04A0 NV UP DI PL NZ NA PO NC
07C4:04A0 80FC72 CMP AH,72
-t
Далее ид¸т полный бред. Выхожу из дебага, запускаю на выполнение. Если
винды активны - виснут намертво, если из-под чистого доса - COMMAND.COM
выдает ошибку выделения памяти и тоже виснет.
Вот сама прога:
model tiny
code
org 100h
start:
mov ah,4Ah
mov bx,2h
int 21h
mov ah,48h
mov bx,50h
int 21h
mov es,ax
retn
end start
По описанию 48-я функция 21-го должна в BX вернуть сегмент выделенного блока,
смещение - всегда 0000h. Тут явно такого не происходит. В ч¸м же ошибка? С уважением, Диман

Ответ

Здравствуйте, Диман!
1.Функция 4ah прерывания 2fh, она возвращает в bx размер доступной части HMA-памяти в байтах!
2.Функция 48h прер. 21h используется для выделения ОБЫЧНОЙ памяти!
В BX-должен поместить размер в 16-байтных параграфах!
Выход: AX - сегментный адрес выделенного блока(если нет ошибки)
Если ошибка, то в AX-номер ошибки, а в BX-размер максимально доступного блока!

В какой области памяти ты хочешь выделить место? В HMA or в обычной?


Отправил эксперт: Orlando
Эксперт отправил ответов (всего): 98

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №849

Здравствуйте, уважаемые эксперты. Вопрос у меня такой. Я получаю эти FAQи по рассылке и в клиентской области окна Outlook фактически не письмо, а страница HTML. А как самому отправлять такие письма? Облазил все меню Аутглюка, ничего не нашел. Может подскажет кто? Заранее благодарен.

Ответ

Здравствуйте, Nekto!
Создавай сообщение
Дальше... Вид изменить источник
у тя в сообщении появится три закладки :
Изменить Источник Просмотр
Иди в Источник ипиши html код...


Отправил эксперт: змей
Эксперт отправил ответов (всего): 21

Экспертная группа: Пользовательская работа с Windows

Вопрос №840

Приветствую вас, уважаемые эксперты!
У меня есть к вам несколько вопросов:

1)Что означает ошибка : "Phase error between passes" .

2)На сайте есть архив рассылок только до 29-го выпуска. Где можно взять остальные?

Заранее благодарен, Влад.

Ответ

Здравствуйте, Влад!
А где эта ошибка возникает и при каких действиях?
Весь архив рассылки можно скачать на Subscribe.ru, только ты может спутал саму рассылку и FAQ на нее?
Рассылки 30 выпусков, а рассылки FAQ уже 89


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 124

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Вопрос №841

Здраствуйте, уважаемые эксперты!
При переключении клавиатуры RUS/LAT в DOS и в окне DOS
в Windows 95 динамик издает звук. Как сделать так,
чтобы переключение кодировки не сопровождалось звуком?

Ответ

Здравствуйте, Евгений!
Не уверен но попробуй отключить динамик в регуляторе громкости


Отправил эксперт: Sensey
Эксперт отправил ответов (всего): 125

Экспертная группа: Пользовательская работа c DOS

Вопрос №848

Здравствуйте, эксперты. Вопрос, может, конечно совсем и не в кассу, но я смотрю у вас тут все подряд спрашивают. :) Вобщем, может в курсе кто, есть прога какая-нибудь для перезаписи звуковой дорожки авишника? Заранее благодарен.

Ответ

Здравствуйте, Nekto!

Adobe Premier, либо более простенькие програмки типа AVIedit, которую можно скачать из интета (занимает около 400 Кб.)

С уважением, Евгений!


Отправил эксперт: Evgeny
Эксперт отправил ответов (всего): 17

Экспертная группа: Пользовательская работа с Windows

Вопрос №850

Здравствуйте уважаемые Эксперты !
Огромное СПАСИБО за внимание к моим откровенно ламерским вопросам. Но к сожалению, не получается у меня ничего ! В общем смотрите:
Написал прогу, трассирую стандартным виндовским дебагом (под чистым досом).
Вот что происходит:
-r
AX=0000 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0000 NV UP EI PL NZ NA PO NC
16F8:0000 B44A MOV AH,4A
-t
AX=4A00 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0002 NV UP EI PL NZ NA PO NC
16F8:0002 BB0200 MOV BX,0002
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=16F8 IP=0005 NV UP EI PL NZ NA PO NC
16F8:0005 CD21 INT 21
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=FFFA BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=0C80 IP=0445 NV UP DI PL NZ NA PO NC
0C80:0445 EAA004C407 JMP 07C4:04A0
-t
AX=4A00 BX=0002 CX=0011 DX=0000 SP=FFFA BP=0000 SI=0000 DI=0000
DS=16E8 ES=16E8 SS=16F8 CS=07C4 IP=04A0 NV UP DI PL NZ NA PO NC
07C4:04A0 80FC72 CMP AH,72
-t
Далее ид¸т полный бред. Выхожу из дебага, запускаю на выполнение. Если
винды активны - виснут намертво, если из-под чистого доса - COMMAND.COM
выдает ошибку выделения памяти и тоже виснет.
Вот сама прога:
.model tiny
.code
org 100h
start:
mov ah,4Ah
mov bx,2h
int 21h
mov ah,48h
mov bx,50h
int 21h
mov es,ax
retn
end start
По описанию 48-я функция 21-го должна в BX вернуть сегмент выделенного блока,
смещение - всегда 0000h. Тут явно такого не происходит. В ч¸м же ошибка?

ЗЫ: Кстати, вс¸ спросить забываю - приходят письма на мыло, но в какой-то странной кодировке, ни одно прочитать не могу. Что за кодировка такая ?
С уважением, Диман

Ответ

Здравствуйте, Диман!
Ну вообщето по логике надо сделать наоборот - сначала блок выделить, а потом, если нужно, изменять размер!!
Это первое. А во-вторых логика 48h-функиции такая:
Вход :AH = 48h
BX - длина необходимого блока памяти в параграфах (в
параграфе 16 байт).
Выход:AX:0 - адрес выделенного блока памяти;
BX - размер максимального свободного блока (в параграфах),
если выделить блок указанной длины невозможно.
AX - код ошибки, если установлен бит переноса.
Часто для определения размера максимального блока используют вызов функции с параметром BX=0FFFFh.
Т.е. адрес возвращается в АХ, а не ВХ. Где ты вообще такое описание взял?

Про мыло - брось кусок ответа - посмотрим


Отправил эксперт: Gn
Эксперт отправил ответов (всего): 9

Экспертная группа: Общие вопросы по программированию на Ассемблере под DOS

Подписаться на рассылки

Рассылки Subscribe.Ru
Ассемблер? Это просто! Учимся программировать
Ассемблер? Это просто! Учимся программировать (FAQ)

Форма подачи вопроса

ВНИМАНИЕ!!! Пожалуйста, НЕ высылайте один вопрос сразу нескольким подгруппам! Дополнения к вопросам, на которые эксперт уже ответил НЕ следует направлять ведущему рассылки (я не успеваю!). Просто скомбинируйте первый вопрос и дополнение к нему, а затем заново отправьте его, используя приведенную ниже форму!

Нажимайте кнопку "Отправить" только ОДИН раз и дождитесь полной загрузки страницы, иначе вопрос будет продублирован!


Ваше имя *:

Ваш e-mail *:

Подгруппы:

Вопрос *:

Прилагаемая программа (если необходимо):


Регистрация в качестве эксперта

Архив выпусков


Ведущий рассылки,

Калашников Олег: Assembler@Kalashnikoff.ru
ICQ No.:
68951340
URL сайта подписчиков: http://www.Kalashnikoff.ru

______________

По вопросам сотрудничества, рекламы и спонсорства обращайтесь:

  1. Публичное размещение материала из рассылки: Cooperation@Kalashnikoff.ru
  2. Реклама на сайте, в книге и рассылках: http://www.Kalashnikoff.ru/Reklama.html, Reklama@Kalashnikoff.ru
  3. Издание книги (спонсорство): Sponsor@Kalashnikoff.ru

Рассылка 'Ассемблер? Это просто! Учимся программировать (FAQ)' Рассылка 'Ассемблер? Это просто! Учимся программировать'


(C) Москва, 2001. Авторское право принадлежит Калашникову О.А. Публичное размещение материала из рассылки, а также его использование полностью или частично в коммерческих или иных подобных целях без письменного согласия автора влечет ответственность за нарушение авторских прав.


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

В избранное