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

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


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

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 865
от 02.10.2007, 23:05

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


Вопрос № 103644: Здраствуйте Уважаемые эксперты, помогите пожалуйста мне написать програмку. Мне дали такое задание, Нужно написать прогу, которая в введённой строке заменит большие буквы на маленькие, а маленькие на большие, я пробовал сам, код в приложении.Тут ...

Вопрос № 103.644
Здраствуйте Уважаемые эксперты,
помогите пожалуйста мне написать програмку. Мне дали такое задание, Нужно написать прогу, которая в введённой строке заменит большие буквы на маленькие, а маленькие на большие, я пробовал сам, код в приложении.Тут код неполный, как дальше я незнаю :( покачто у меня возникли 3 вопроса, первый связан с этим:
код Ассемблера
1:
mov al, buffer+2

при первом проходе цикла всё хорошо, но как сделать чтобы дальше считывать 2,3 итд символы с переменной buffer т.е. как программно изменять эту двойку на тройку итд. плюс тотже вопрос с результатом. еще вопрос, как огранизовать счётчик, чтобы знать сколько раз проганять этот цикл, т.е. как это

mov si, offset buffer ;uznajom dlinny stroki (etot kusok ja skopiroval z drugogo isxodnika, i
mov bl, [si+1] ;nesovsem ponimaju kak eto rabotaet, mozet ktonibut smozet objasnit'?
mov ah, 0

использовать в цикле. и последний вопрос, этот код я писал используя програму emu8086, в ней всё нормально компилируется и ехе-шник работает, но при компиляции tasm'ом пишет ошибки

Заранее Спасибо.
С Уважением, Станислав.

Приложение:

Отправлен: 27.09.2007, 23:04
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Egugondiy
Здравствуйте, Станислав! Ниже преведина процедура которая выполняет то что тебе нужно. Перед ее вызовом помести в si смещение строки которую необходимо конвертировать. Удачи.

Приложение:

Ответ отправил: Egugondiy (статус: 1-ый класс)
Ответ отправлен: 28.09.2007, 03:43
Оценка за ответ: 4

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Станислав!

В приложении исправленная Ваша программа.
У Вас не правильно были определенны сегменты.
Сегмент программы описывается директивами SEGMENT и ENDS.
имя_сегмента segment readonly выравн. тип разряд 'класс'
...
имя_сегмента ends

Использование упрощенных директив описаний сегмента .DATA, .STACK, .CODE возможно только после указания модели организации памяти
.model модель,язык,модификатор

Подробности Вы можете найти в книге С. Зубкова, глава 3.3. Организация программы.

Для функции DOS 0Ah, буфер организован следующим образом:
bufferMax db 121;максимальный размер
bufferSize db ?;длина введенной строки
buffer db 121 dup(?);сама строка

т.е. 121 байт для самого буфера и 2 байта для указания максимального размера и длины введенной строки.

Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 28.09.2007, 12:24
Оценка за ответ: 5

Отвечает: Farit
Здравствуйте, Станислав!
на первы вопрос нужно организовать цикл при котром надо прибовлять по 1 к необходимому регистру
Ответ отправил: Farit (статус: 1-ый класс)
Ответ отправлен: 29.09.2007, 15:14


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60.05 от 27.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное