Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2011, 20:19   #1
Clockgen
Пользователь
 
Регистрация: 20.11.2008
Сообщений: 66
Печаль вычислить значение по простой формуле

задание находится в рисунке приложенном к теме.

Подскажите как вывести значение Y в турбо асме2,вообще не получается,по логике задача решена правильно вот ее код:

Код:
title 	lab4
sgcod 	SEGMENT PARA  'code'
	ASSUME  CS: sgcod, DS: sgdata, SS: sgstek, ES: nothing
	org	100h
begin 	proc 	near

	mov	ax,0600h
	mov 	bh,07
	mov 	cx,0000
	mov 	dx,184fh
	int	10h

	mov ax,a	; al=a
	add ax,b	; ax=a+b
	sar ax,1	; ax=(a+b)/4
	sar ax,1
	mov dx,ax	; dx=ax
	sal ax,1	; ax=(a+b)/4*8
	sal ax,1
	sal ax,1
	sal dx,1	; dx=(a+b)/4*2
	add ax,dx	; ax=ax+dx=(a+b)/4*10
	sar b,1       ; b=b/2
	sub ax,b	; ax=(a+b)/4*10-b/2
	mov y,ax	

	mov    ah,09
    	lea    dx,y
    	int    21h

	mov    ah,00
    	int    16h

	int 20h   
begin	endp

	a dw 5
	b dw 6
	y dw 0
	strokaviv0	db	'Velichina y:','$'
sgcod	ends
	end	begin
Если что то не правильно помогите пожалуйста решить эту задачу=((
Изображения
Тип файла: jpg 002.jpg (39.4 Кб, 50 просмотров)
Clockgen вне форума Ответить с цитированием
Старый 17.01.2011, 05:42   #2
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

lea dx,y
Здесь в dx попадает адрес переменной у, и на экран выводится всё, начиная с этого адреса до $. Надо написать: lea dx,stokaviv0. Значение у должно лежать в strokaviv0, после у=(добавить 2 пробела), в символьном виде.
Вместо mov y,ax напишите:
lea di,strokaviv0+12
mov bl,10 ; так можно перевести число в символы в данном случае
div bl
or ax,3030h
stosw
Должно получиться.

Последний раз редактировалось vadimych; 17.01.2011 в 07:41.
vadimych вне форума Ответить с цитированием
Старый 17.01.2011, 13:38   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Clockgen
Код:
mov ax,a
shl ax,1; ax=a*2
mov bx,ax
shl bx,2; bx=a*8
add ax,bx; ax=a*10
mov bx,b
shl bx,3; bx=b*8
add ax,bx; ax=a*10+b*8
sar ax,2
mov y,ax; y=(a+b)*10/4  - b/2
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в ячейке скомбинировать значение по формуле с обычным текстом? PashaNastya Microsoft Office Excel 7 30.03.2010 16:59
Вычислить значение Наталья111 Общие вопросы Delphi 17 25.12.2008 08:43
Вычислить массив R[1:n] по формуле r[i]=0,8 cos (4ax - ih) ser-stereo Паскаль, Turbo Pascal, PascalABC.NET 1 23.10.2008 22:41
Как в формуле одной ячейки присвоить значение другой? Эдгар Microsoft Office Excel 10 06.10.2008 15:00
вычислить по формуле с использованием функции или процедуры St@FFord Паскаль, Turbo Pascal, PascalABC.NET 7 10.06.2008 10:18