Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 04.05.2015, 17:17   #1
Holocaust
 
Регистрация: 04.05.2015
Адрес: Беларусь , Г.Минск.
Сообщений: 8
Репутация: 10
По умолчанию Нужна помощь , либо казнят в вузе.

Друзья-товарищи нужна помощь !
Нужно составить программу формирования звуковых сигналов в соответствии с диаграммой :
Pause Ввести с клавиатуры , число ступенек : 100 . Прерывание по ESC.
Holocaust вне форума   Ответить с цитированием
Старый 04.05.2015, 17:30   #2
Streletz
Профессионал
 
Регистрация: 03.01.2014
Сообщений: 2,550
Репутация: 1018
По умолчанию

Цитата:
Сообщение от Holocaust Посмотреть сообщение
Нужна помощь , либо казнят в вузе.
Самостоятельные попытки были или, как обычно, "сделайте всё за меня"?
__________________
Мой скромный Web-сайт
Фриланс проекты временно не принимаю.
Streletz вне форума   Ответить с цитированием
Старый 04.05.2015, 17:37   #3
Holocaust
 
Регистрация: 04.05.2015
Адрес: Беларусь , Г.Минск.
Сообщений: 8
Репутация: 10
По умолчанию

Моё знание языка assemblera , не дает мне возможностей написать эту программу. Так что попыток не было .
Holocaust вне форума   Ответить с цитированием
Старый 04.05.2015, 17:52   #4
Streletz
Профессионал
 
Регистрация: 03.01.2014
Сообщений: 2,550
Репутация: 1018
По умолчанию

Цитата:
Сообщение от Holocaust Посмотреть сообщение
Так что попыток не было .
Тогда Вам во фриланс. Делать за Вас такую задачу с нуля просто так вряд ли кто-то будет. Без обид.
__________________
Мой скромный Web-сайт
Фриланс проекты временно не принимаю.
Streletz вне форума   Ответить с цитированием
Старый 04.05.2015, 21:16   #5
R71MT
Профессионал
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,137
Репутация: 938
По умолчанию

Цитата:
Holocaust
Ввести с клавиатуры, число ступенек: 100. Прерывание по ESC.
Круто!!! Это в каком вузе дают такие задачки?! Видимо тема "Позиционирование курсора" ?!
Тогда используй функцию 02h, прерывания INT-10h:
Код:

   Вход:  AH = 02h
          BH = страница
          DH = строка 
          DL = столбец

В начале, ставиш видеорежим 80x25. Это позволит ввести тебе не 100, а 80 ступенек.
Если нужно именно 100, то меняй видеорежим...

Рисовать ступеньки будеш клавишами "подчёркивание" и "вертикальная черта".
Дальше, устанавливаеш курсор в левый/нижний угол экрана, и с каждым разом меняеш в цикле значение регистров DH и DL (декремент).

Если DH = 12 (половина экрана), то меняеш декремент на инкремент.
Если DL = 40 (половина экрана), то не трогаеш DH 5 раз (текст 'Pause')
..потом опять увеличиваеш строку.

Одним словом - задание никак не для вуза! Вот тебе код на FASM:
Код:

use16
org 100h
jmp start

text  db  ' =================================== ',13,10
      db  ' Programm "BLEEP" /Holocaust(c)/ $'

start:
   mov  al,3           ; текстовый режим дисплея (80х25)
   int  10h

   mov  dx,text        ; сообщение для юзера
   call message

   mov  dh,24          ; строка(24)
   mov  dl,0           ; столбец(0)
   call curPos         ; курсор на начальную позицию

upWard:
   call presskey       ; ждём символ с клавиатуры
   cmp  al,27          ; это ESC ?!
   je   quit           ; если да - на выход!

   cmp  dh,12          ; сравниваем со-строкой(12)
   je   downWard       ; если мы в середине экрана - на пора вниз
   dec  dh             ; уменьшаем строку на 1
   inc  dl             ; увеличиваем столбец на 1
   call curPos         ; курсор на позицию
   jmp  upWard         ; ждём очередной символ

downWard:
   call presskey       ; ждём символ с клавиатуры
   cmp  al,27          ; это ESC ?!
   je   quit           ; если да - на выход!

   cmp  dh,24          ; сравниваем со-строкой(24)
   je   tPause         ; если мы в внизу экрана, то печатаем текст "Pause"
   inc  dh             ; увеличиваем строку на 1
   inc  dl             ; увеличиваем столбец на 1
   call curPos         ; курсор на позицию
   jmp  downWard       ; ждём очередной символ

tPause:
   mov  cx,5           ; ограничение в 5 символов
cLoop:
   xor  ax,ax          ; ждём символ
   int  16h
   int  29h            ; печатаем его
   loop cLoop          ; мотаем цикл 5 раз
   add  dl,5           ; пропускаем 5 столбцов
   jmp  upWard         ; прыжок на верх

quit:
   ret                 ; на выход..

;------ необходимые процедуры----------------------------------------------|
curPos:
   mov  ah,02          ; запрос на установку курсора
   int  10h
ret
presskey:
   xor  ax,ax          ; ждём символ..
   int  16h
   int  29h            ; печатаем его
ret
message:
   mov  ah,9           ; функция вывода сообщений
   int  21h
ret

__________________
Нашедшего выход - затаптывают первым..
R71MT вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разработать систему тестирования в любой области и тематике. Желательно либо C++, либо Delphi, либо VBA Olya125 Помощь студентам 2 27.04.2015 16:24
Напишите пожалуйста программу ( либо на си, либо на си++ либо на паскале) . Заранее спасибо. London1 Помощь студентам 1 03.04.2014 10:34
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Как запустить какую - либо программу Windows с помощь кнопки на форме? РЫЖЫЙ :( Общие вопросы Delphi 1 04.11.2007 14:55


23:30.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru