WMmail.ru - сервис почтовых рассылок

суббота, 28 мая 2011 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Верите в магию числа 13? Повод попробовать новую версию популярной САПР -- КОМПАС-3D V13!
  
  
Надоела сутулая спина и обвислый живот? Надоела сутулая спина и обвислый живот?
Тренажер Ab Rocket - великолепный пресс всего за несколько недель!

  Худеть не напрягаясь - легко! Худеть не напрягаясь - легко!
Теряйте лишние килограммы с поясом для похудения Vibra Tone.

  Вспомни детство! Вспомни детство!
Аппарат для приготовления сахарной ваты - отличное угощение!

 
  

  Мои подписки      Мои группы      Мои новости     
        Автор 
Калашников О.А.
      
  
Компьютеры и интернет   →   Софт   →   Программирование   →   RFpro.ru: Ассемблер? Это просто! Учимся программировать
  
RFpro.ru: Ассемблер? Это просто! Учимся программировать
 
 

Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

Boriss
Статус: Академик
Рейтинг: 2670
• повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2258
• повысить рейтинг »
Жерар
Статус: Профессор
Рейтинг: 2253
• повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1453
Дата выхода:29.05.2011, 02:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:216 / 64
Вопросов / ответов:1 / 1

Вопрос № 183305: Здравствуйте, уважаемые эксперты! Прошу помощи в следующем вопросе: Необходимо разработать программу обработки символьной информации, реализующую функции: - инициализация ( вывод титульной таблички ); - передача строки символо...



Вопрос № 183305:

Здравствуйте, уважаемые эксперты! Прошу помощи в следующем вопросе:
Необходимо разработать программу обработки символьной информации, реализующую
функции:
- инициализация ( вывод титульной таблички );
- передача строки символов, длиной не более Nmax, из задан-
ной области памяти в буферную область;
- выполнение заданного в задании 1 преобразования введенной
строки, вывода результирующей строки символов на экран и
передача в приемную область памяти.
Также разработать на языке Pascal тестирующую программу для проверки
функционирования ассемблерной программы. Ассемблерную программу
включить в программу нa Pascal по принципу встраивания (in-line).

Задание 1.
Преобразование введенных во входной строке десятичных цифр
в шестнадцатиричную систему счисления и вывод на экран.
Предпочтителен MASM 6.11, заранее огромное спасибо.

Отправлен: 24.05.2011, 01:55
Вопрос задал: Митиоглов Борис (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Зенченко Константин Николаевич (Модератор) :
Здравствуйте, Митиоглов Борис !

Программа на паскале(ТР7):
Код :
program q183305;   const     nMax=10;   type     tA=array[1..nMax]of integer;   procedure convert(z:tA;var y:string;x:integer);external; {$L q183305}   var     a:tA;     b:string;     c:integer;   begin{main}     c:=nMax;     while c>0 do{цикл ввода массива}       begin         write('Enter A[',c:2,']:=');         readln(a[c]);         dec(c);       end;     convert(a,b,nMax);{конвертируем массив в строку}     writeln('Result:',b);{выводим результат}     readln;   end.{main}


Подпрограмма на ассемблере(TASM):
Код :
model small code public convert proc convert ;организуем стековый кадр  push bp  mov bp,sp ;загружаем переменные подпрограммы         mov  cx,[bp+04];{nMax}         mov  di,[bp+06];{offset string}         mov  es,[bp+08];{segment string}         mov  si,[bp+10];{offset matrix}         mov  ds,[bp+12];{segment matrix} ;         mov  bx,di;запоминаем адрес длины строки         inc  di;переходим на поле строки  @00:   lodsw;очередное число         push bx;сохраняем счетчик в стеке         mov  bx,4;длина слова  @01:   push ax;сохраняем число         and  ax,0Fh;младшая тетрада         cmp  al,9;больше 9 - 16-я цифра         jbe  @@02;нет переход         add  al,7;корректируем 16-ю цифру  @02:   add  al,'0';переводим число в символ         mov  es:[bx+di],al;записываем в строку         pop  ax;востанавливаем число         shr  ax,1;сдвигаем проверенную тетраду         shr  ax,1         shr  ax,1         shr  ax,1         dec  bx;уменьшаем счетчик         jnz  @@01;не ноль переходим         mov  al,' ';символ разделитель         mov  es:[di],al;записываем в строку         mov  ax,5;константа коррекции         add  di,ax;в регистрах         pop  bx;востанавливаем указатель на длину строки         add  es:[bx],al;корректируем длину строки         loop @@00;пока СХ больше нуля преходим ; ;убираем стековый кадр  mov sp,bp  pop bp ;освобождаем память под переменными подпрограммы  ret 10 endp end


Подпрограмма convert подключается в основную программу во время компиляции. Слишком большое nMax делать не нужно, т.к. длина строки в паскале 256 символов, а под 16-ое число отводится 4-е символа и один символ разделитель, всего получается 50 с копейкой.
вопросы задавайте в мини-форум.
Удачи!
-----
Итерация от человека. Рекурсия — от Бога. — Л. Питер Дойч

Ответ отправил: Зенченко Константин Николаевич (Модератор)
Ответ отправлен: 26.05.2011, 13:31
Номер ответа: 267395
Украина, Киев
Тел.: +38-097-238-60-03
Адрес: Украина, Киев

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 267395 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


     
     
    Комментировать выпуск
         В избранное

    Прошлые выпуски
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    26 мая 2011, 20:13
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    25 мая 2011, 17:04
    RFpro.ru: Ассемблер? Это просто! Учимся программировать    25 мая 2011, 00:43

    Все выпуски рассылки
     
     
      
    Все дело в размере! Все дело в размере!
    Easy Curves - первый тренажер для женской груди!

      Каждому новичку 500 рублей в подарок! Каждому новичку 500 рублей в подарок!
    Вступай в клуб онлайн-шопинга и получай скидки на покупки до 70% !

      Здоровая пища: миф или реальность? Здоровая пища: миф или реальность?
    Аэрогриль Flavorwave Turbo Oven - новое слово в кухонном досуге!

     
      

    Subscribe рекомендует
     
    Компьютеры и интернет  →   рассылки   и   группы
      
    Свое дело
    В данной группе будут публиковаться идеи для открытия собственного дела. Сайт группы Делай деньги.ru Присоединяйтесь! RSS канал с анонсами статей.
    Темы: 299   Участники: 6805
      Отношения между мужчиной и женщиной
    Группа об отношениях между мужчиной и женщиной. Для того, чтобы лучше понять мужчину, нужно узнать его психологию, знать о чём он говорит и что на самом деле имеет ввиду.
    Темы: 2261   Участники: 4897
      Управление сельским хозяйством района
    В России наступил очередной кризис власти. Чиновники, даже за большую зарплату, уже не могут валять дурака. А народ не хочет терпеть издевательства тысяч чиновников, щедро оплаченных нами же.
    Темы: 9   Участники: 144
     
     
     
    Подписан адрес: admin10383.deep@blogger.com
    Код этой рассылки: comp.prog.assembler
    Архив рассылки
    Отписаться:  На сайте  Почтой
    Поддержка подписчиков
    Убрать рекламу
    Другие рассылки этой тематики
    Другие рассылки этого автора
     
    Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

    Комментариев нет:

    Отправить комментарий