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

воскресенье, 2 мая 2021 г.

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

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

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

Лучшие эксперты в разделе

Лысков Игорь Витальевич
Статус: Мастер-Эксперт
Рейтинг: 0
• повысить рейтинг »
Evgen aka Chuma
Статус: 6-й класс
Рейтинг: 0
• повысить рейтинг »
cain52
Статус: 3-й класс
Рейтинг: 0
• повысить рейтинг »

Assembler

Номер выпуска:1787
Дата выхода:02.05.2021, 10:15
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:3 / 25
Вопросов / ответов:1 / 1

Консультация # 200696: Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Разработать на ассемблере и отладить программу, которая выполняет: 1) ввод с клавиатуры двух 4-значных шестнадцатеричных чисел (для ввода с клавиатуры можно использовать любые чис-ла), которые записываются в качестве содержимого регистров BP и DI; 2) вывод на экран содержимого регистров, запо...

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

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Разработать на ассемблере и отладить программу, которая выполняет:
1) ввод с клавиатуры двух 4-значных шестнадцатеричных чисел (для ввода с клавиатуры можно использовать любые чис-ла), которые записываются в качестве содержимого регистров BP и DI;
2) вывод на экран содержимого регистров, заполненных на шаге 1, в виде шестнадцатеричных чисел;
3) вывод на экран содержимого регистров, заполненных на шаге 1, в виде десятичных чисел;
4) вывод на экран содержимого регистров, заполненных на шаге 1, в виде двоичных чисел.
Пример информации на экране:
ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА BP AD56<Enter>
ВВЕДИТЕ СОДЕРЖИМОЕ РЕГИСТРА DI 7F09<Enter>
ЧИСЛА В ШЕСТНАДЦАТЕРИЧНОЙ СИСТЕМЕ
(BP) = AD56 (DI) = 7F09
ЧИСЛА В ДЕСЯТИЧНОЙ СИСТЕМЕ
(BP) = 44374 (DI) = 32521
ЧИСЛА В ДВОИЧНОЙ СИСТЕМЕ
(BP) = 1010110101010110 (DI) = 0111111100001001

Дата отправки: 22.04.2021, 09:58
Вопрос задал: goldkipia (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


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

Дорого времени суток!

Т.к. задание "придумано" не корректно использован компилятор Tasm
Смотрите код:

Код [Assembler]
model	tiny,pascal locals	@@ code org	100h begin:	push	bp @@00:	call	OutStr,offset dbInp 	call	OutStr,offset dbBp 	call	InpNum,16 	jc	@@00 	mov	bp,ax @@01:	call	OutStr,offset dbInp 	call	OutStr,offset dbDi 	call	InpNum,16 	jc	@@01 	mov	di,ax 	call	OutStr,offset dbHex 	call	OutStr,offset dbOut 	call	OutNum,bp,16,4 	call	OutStr,offset dbDi 	call	OutNum,di,16,4  	call	OutStr,offset dbDec 	call	OutStr,offset dbOut 	call	OutNum,bp,10,5 	call	OutStr,offset dbDi 	call	OutNum,di,10,5  	call	OutStr,offset dbBin 	call	OutStr,offset dbOut 	call	OutNum,bp,2,16 	call	OutStr,offset dbDi 	call	OutNum,di,2,16 	pop	bp 	ret OutStr	proc	a:word uses	ax,dx 	mov	ah,9 	mov	dx,a 	int	21h 	ret OutStr	endp OutNum	proc	a:word,b:word,c:word uses	ax,bx,cx,dx 	mov	ax,a 	mov	bx,b 	xor	cx,cx @@01:	xor	dx,dx 	div	bx 	cmp	dl,10 	jb	@@02 	add	dl,7 @@02:	add	dl,'0' 	push	dx 	inc	cx 	or	ax,ax 	jnz	@@01 @@03:	cmp	cx,c 	je	@@04 	mov	al,'0' 	push	ax 	inc	cx 	jmp	@@03 @@04:	pop	ax 	int	29h 	loop	@@04 	ret OutNum	endp InpNum	proc	a:word uses	bx,cx,dx 	mov	bx,a 	xor	cx,cx @@01:	xor	ax,ax 	int	16h 	cmp	al,13 	mov	ah,al 	jz	@@04 	cmp	al,'0' 	jb	@@01 	cmp	al,'9' 	jbe	@@02 	and	ah,0DFh 	sub	ah,7 @@02:	sub	ah,'0' 	cmp	bl,ah 	jbe	@@01 	push	cx 	push	ax 	int	29H 	pop	cx 	pop	ax 	xchg	cl,ch 	xor	ch,ch 	xor	dx,dx 	mul	bx 	or	dx,dx 	jz	@@03 	stc 	jmp	@@04 @@03:	add	cx,ax 	jnc	@@01 @@04:	mov	ax,cx 	ret inpNum	endp dbInp	db	10,13,'Enter number $' dbHex	db	10,13,'Heximal numbers$' dbDec	db	10,13,'Deciimal numbers$' dbBin	db	10,13,'Binary numbers$' dbOut	db	10,13 dbBp	db	' [BP]=$' dbDi	db	' [DI]=$' 	end	begin

Команды компиляции(название папок, мои, у Вас будут другие):


Пример работы:


Хранить в регистре ВР, рабочую информацию не допустимо, у него другое назначение. Он используется для создания стекового фрейма, обращения к параметрам.


Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 28.04.2021, 11:42
Рейтинг ответа:

НЕ одобряю +1 одобряю!


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

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

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


 
     Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать RFpro.ru: Ассемблер? Это просто! Учимся программировать Все выпуски рассылки
 
Если выпуск не отображается, вы можете прочесть его на сайте

Это сообщение было отправлено на admin10383.deep@blogger.com потому, что вы подписались на рассылку comp.prog.assembler на subscribe.ru.
Чтобы гарантировать получение писем от нас — добавьте наш адрес в адресную книгу.

Вы можете отказаться от получения писем.

Архив рассылки Поддержка подписчиков

Это сообщение сформировано и выслано с помощью Sendsay.Ru

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

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