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

четверг, 7 февраля 2013 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
  

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

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

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

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

Асмик Гаряка
Статус: Советник
Рейтинг: 11015
• повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4028
• повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1791
• повысить рейтинг »

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

Номер выпуска:1535
Дата выхода:08.02.2013, 10:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:65 / 22
Вопросов / ответов:1 / 1

Консультация # 187148: Здравствуйте! У меня возникли сложности с таким вопросом: Можете мне помочь написать прогу Microsoft Visual C++ 6? Блок схема есть Нужно типа написать программные коды .Мне это очень интересно.Поможете? ...


Консультация # 187148:

Здравствуйте! У меня возникли сложности с таким вопросом: Можете мне помочь написать прогу Microsoft Visual C++ 6?

Блок схема есть


Нужно типа написать программные коды .Мне это очень интересно.Поможете?

Дата отправки: 05.02.2013, 09:27
Вопрос задал: Питулин Александр Михайлович (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Питулин Александр Михайлович!
В связи с пожеланиями, программа на ассемблере 86, под tasm, формат com

PinD = rab изменено на rab = PinD. Так будет правильнее...

Если что непонятно, спрашивайте, отвечу на все Ваши вопросы...

Код :
 	.model	tiny  ;Будем считать, что PORTD - это порт 400h, а PORTB - 500h PORTD	equ	400h PORTB	equ	500h  	.code 	.286 	.startup 				;инициализация 	mov	cl, 0		;Ugol = 0 	mov	dx, PORTD	;начинаем работать с портом D wait_pd5_0: 	in	al, dx		;считываем состояние КН3 	test	al, 00100000b	;PD.5 = 0? 	jnz	wait_pd5_0	;ждем 0  	mov	dx, PORTB 	in	al, dx		;считываем PB 	test	al, 00000001b	;проверяем бит 0 	jz	get_rab		;=0 - считываем rab  	mov	dx, PORTD	;!=0 wait_pd1_0: 	in	al, dx		;считываем PD 	test	al, 00000010b	;проверяем PD.1 	jnz	wait_pd1_0	;ждем 0  	in	al, dx 	and	al, 11100111b	;PD.3=0, PD.4=0 	out	dx, al 	jmp	get_pb0		;на считывание PB.0  get_rab:			;считываем rab 	mov	dx, PORTD	;с порта PD wait_rab: 	in	al, dx		;rab = PORTD 	shr	al, 2		;rab = rab >> 2 	test	al, al		;rab == 0 ? 	jz	wait_rab	;ждем не 0  	mov	ah, al		;сохраним ah=rab  wait_pd0_0: 	in	al, dx		;считываем PD 	test	al, 00000001b	;проверяем PD.0 	jnz	wait_pd0_0	;ждем 0  	in	al, dx 	and	al, 11101011b	;PD.2=0, PD.4=0 	out	dx, al  	mov	dx, PORTB	;PB wait_pb1_0:			 	in	al, dx		;считываем PB.1 	test	al, 00000010b	;ждем 0 	jnz	wait_pb1_0  	inc	cl		;Ugol = Ugol + 1  	cmp	cl, ah		;Ugol < rab 	jae	pd2_off		;нет - на выключение pd.2  wait_pb1_1: 	in	al, dx		;считываем PB.1 	test	al, 00000010b	;ждем  1 	jz	wait_pb1_1 	jmp	wait_pb1_0	;на ожидание PB.1 = 0  pd2_off:			;выключение PD.2 	mov	dx, PORTD 	in	al, dx		;считываем PD 	or	al, 00000100b	;PD.2 = 1 	out	dx, al 	 wait_pd1_0_2: 	in	al, dx		;считываем PD.1 	test	al, 00000010b	;ждем 0 	jnz	wait_pd1_0_2  	and	al, 11110111b	;включаем PD.3 = 0 	out	dx, al  get_pb0: 	mov	dx, PORTB wait_pb0_0: 	in	al, dx		;считываем PB.0 	test	al, 00000001b	;ждем 0 	jnz	wait_pb0_0  	mov	dx, PORTD	;включаем PD.3 = 1, PD.4 = 1 	in	al, dx 	or	al, 00001100b 	out	dx, al  	jmp	wait_pd5_0	;на основной цикл (считывание состояния КН3, т.е. PD.5)   	end

Версия программы, когда порты AVR отображаются на ячейки памяти.
Так удобнее отлаживать алгоритм работы...
Код :
 	.model	tiny  	.data PORTD	db	? PORTB	db	?  	.code 	.286 	.startup 				;инициализация 	mov	cl, 0		;Ugol = 0 wait_pd5_0: 	mov	al, PORTD	;считываем состояние КН3 	test	al, 00100000b	;PD.5 = 0? 	jnz	wait_pd5_0	;ждем 0  	mov	al, PORTB	;считываем PB 	test	al, 00000001b	;проверяем бит 0 	jz	get_rab		;=0 - считываем rab  				;!=0 wait_pd1_0: 	mov	al, PORTD	;считываем PD 	test	al, 00000010b	;проверяем PD.1 	jnz	wait_pd1_0	;ждем 0  	mov	al, PORTD 	and	al, 11100111b	;PD.3=0, PD.4=0 	mov	PORTD, al 	jmp	get_pb0		;на считывание PB.0  get_rab:			;считываем rab 	mov	al, PORTD	;rab = PORTD 	shr	al, 2		;rab = rab >> 2 	test	al, al		;rab == 0 ? 	jz	get_rab		;ждем не 0  	mov	ah, al		;сохраним ah=rab  wait_pd0_0: 	mov	al, PORTD	;считываем PD 	test	al, 00000001b	;проверяем PD.0 	jnz	wait_pd0_0	;ждем 0  	mov	al, PORTD 	and	al, 11101011b	;PD.2=0, PD.4=0 	mov	PORTD, al  wait_pb1_0:			 	mov	al, PORTB	;считываем PB.1 	test	al, 00000010b	;ждем 0 	jnz	wait_pb1_0  	inc	cl		;Ugol = Ugol + 1  	cmp	cl, ah		;Ugol < rab 	jae	pd2_off		;нет - на выключение pd.2  wait_pb1_1: 	mov	al, PORTB	;считываем PB.1 	test	al, 00000010b	;ждем  1 	jz	wait_pb1_1 	jmp	wait_pb1_0	;на ожидание PB.1 = 0  pd2_off:			;выключение PD.2 	mov	al, PORTD	;считываем PD 	or	al, 00000100b	;PD.2 = 1 	mov	PORTD, al 	 wait_pd1_0_2: 	mov	al, PORTD	;считываем PD.1 	test	al, 00000010b	;ждем 0 	jnz	wait_pd1_0_2  	and	al, 11110111b	;включаем PD.3 = 0 	mov	PORTD, al  get_pb0: 	mov	al, PORTB	;считываем PB.0 	test	al, 00000001b	;ждем 0 	jnz	get_pb0  	mov	al, PORTD 	or	al, 00001100b	;включаем PD.3 = 1, PD.4 = 1 	mov	PORTD, al  	jmp	wait_pd5_0	;на основной цикл (считывание состояния КН3, т.е. PD.5)   	end

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 05.02.2013, 15:13
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


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

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    19 января 2013, 14:32
RFpro.ru: Ассемблер? Это просто! Учимся программировать    05 декабря 2012, 14:04
RFpro.ru: Ассемблер? Это просто! Учимся программировать    21 октября 2012, 13:33

Все выпуски рассылки

8 февраля 2013 отмечают:
День российской науки
День военного топографа
День словенской культуры, День Прешерна
Сраоши
Винный фестиваль в&nbsp;Марльборо

Именины: Аркадий, Гавриил, Давид, Иван, Иосиф, Климент, Мария, Петр, Федор
 
 

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Русские на Украине-взгляд на Россию!
Пишем обо всем: когда и как оказались вне России, проблемные семейные, религиозные, политические, денежные, любовные... За Россией наблюдаем, сопереживаем, любим, радуемся, осуждаем..... Хотим быть вместе...
Темы: 77   Участники: 811
  Литература от А до Я
Группа для всех интересующихся литературой. Всеми её вопросами и нюансами: от теории до практики. Для графоманов и профессионалов. Правила добавления книг для скачивания
Темы: 674   Участники: 2064
  Интернет для начинающих пользователей
Группа начинающих пользователей Интернета. Советы, статьи, инструкции новичкам. Если вы недавно подключились к Интернету и у вас на счет него есть куча ...
Темы: 3341   Участники: 18860
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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