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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 03:02   #1
monamyr
Новичок
Джуниор
 
Регистрация: 19.11.2010
Сообщений: 1
Смущение (x-y)^2 + x + y, если x>y;

ТовариЩи, выручайте. Assembler только вводный курс, пришла после долгопостижной болезни, а они там уже задачки в полный ход решают..а я вот тормазнутая, надо въехать как то в учебный процесс..может литературу какую нить подскажите бесплатно слить...если не трудно прокоменте строчки..помогите пожалуйста..

(x-y)^2 + x + y, если x>y;
(y-x)^2 - x + y, если x<y;
x + y + 2, если x=y
monamyr вне форума Ответить с цитированием
Старый 19.11.2010, 09:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Если я ничего не перепутал то решение может выглядеть так:
Код:
;Указывает на то что эта программа
; формата WIndows PE. Консольная
format PE ; console
include 'D:\fasmw16726\INCLUDE\win32a.inc'

entry start

section '.data' data readable writeable
x dd 2
y dd 3
a dd 0

section 'Код' code readable executable

proc ЕслиХБольшеУ
 mov eax,[x]
 sub eax,[y]
 xor edx,edx
 mul eax
 add eax,[y]
 add eax,[x]
 mov [a],eax
 ret
endp


proc ЕслиХМеньшеУ
 mov eax,[y]
 sub eax,[x]
 xor edx,edx
 mul eax
 sub eax,[y]
 add eax,[x]
 mov [a],eax
 ret
endp

proc ЕслиХРавенУ
 mov eax,[x]
 add eax,[y]
 add eax,2
 mov [a],eax
 ret
endp

start:
 mov eax,x
 cmp eax,[y]
 jg topa
 jl topb
 call ЕслиХРавенУ;
 jmp ok
topa:
 call ЕслиХБольшеУ
topb:
 call ЕслиХМеньшеУ
ok:
ret
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2010, 09:56   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

monamyr литературу можно скачать здесь Литература. Где скачать? Что читать?
Код:
.286
.model tiny
.code
start:	mov ah,0
	mov al,x
	sub al,y; AL = X -Y
        jz a1; если AL = 0 значит X = Y и переходим на метку а1
        jc a2; если AL < 0 значит X < Y и переходим на метку а2
	imul al; если мы здесь значит X > Y AX=(X - Y)²
	add al,x; AX = (X - Y)² + X
	adc ah,0; добавим 1 к содержимому AH если при сложении был перенос
	jmp a3; переходим на метку а3
a2:     imul al; если мы здесь значит X < Y AX=(X - Y)²
        sub al,x; AX = (X - Y)² - X
	sbb ah,0; отнимем 1 от содержимого AH если при вычитании был займ
	jmp a3; переходим на метку а3
a1:     mov al,x; если мы здесь значит X = Y	
	add ax,2; AX = X + 2
a3:	add al,y; к содержимому AX добавляем Y
	adc ah,0
	retn; выходим из программы
x db 2
y db 3
end start;конец программы
Mikl___ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция ЕСЛИ Ломчик Microsoft Office Excel 8 16.05.2010 15:56
ассемблер - k={0,если x=0 x, если x>0 AJIUM Помощь студентам 7 19.03.2010 00:17
Если функция ЕСЛИ не подходит Katherina_Koval Microsoft Office Excel 1 25.07.2008 19:09
если есть.... то.... -=$V=- Компоненты Delphi 2 17.06.2008 13:02
cтранная запись формулы ЕСЛИ: "=+ЕСЛИ(..." icore2008 Microsoft Office Excel 4 10.04.2008 21:32