
Другие языки программирования и технологии
Помогите по ассемблеру
Помогите, подскажите код для решения данного примера, я в ассемблере полный ноль ( прошу адекватной помощи. . .пожалуйста
не надо говорить глупости, прошу точного ответа! Я запутался в нём! Срочно помогите хотя бы с началом кода

> прошу точного ответа!
Для точного ответа вы должны как можно точнее описать ассемблер, на котором требуется написать программу.
Например.
Требования к программе и оформлению исходного кода:
1. Процессор Intel 80386 и старше, а также совместимые с ним.
2. Транслятор MASM.
3. Операционная система Windows 32 или 64-разрядная семейства NT (Windows XP SP3 и старше) .
4. Приложение 32-разрядное консольное формата PE.
5. Вычисления производить в формате с плавающей точкой, для чего использовать арифметический сопроцессор.
6. Результат вычисления выводить в десятичной системе с точностью 4 знака после запятой.
7. Использовать директивы упрощённого описания секций/сегментов.
8. Для ввода-вывода данных применять функции WinAPI, допускается использовать функции библиотеки Си.
9. Считать, что пользователь вводит исходные данные без ошибок.
10. Запрещено использовать библиотеки макросов, а также include файлы с описаниями констант и прототипов функций (например Masm32 SDK).
11. Допускается вместо инструкции call использовать макрокоманду invoke (ну, и сопутствующий ей псевдотип vararg).
12. Допускается библиотеки импортируемых функций указывать в командной строке линковщика.
По такому техзаданию уже можно дать более или менее точный ответ:
.386
.model flat, C
option casemap:none
printf proto :vararg
scanf proto :vararg
_getch proto
_exit proto :dword
.stack 800h
.data
tTitle db "Вариант 9", 13, 10, 0
Prompt db "Введите X: ", 0
Result db "Ответ: A = %.4f", 13, 10, 10
db "Для завершения работы нажмите любую клавишу... ", 0
Format db "%lf", 0
.data?
X dq ?
Y dq ?
A dq ?
IntBuff dw ?
.code
N98241189:
invoke printf, addr tTitle
invoke printf, addr Prompt
invoke scanf, addr Format, addr X
inc byte ptr Prompt + 8
invoke printf, addr Prompt
invoke scanf, addr Format, addr Y
finit
fld X
fld st
fmul
fld st
mov IntBuff, 3
fidiv IntBuff
fld Y
fld st
fmul
mov IntBuff, 6
fidiv IntBuff
fadd
mov IntBuff, 8
fiadd IntBuff
fdiv
fstp A
invoke printf, addr Result, dword ptr A, dword ptr A + 4
invoke _getch
invoke _exit, 0
end N98241189
Выполнение тестового примера:
P.S. Ошибки ввода не проверяются.
ТЗ в данном случае, естественно, было составлено после написания программы.
Для точного ответа вы должны как можно точнее описать ассемблер, на котором требуется написать программу.
Например.
Требования к программе и оформлению исходного кода:
1. Процессор Intel 80386 и старше, а также совместимые с ним.
2. Транслятор MASM.
3. Операционная система Windows 32 или 64-разрядная семейства NT (Windows XP SP3 и старше) .
4. Приложение 32-разрядное консольное формата PE.
5. Вычисления производить в формате с плавающей точкой, для чего использовать арифметический сопроцессор.
6. Результат вычисления выводить в десятичной системе с точностью 4 знака после запятой.
7. Использовать директивы упрощённого описания секций/сегментов.
8. Для ввода-вывода данных применять функции WinAPI, допускается использовать функции библиотеки Си.
9. Считать, что пользователь вводит исходные данные без ошибок.
10. Запрещено использовать библиотеки макросов, а также include файлы с описаниями констант и прототипов функций (например Masm32 SDK).
11. Допускается вместо инструкции call использовать макрокоманду invoke (ну, и сопутствующий ей псевдотип vararg).
12. Допускается библиотеки импортируемых функций указывать в командной строке линковщика.
По такому техзаданию уже можно дать более или менее точный ответ:
.386
.model flat, C
option casemap:none
printf proto :vararg
scanf proto :vararg
_getch proto
_exit proto :dword
.stack 800h
.data
tTitle db "Вариант 9", 13, 10, 0
Prompt db "Введите X: ", 0
Result db "Ответ: A = %.4f", 13, 10, 10
db "Для завершения работы нажмите любую клавишу... ", 0
Format db "%lf", 0
.data?
X dq ?
Y dq ?
A dq ?
IntBuff dw ?
.code
N98241189:
invoke printf, addr tTitle
invoke printf, addr Prompt
invoke scanf, addr Format, addr X
inc byte ptr Prompt + 8
invoke printf, addr Prompt
invoke scanf, addr Format, addr Y
finit
fld X
fld st
fmul
fld st
mov IntBuff, 3
fidiv IntBuff
fld Y
fld st
fmul
mov IntBuff, 6
fidiv IntBuff
fadd
mov IntBuff, 8
fiadd IntBuff
fdiv
fstp A
invoke printf, addr Result, dword ptr A, dword ptr A + 4
invoke _getch
invoke _exit, 0
end N98241189
Выполнение тестового примера:

P.S. Ошибки ввода не проверяются.
ТЗ в данном случае, естественно, было составлено после написания программы.
Артур Волков
Ты мой ассемблерный кумир
Юрий Смирнов
блин, я половины того что вы написали то не понял...) ) и много слов кода не понял... ибо наш учитель учит как-то лево.. . mov ax, x mov bx, y и тому подобное... про процессоры нам даже не говорили, ассемблер мы пишем в Делфи путем вписывания asm... Возможно ли решение более простым методом?
Mov ax, 8
Юрий Смирнов
даааааааааааа помог супер
Похожие вопросы
- Архитектура ЭВМ помогите с ассемблером
- Помогите с ассемблером
- Помогите с ассемблером (задачей про матрицы) внутри...
- Помогите с ассемблером
- помогите с Ассемблером
- помогите с ассемблером. если можно с объяснениями...огромное спасибо
- помогите с ассемблером (i8085) Программа должна считать количество нулей в ячейке. Какие команды использовать?
- Помогите!!! задача ассемблер.
- Помогите с Ассемблером пожалуйста
- Помогите с ассемблером