Ирина Злобина
Ирина Злобина

Помогите перевести пожалуйста! Как перевести?

сишный код нужно перевести на ассемблерный, ибо я в ассемблере новичок (да и си не особо) , нужно сделать лабу

if ((a*a) > (b*b))
d = a/c;
else
d = (a*a)-(c*c);
if ((a*a) < (c*c));
d = (c*c*c);
else
d = a/c;

синтаксис не совсем правильный (i'm sorry :D)

ДА
Дима Архипов

> синтаксис не совсем правильный
У вас здесь не только синтаксис.. . Он в данном случае не важен.
Не понятен сам алгоритм.
Получается, что должно быть два результата при одних и тех же переменных a, b и c.

И, как обычно, не указано какой ассемблер.

Консольное 32-разрядное приложение Windows, компилятор MASM + SDK Masm32:

.686
.model flat, stdcall
option casemap:none

include windows.inc
include kernel32.inc
include masm32.inc
include msvcrt.inc
includelib kernel32.lib
includelib masm32.lib
includelib msvcrt.lib

.stack 100h

.data
PromptA db 'Введите A: ',0
PromptB db 'Введите B: ',0
PromptC db 'Введите C: ',0
Result db 'D = %s',13,10,0

.data?
hStdIn dd ?
VarA dq ?
VarB dq ?
VarC dq ?
VarD dq ?
Buff db 24 dup (?)

.code
Input proc
push edi
invoke crt_printf,edx
invoke ReadConsole,hStdIn,addr Buff+4,20,addr Buff,NULL
pop edi
invoke StrToFloat,addr Buff+4,edi
ret
Input endp

Print proc
fstp VarD
invoke FloatToStr,VarD,addr Buff
invoke crt_printf,addr Result,addr Buff
ret
Print endp

N80335066:
invoke GetStdHandle,STD_INPUT_HANDLE
mov hStdIn,eax
lea edx,PromptA
lea edi,VarA
call Input
lea edx,PromptB
lea edi,VarB
call Input
lea edx,PromptC
lea edi,VarC
call Input
finit
fld VarA
fmul VarA
fld VarB
fmul VarB
fcomip st,st(1)
fld VarC
jb A_div_C
fld st
fmul
fsub
jmp Res1
A_div_C:
ffree st(1)
fdivr VarA
Res1:
call Print
fld VarA
fmul VarA
fld VarC
fmul VarC
fcomip st,st(1)
ffree st
jae cube_C
fld VarA
fdiv VarC
jmp Res2
cube_C:
fld VarC
fmul VarC
fmul VarC
Res2:
call Print
invoke ReadConsole,hStdIn,addr Buff+4,20,addr Buff,NULL
invoke ExitProcess,NULL
end N80335066

Пример работы программы:

Похожие вопросы
Помогите пожалуйста помогите перевести число 0010111110001010 в шестнадцатиричную!!!!
Помогите пожалуйста понять смысл/перевести фразы
Помогите пожалуйста числа: 76,82,83 перевести в двоичные коды))))
помогите перевести величину пожалуйста...
Товарищи. Помогите пожалуйста перевести инструкцию с английского.
помогите пожалуйста перевести с таджикского...
Помогите перевести пожалуйсто
Пожалуйста, помогите перевести с турецкого. Еще почерк замысловатый...
Помогите перевести солнечную энергию в электрическую, пожалуйста!
Помогите, пожалуйста, перевести технические характеристики