|
|
|
Oxidous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 24.9.2015 Репутация: нет Всего: нет |
Всем доброго времени суток,
Задание такое (делается в emu8086): Пользователь вводит координаты левого верхнего (x1, y1) и правого нижнего (x2, y2) углов прямоугольника. Программа должна нарисовать прямоугольник на экране и вывести его периметр (P) и площадь (S). Примечание: Для ввода/вывода использовать прерывания (INT). Не использовать никакие команды "emu, macro" и т.п. Вот код:
А можно ли чем то заменить директиву "include emu8086.inc"? Просто препод хочет,чтоб не использовались директивы и всякие команды macro. Чем тогда можно заменить "call scan_num" и "call CLEAR_SCREEN"? Чтоб убрать из программы emu8086.inc? Заранее благодарю за ответ. |
|||
|
||||
leniviy |
|
|||
Опытный Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
> можно ли чем то заменить директиву "include emu8086.inc"?
находишь файл emu8086.inc и добавляешь его содержимое вместо директивы include. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
ФедосеевПавел |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Если вы умеете читать, то
1. CLEAR_SCREEN - очистку экрана можно реализовать через int 10h AH=06h. 2. scan_num - обычный ввод числа - через int16h и умножение-сложение. пример из FAQ, вариации на FAQ. Назначение остального (DEFINE_SCAN_NUM, DEFINE_CLEAR_SCREEN) я не понимаю. |
|||
|
||||
Oxidous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 24.9.2015 Репутация: нет Всего: нет |
Доброго времени суток,
Выкладываю код программы, быть может кому-то пригодится:
|
|||
|
||||
Oxidous |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 24.9.2015 Репутация: нет Всего: нет |
И ещё такой вопрос
Есть второй вариант этого задания - Для ввода\ вывода использовать прерывание (INT). Не использовать никаких emu, macro и т.п. команд. 2 вариант: Пользователь вводит координаты верхнего левого (x1, y1) и правого нижнего (x2, y2)углов прямоугольника. Нужно начертить на экране прямоугольник и вывести на экран его площадь (S) и периметр (P). Периметр и площадь, вроде как, некорректно считаются для второго варианта, а потому нужно, чтоб из координат второй точки вычитались координаты первой точки. Допустим, пусть координаты первой точки (x1, y1) будут 10 и 10, а координаты второй точки (x2, y2) 100 и 100. Тогда вычитаем первую точку из второй (100-10 и 100-10), получаем 90 и 90, и уже по этим полученным значениям считаем периметр и площадь прямоугольника. Вот код вводимых координат первой точки:
Вот код вводимых координат второй точки:
Вот код периметра и площади прямоугольника:
Как я понимаю, первые координаты записываются в CX регистр. Как в мне в периметре и площади прямоугольника вычесть из значений второй координаты значения первой координаты? Я понимаю, что это делается командой SUB CX, BX, но при работе программы периметр и площаль остаются такими же, как при умножении значений второй координаты для площади(a*b)и 2*(a+b) - для периметра. Со всем разобрался. Тема больше не актуальна. Благодарю за помощь Это сообщение отредактировал(а) Oxidous - 29.12.2015, 08:42 |
||||||
|
|||||||
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |