|  Вывод строки на экран 2 способами, Не правильно работает программа. | 
 ПРАВИЛА РАЗДЕЛА!!!
 ПРАВИЛА РАЗДЕЛА!!!1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE] 
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали! 
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
 
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
|   | 
|  Вывод строки на экран 2 способами, Не правильно работает программа. | 
| Neon6868 |    9.03.2008 3:19 
				 Сообщение
					#1				
			 | 
| Пионер   Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация:  0    | Задание: Написать на ассемблере IBM PC 2 программы вывода строки на экран: 1)прямой записью в видеопамять 2)с использованием функций BIOS. Направление строки снизу вверх, в цветности задать цвет фона, символы вывести разными цветами. Проверьте плиз правильно работают программы или нет? Я сам проверить не могу. У меня на виндусе вообще ничего не выводится, могу проверить только на линуксе в универе. У меня есть сомнения, что вторая программа не правильно работает! Заранее спасибо!   Программа №1. 
 Программа №2. 
 | 
| xds |  9.03.2008 6:58 
				 Сообщение
					#2				
			 | 
|  N337     Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация:  26    | Программа №1 работает в Windows после небольших дополнений (под словом "линукс" имелся в виду DosBox?   ) : model small -------------------- The idiots are winning. | 
| xds |  9.03.2008 7:42 
				 Сообщение
					#3				
			 | 
|  N337     Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация:  26    | Второй вариант я переделал: model small -------------------- The idiots are winning. | 
| Neon6868 |    12.03.2008 16:43 
				 Сообщение
					#4				
			 | 
| Пионер   Группа: Пользователи Сообщений: 146 Пол: Мужской Репутация:  0    | Спасибо за помощь! А нельзя мне сказать где во 2 программе ошибки и помочь их исправить? Просто я хочу понять что я делал не так, да и твою программу еще понять надо, а я в ассемблере пока не очень разбираюсь. | 
| xds |  12.03.2008 19:36 
				 Сообщение
					#5				
			 | 
|  N337     Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация:  26    | Основные ошибки: 1. cx одновременно используется и как счетчик цикла, и как параметр функции вывода символа (int 10h, ah = 2); в итоге, сделали cx = 1 - выводить один экземпляр символа, а про loop забыли. 2. Забыли сохранять цвет фона (по условию). Перед выводом символа надо узнать атрибут в позиции вывода - функция int 10h, ah = 8. В моем варианте для чтения строки используются команда lodsb, которая делает следующее: al = ds:[si], если df = 0, то si = si + 1 иначе si = si - 1. Значение флага направления df задается командами cld и std: cld: df = 0; std: df = 1. В моем варианте признаком конца строки является нулевой байт. Вообще, достаточно подробно откомментировано - читай по порядку и разбирайся. -------------------- The idiots are winning. | 
| Jil |  1.04.2010 14:46 
				 Сообщение
					#6				
			 | 
| Гость  | А можете если не трудно.сказать что и где нужно исправить что бы как в видео режиме так и в биосе что бы цвет фона был цветом символов???=) | 
| Федосеев Павел |  2.02.2015 18:07 
				 Сообщение
					#7				
			 | 
| Бывалый    Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация:  8    | Покажи, что ты делаешь. | 
|   | 
|   | Текстовая версия | 1.11.2025 0:40 |