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

среда, 9 ноября 2011 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Дистанционные курсы немецкого. Все уровни. Пробные уроки бесплатно!
  
  
Ботильоны Caprice, купить за <nobr>4 299 руб.</nobr> Ботильоны Caprice, купить за 4 299 руб.
Изящные кожаные ботильоны на молнии и шнуровке - то, что нужно современной жительнице большого города. Верх интересно декорирован фигурной строчкой. Колодка удобная, выполнена с учетом особенной женской стопы.
  

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

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

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

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

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

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

Номер выпуска:1487
Дата выхода:09.11.2011, 14:30
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:190 / 61
Вопросов / ответов:1 / 2

Консультация # 184374: Здравствуйте! Прошу помощи в следующем вопросе: необходимо написать программу на TASM Массив чисел из диапазона 00000000b..11111111b размерностью [1..N] вводится с клавиатуры, где N – число из диапазона 2..9, вводимое с клавиатуры. Вывести на экран результат побитовой логической операции «ИЛИ» для элементов с индексами 2, N и N div 2, где d...


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

Здравствуйте! Прошу помощи в следующем вопросе:
необходимо написать программу на TASM
Массив чисел из диапазона 00000000b..11111111b размерностью [1..N] вводится с клавиатуры, где N – число из диапазона 2..9, вводимое с клавиатуры. Вывести на экран результат побитовой логической операции «ИЛИ» для элементов с индексами 2, N и N div 2, где div – операция целочисленного деления.

Дата отправки: 04.11.2011, 14:14
Вопрос задал: Невалёный Виталий Владимирович (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Невалёный Виталий Владимирович!

Смотрите приложение. Программа Tasm, компилоировать как СОМ-файл.
Будут вопросы обращайтесь в мини-форум.
Удачи!

Приложение:

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 04.11.2011, 16:20

5
нет комментария
-----
Дата оценки: 04.11.2011, 18:36

Рейтинг ответа:

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


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

Здравствуйте, Невалёный Виталий Владимирович!
Еще один вариант.
Формируем exe-программу командами
tasm name
tlink name

Примерный вывод:

Код :
Enter N: 3 Enter num[1]: 1111 Enter num[2]: 1010 Enter num[3]: 10101010 Result = 00001010 or 00001111 or 10101010 = 10101111 Press any key

Код :
code	segment	'code'		;начало сегмента кода 	assume	cs:code,ds:data,ss:stk  main	proc	 	mov	ax, data	;адрес сегмента данных 	mov	ds, ax		;в ds 	mov	es, ax		;в es  	lea	dx, sEnterN	;приглашение для ввода N 	mov	ah, 9 	int	21h repeat: 	mov	ah, 0		;введем один код 	int	16h 	cmp	al, '2'		;ждем число 2-9 	jl	repeat 	cmp	al, '9' 	jg	repeat 	mov	dl, al		;сохраним для вывода 	and	ax, 000fh	;сделаем числом 2-9 	mov	N, ax		;N = AX 	mov	ah, 2		;выведем из dl 	int	21h  	mov	ah, 0		;подождем нажатие (например, на Enter),  	int	16h		;чтобы сразу не перескакивало дальше 	 	lea	dx, sEOL	;перейдем на новую строку 	mov	ah, 9 	int	21h  	xor	bx, bx		;индекс с 0 enterLoop: 	call	InputBin	;введем байт, как строку бит, результат в al 	mov	sNum[bx], al	;сохраним в буфере 	inc	bx		;увеличиваем индекс 	cmp	bx, N		;ввели все числа 	jl	enterLoop  	lea	dx, sResult	;'Result = ' 	mov	ah, 9 	int	21h  	mov	bx, 1		;индекс 2-го элемента (считаем с 0) 	mov	al, sNum[bx]	;элемент 	mov	dl, al		;здесь будем считать 	lea	si, sOr		;строка 'or' за двоичной строко 	call	PrintBin	;выведем  	mov	bx, N		;число элементов 	shr	bx, 1		;пополам 	dec	bx		;-1, т.к. счет с 0 	mov	al, sNum[bx] 	or	dl, al		;операция 	call	PrintBin  	mov	bx, N		;число элементов 	dec	bx		;индекс последнего (счет с 0) 	mov	al, sNum[bx] 	or	dl, al		;операция 	lea	si, sEq 	call	PrintBin  	mov	al, dl		;посчитанный результат 	lea	si, sEOL	;в конце - перевод строки 	call	PrintBin  finish: 	lea	dx, sAny	;press any key 	mov	ah, 9 	int	21h  	mov	ah, 0 	int	16h		;ждем any key  	mov	ax, 4c00h 	int	21h		;выход в ДОС main	endp  InputBin	proc		;ввод строки бит 	push	bx 				;сформируем подсказку 	lea	dx, sEnter	;Enter num[ 	mov	ah, 9 	int	21h 	mov	dl, bl		;индекс числа 	add	dl, '1'		;добавляем 1 (чтобы выглядело, как счет с 1) 	mov	ah, 2		; и превращаем в символ, выводим 	int	21h 	lea	dx, sTail	;'] = ' 	mov	ah, 9 	int	21h 				;вводим максимум 8 бит 	mov	cx, 8		;число бит 	mov	bl, 0		;здесь будем накапливать число IB_loop: 	mov	ah, 0		;ждем код 	int	16h 	cmp	al, 0dh		;по Enter-у выходим 	je	IB_ret 	jcxz	IB_loop		;в конце ввода 8 бит ждем только Enter 	cmp	al, '0'		;ждем только 0 или 1 	je	IB_bin 	cmp	al, '1' 	jne	IB_loop IB_bin: 	mov	dl, al		;сохраним для вывода 	shr	al, 1		;получим в бите FC младший бит (0 или 1) 	rcl	bl, 1		;вдвинем в результат 	mov	ah, 2 	int	21h		;выведем на экран из dl 	loop	IB_loop		;по всем 	jcxz	IB_loop		;ввели все 8, ждем Enter! IB_ret: 	lea	dx, sEOL	;перейдем на новую строку 	mov	ah, 9 	int	21h 	mov	al, bl		;введенное побитно число 	pop	bx 	ret InputBin	endp  PrintBin	proc		;вывод байта в al в виде строки бит 	push	dx 	mov	bl, al		;сохраним в bl 	mov	cx, 8		;8 бит 	mov	ah, 2		;ф-я вывода символа из dl на экран PB_loop: 	shl	bl, 1		;сдвигаем на 1 бит влево. Старший бит в FC 	mov	dl, '0'		;готовим символ 	adc	dl, 0		;сложим с битом FC 	int	21h		;выведем 	loop	PB_loop 	mov	dx, si		;строка для вывода 	mov	ah, 9 	int	21h 	pop	dx 	ret PrintBin	endp code	ends  data	segment sEnterN	db	'Enter N: $' sEnter	db	'Enter num[$' sTail	db	']: $' sResult	db	'Result = $' sOr	db	' or $' sEq	db	' = $' sEOL	db	0dh,0ah,'$' sAny	db	'Press any key$' N	dw	? sNum	db	9 dup(?) data	ends  stk	segment	stack 	dw	100h dup (?) stk	ends  	end	main 

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

5
нет комментария
-----
Дата оценки: 04.11.2011, 18:42

Рейтинг ответа:

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


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

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

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


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

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    05 ноября 2011, 06:33
RFpro.ru: Ассемблер? Это просто! Учимся программировать    04 ноября 2011, 01:39
RFpro.ru: Ассемблер? Это просто! Учимся программировать    03 ноября 2011, 00:33

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

9 ноября 2011 отмечают:
Международный день против фашизма, расизма и&nbsp;антисемитизма
День украинской письменности и&nbsp;языка
Особый день в&nbsp;истории Германии
День преподобного Нестора Летописца
Фестиваль оливок в&nbsp;Испании

Именины: Андрей, Афанасий, Вилли, Иван, Капитолина, Максим, Николай, Степан, Терентий
 
 
  
Только горячие цены! Только горячие цены!
Новое поступление кожанных курток. Скидка до 60%!

  Кредит наличными до 300 тыс. руб Кредит наличными до 300 тыс. руб
В банке "Русский Стандарт" - за 1 день. Кредит для всех. Минимум документов.

  Самый удачный и выгодный шопинг России! Самый удачный и выгодный шопинг России!
Экспресс доставка по всей России Туфли от 1150 рублей.

 
  

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Клуб для людей, у которых дома живут Кошки
Кошка – одно из немногих животных, простое созерцание которого способно приносить огромное эстетическое наслаждение!
Темы: 4416   Участники: 3822
  Европа - это просто!
Иммиграция и жизнь в ЕС. Иммиграционные консультации по Европе. Общение участников рассылок проекта Европа - это просто! Советы, ответы, пожелания и информация по Европе от жителей.
Темы: 186   Участники: 3012
  Секреты здорового долголетия
Как сохранить здоровье, как сохранить память, умственную способность, как сохранить молодость? Как оставаться независимым? Как оставаться полезным своим...
Темы: 1355   Участники: 4837
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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