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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.02.2008, 23:04   #1
slaider
 
Регистрация: 25.02.2008
Сообщений: 8
Восклицание Небольшой курсовой проект (Assembler)

Прошу знающих людей помочь!Заранее 1000кратное спасибо

В техникуме дали Курсовой проэкт там задание :

Написать програмную реализацию для :

min(x,y,z) + max ( x,y,z)
_________________________

max(x,y,z) - min (x,y,z )


Для кого не трудно,помогите сделать пожалуста!
Очень нужна ... ваша помощь !

Последний раз редактировалось rpy3uH; 26.02.2008 в 07:44.
slaider вне форума
Старый 25.02.2008, 23:23   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Может я туплю, а что такое min(x,y,z) ??
И ещё вопрос - а под какую ОС_ю ??
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума
Старый 25.02.2008, 23:41   #3
slaider
 
Регистрация: 25.02.2008
Сообщений: 8
По умолчанию

под Винду.....
Я еще узнаю на счет 1-го завтра подойду преподша блондика )) Может поэтому все запутано но похоже это интерпритированое уровнение по матиматике
.

Есть еще одно задание :

Создание файла с заданным содержимым и вывод на экран количество строк в этом файле

Последний раз редактировалось slaider; 25.02.2008 в 23:43.
slaider вне форума
Старый 25.02.2008, 23:54   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Есть еще одно задание :
Создание файла с заданным содержимым и вывод на экран количество строк в этом файле


Т.е. если я правильно понял нужна програмка, которую запустил, а она сделала какой то файл, посчитала в нем количество строк и вывела это число на экран и всё ???

Если это так и под WIN, тогда без API не обойтись:
CreateFile
ReadFile
WriteFile
CloseHandle
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума
Старый 26.02.2008, 00:08   #5
slaider
 
Регистрация: 25.02.2008
Сообщений: 8
По умолчанию

мне 1-е надо...поэтому! Я завтра уточню на счет! Этого уровнения или что это...!
slaider вне форума
Старый 26.02.2008, 04:43   #6
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

мда...
min - это минимальное число
max - максимальное число
#define QUESTION bb || !bb
Vedrus вне форума
Старый 26.02.2008, 07:54   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Пример программы для опеределения минимального из трёх введённых чисел (поддерживает также и отрицательные числа, использует FPU для сравнения, конечно можно без FPU, но это типа фишка). Я думаю по образу и подобию можно будет написать определение максимального из трёх. Останется только подсчитать результат.


(FASM, Win32)
Вложения
Тип файла: zip min_val_for_Win32.zip (1.8 Кб, 295 просмотров)
rpy3uH вне форума
Старый 26.02.2008, 08:02   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И это курсовая??? Пипец (пардон) чет курсачи мельчают.
Слайдер, выкладывай идеи и наработки.
I'm learning to live...
Stilet вне форума
Старый 26.02.2008, 15:11   #9
slaider
 
Регистрация: 25.02.2008
Сообщений: 8
По умолчанию

Вот идея --- example.asm

Код:
.file "example.c" 
.section .rodata 
.LC0: 
.string "Result = %f\n" 
.text 
.globl main 
.type main, @function 
main: 
leal 4(%esp), %ecx 
andl $-16, %esp 
pushl -4(%ecx) 
pushl %ebp 
movl %esp, %ebp 
pushl %ebx 
pushl %ecx 
subl $160, %esp 
movl %ecx, %ebx 
movl 4(%ebx), %eax 
addl $4, %eax 
movl (%eax), %eax 
movl %eax, (%esp) 
call atof 
fstpl -32(%ebp) 
movl 4(%ebx), %eax 
addl $8, %eax 
movl (%eax), %eax 
movl %eax, (%esp) 
call atof 
fstpl -24(%ebp) 
movl 4(%ebx), %eax 
addl $12, %eax 
movl (%eax), %eax 
movl %eax, (%esp) 
call atof 
fstpl -16(%ebp) 
fldl -32(%ebp) 
fldl -24(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L4 
jmp .L2 
.L4: 
fldl -32(%ebp) 
fstpl -144(%ebp) 
jmp .L5 
.L2: 
fldl -24(%ebp) 
fstpl -144(%ebp) 
.L5: 
fldl -16(%ebp) 
fldl -144(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L8 
jmp .L6 
.L8: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L11 
jmp .L9 
.L11: 
fldl -32(%ebp) 
fstpl -136(%ebp) 
jmp .L12 
.L9: 
fldl -24(%ebp) 
fstpl -136(%ebp) 
.L12: 
fldl -136(%ebp) 
fstpl -152(%ebp) 
jmp .L13 
.L6: 
fldl -16(%ebp) 
fstpl -152(%ebp) 
.L13: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L16 
jmp .L14 
.L16: 
fldl -32(%ebp) 
fstpl -120(%ebp) 
jmp .L17 
.L14: 
fldl -24(%ebp) 
fstpl -120(%ebp) 
.L17: 
fldl -16(%ebp) 
fldl -120(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L20 
jmp .L18 
.L20: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L23 
jmp .L21 
.L23: 
fldl -32(%ebp) 
fstpl -112(%ebp) 
jmp .L24 
.L21: 
fldl -24(%ebp) 
fstpl -112(%ebp) 
.L24: 
fldl -112(%ebp) 
fstpl -128(%ebp) 
jmp .L25 
.L18: 
fldl -16(%ebp) 
fstpl -128(%ebp) 
.L25: 
fldl -152(%ebp) 
faddl -128(%ebp) 
fstpl -48(%ebp) 
fldl -32(%ebp) 
fldl -24(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L28 
jmp .L26 
.L28: 
fldl -32(%ebp) 
fstpl -96(%ebp) 
jmp .L29 
.L26: 
fldl -24(%ebp) 
fstpl -96(%ebp) 
.L29: 
fldl -16(%ebp) 
fldl -96(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L32 
jmp .L30 
.L32: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L35 
jmp .L33 
.L35: 
fldl -32(%ebp) 
fstpl -88(%ebp) 
jmp .L36 
.L33: 
fldl -24(%ebp) 
fstpl -88(%ebp) 
.L36: 
fldl -88(%ebp) 
fstpl -104(%ebp) 
jmp .L37 
.L30: 
fldl -16(%ebp) 
fstpl -104(%ebp) 
.L37: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L40 
jmp .L38 
.L40: 
fldl -32(%ebp) 
fstpl -72(%ebp) 
jmp .L41 
.L38: 
fldl -24(%ebp) 
fstpl -72(%ebp) 
.L41: 
fldl -16(%ebp) 
fldl -72(%ebp) 
fxch %st(1) 
fucompp 
fnstsw %ax 
sahf 
ja .L44 
jmp .L42 
.L44: 
fldl -32(%ebp) 
fldl -24(%ebp) 
fucompp 
fnstsw %ax 
sahf 
ja .L47 
jmp .L45 
.L47: 
fldl -32(%ebp) 
fstpl -64(%ebp) 
jmp .L48 
.L45: 
fldl -24(%ebp) 
fstpl -64(%ebp) 
.L48: 
fldl -64(%ebp) 
fstpl -80(%ebp) 
jmp .L49 
.L42: 
fldl -16(%ebp) 
fstpl -80(%ebp) 
.L49: 
fldl -104(%ebp) 
fsubl -80(%ebp) 
fstpl -40(%ebp) 
fldl -48(%ebp) 
fdivl -40(%ebp) 
fstpl 4(%esp) 
movl $.LC0, (%esp) 
call printf 
addl $160, %esp 
popl %ecx 
popl %ebx 
popl %ebp 
leal -4(%ecx), %esp 
ret 
.size main, .-main 
.ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)" 
.section .note.GNU-stack,"",@progbits
____________________________________________________

набросал очень простенькую программу на C, реализующую требуемую функциональность: 
#include <stdio.h> 
#include <stdlib.h> 

#define min(a, b) ( a<b ? a : b ) 
#define max(a, b) ( a>b ? a : b ) 

int main(int argc, char* argv[]) { 
double numerator, denominator, x, y, z; 
x = atof(argv[1]); y = atof(argv[2]); z = atof(argv[3]); 
numerator = min(min(x, y), z) + max(max(x, y), z); 
denominator = max(max(x, y), z) - min(min(x, y), z); 
printf("Result = %f\n", numerator/denominator); 
}
Использовался компилятор GCC, вызванный с ключом -S (он генерирует ассемблерный код, эквивалентный тексту исходной программы).


Что думаете? Подойдет?

Последний раз редактировалось rpy3uH; 26.02.2008 в 18:12.
slaider вне форума
Старый 26.02.2008, 15:21   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пример Грузина видел?
Если нет то обрати внимание.
I'm learning to live...
Stilet вне форума
Закрытая тема


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен курсовой проект фамил Помощь студентам 2 13.05.2008 17:58
Небольшой вопрос по транспонированию Deman4eg Microsoft Office Excel 11 21.02.2008 11:09