Помогите решить уравнение на Ассемблере!Очень срочно!!

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
MariyaZ
Сообщения: 5
Зарегистрирован: 17 мар 2013, 09:18

Помогите решить уравнение на Ассемблере!Очень срочно!!

Сообщение MariyaZ » 17 мар 2013, 09:50

Помогите пожалуйста решить уравнение и написать программу!Очень срочно!!Перепод не объясняет,а требует много.Буду очень признательна!Заранее спасибо!!
у=27-(7а/3в+8) если А>В и 11в+17 если А<=В .Вычислить выражение с использованием команды условного перехода.(микропроцессор К1810)

demetrius2003
Сообщения: 3
Зарегистрирован: 20 окт 2010, 17:52

Re: Помогите решить уравнение на Ассемблере!Очень срочно!!

Сообщение demetrius2003 » 17 мар 2013, 17:17

Вообще К1810 вроде как аналог 8086, по крайней мере К1810ВМ86. Поэтому данную задачу можно решить применив следующий код:

Код: Выделить всё

	cmp ax, bx	;сравниваем А и В
	jg grt__	;переход если ax больше bx
	mov ax, 11	;грузим сюда 11
	mul bx		;домножаем на В
	mov bx,ax	;грузим в В результат
	add bx, 17	;добавляем 17
	mov cx, bx	;грузим конечный результат
	jmp out__
grt__:	mov cx, ax	;грузим А
	mov ax, 5	;грузим сюда 5
	mul cx		;А*5
	push ax		;временно запоминаем А*5
	mov ax, 3	;грузим сюда 3
	mul bx		;В*3
	push ax		;временно запоминаем В*3
	pop bx		;выстраиваем правильно делимое и делитель
	pop ax		;-//-
	div bx		;делим А*7/В*3
	add ax, 8	;прибавляем 8
	mov bx, 27	;грузим сюда 27
	push ax		;выстраиваем правильно уменьшаемое и вычитаемое или как там их правильно зовут
	push bx		;-//-
	pop ax		;-//-
	pop bx		;-//-
	sub ax, bx	;27-то что насчитали ранее
	mov cx, ax	;грузим конечный результат
out__:	ret
Тут на входе в ax должно лежать А, в bx должно лежать В, а на выходе в cx лежит результат функции. Всё примитивно просто. Т. к. К1810 у меня нет, то было откомпилировано в 32-битном варианте в TASM - код работает.

MariyaZ
Сообщения: 5
Зарегистрирован: 17 мар 2013, 09:18

Re: Помогите решить уравнение на Ассемблере!Очень срочно!!

Сообщение MariyaZ » 17 мар 2013, 20:10

Спасибо вам большое!!Очень благодарна вам!

Ответить