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

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


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

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 302
от 29.11.2005, 23:27

Администратор:Калашников О.А.
В рассылке:Подписчиков: 259, Экспертов: 23
В номере:Вопросов: 1, Ответов: 1


Вопрос № 30174: Здравствуйте, эксперты. Условие задачи такое "В однобайтовом массиве заменить все числа, являющиеся простыми их порядковыми номерами" Задачу я нашел в нэте, но не разобрался что е чему, знаю только то, что 5550 - это вводимые числа, и ААА0 ...

Вопрос № 30.174
Здравствуйте, эксперты. Условие задачи такое "В однобайтовом массиве заменить все числа, являющиеся простыми их порядковыми номерами" Задачу я нашел в нэте, но не разобрался что е чему, знаю только то, что 5550 - это вводимые числа, и ААА0 - это таблица простых чисел от 2 до D (13h). Обьясните пожалуйста алгоритм этой проги. и нет ли там ошибок? (Выполинть в debug.exe) Вот текст :



Приложение:

Отправлен: 24.11.2005, 23:24
Вопрос задал: S1lveR (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ayl
Здравствуйте, S1lveR!

Есть. Ты либо не правильно метки проставил, но конструкция:

1. mov ...
call 1

приводит к бесконечному циклу.

Далее, в команде с меткой 1 в AL загружается значение по адресу SI+BX, но значение регистра BX не задано. В принципе, может произойти обращение по неопределенному адресу.

Команда loop подразумевает уменьшение регистра CX при своем выполнении. Но значение этого регистра также не устанавливается.

Вообще непонятно назначение этой команды. Смотри:

loop 2
2: ...

loop выполняется в случае, если CX != 0. Если CX = 0, то выполняется следующая команда. То есть, по-любому, следующей будет команда под меткой 2. Тогда зачем loop?

Последовательность команд

mov ah,[DI+bx]
mov ah,al

противоречит друг другу. В первой ты загружаешь в регистр AH значение из памяти, а в следующей тут же его затираешь значением из регистра AL. Либо перепутаны регистры во второй команде, либо первая команда - лишняя.

[DI+dl] - такой адресации не существует!

В общем, это не код, а набор команд. Про алгоритм тут вообще говорить не приходится.

---------
Трудное - то, что можно сделать немедленно. Невозможное - то, для выполнения чего требуется немного больше времени
Ответ отправил: Ayl (статус: Академик)
Отправлен: 25.11.2005, 11:18


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100 hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=314124&im=101&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("HotLog")

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Архив рассылки
Отписаться
Вспомнить пароль

В избранное