Калькулятор.с ошибкой - Assembler
Формулировка задачи:
вводим первое число, второе, действие. Сравниваем знаки с кодами знаков и по меткам к совершению действия.
Успеваю ввести только числа и сразу выводит непонятный результат при этом действие еще не успел задать!!!
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> int main(int argc, char* argv[]) { char plus='+',minus='-',umn='*',delit='/',s[260]; int d; float FIRST,SECOND,RESULT; printf("1="); scanf("%f",&FIRST); printf("\n2="); scanf("%f",&SECOND); printf("\ns="); scanf("=%s", &s); if (s[0]==plus) d=43;//kod '+' if (s[0]==minus) d=45;//lod '-' ... t.d. if (s[0]==delit) d=47; if (s[0]==umn) d=42; _asm { mov ecx,'+'; sub ecx, d; jecxz SLOZHENIE; xor ecx,ecx; mov ecx,'-'; sub ecx, d; jecxz VICHITANIE; xor ecx,ecx; mov ecx,'*'; sub ecx, d; jecxz UMNOZHENIE; xor ecx,ecx; mov ecx,'/'; sub ecx, d; jecxz DELENIE; xor ecx,ecx; jmp finishh; SLOZHENIE: fld [SECOND]; fld [FIRST]; fadd st,st(1); fstp [RESULT]; jmp finishh; VICHITANIE: fld [SECOND]; fld [FIRST]; fsub st,st(1); fstp [RESULT]; jmp finishh; UMNOZHENIE: fld [SECOND]; fld [FIRST]; fmul st,st(1); fstp [RESULT]; jmp finishh; DELENIE: fld [SECOND]; fld [FIRST]; fdiv st,st(1); fstp [RESULT]; jmp finishh; finishh: } printf("\n%f\n",RESULT); _getch(); return 0; }
Решение задачи: «Калькулятор.с ошибкой»
textual
Листинг программы
"=%s"
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д