Собственно есть число, мне надо узнать сколько будет от этого числа например 0.7 процента, как это можно сделать?
на код mov ecx,0.07 imul ecx выдаёт сообщение error A2050: real or BCD number not allowed чо за косяк?
2FED Нужно смотреть на диапазон изменения Ваших чисел. Если нужны только челые числа то нужно смотреть в сторону арифметики с фиксированной разрядной сеткой. (IMUL; MUL) если нужна точность до 0.1% то можно выполнить масштабырование чисел с коэф. 1000. Результат = (Число*(процент*масштаб)) / масштаб для нашего случая: Результат = (Число*(0.007*1000)) / 1000 Ну а если числа РЕАЛЬНЫЕ, то нужны числа с плавающей десятичной точкой. (FPU ...)
Зачем FPU? Код (Text): mov ecx,7 imul ecx mov ecx,1000 idiv ecx Или даже Код (Text): mov ecx,eax shl eax,3 ; тут можно три сложения eax,eax sub eax,ecx mov ecx,1000 idiv ecx ------ S_Alex опередил
2FED Код (Text): ;1) ----------------------------------- mov eax, число_от_которого_берут_процент imul eax,7 mov ecx,1000 xor edx,edx div ecx; в eax результат ;2) -------------------------------------- mov eax, число_от_которого_берут_процент lea ecx,[eax+eax*2];ecx=eax*3 lea eax,[ecx+eax*4];eax*=7 mov ecx,1000 xor edx,edx div ecx; в eax результат ;3) ----------------------------------------- mov eax, число_от_которого_берут_процент mov ecx,143;1000/7=142,85714285714285714285714285714 xor edx,edx div ecx; в eax результат ;4) ------------------------------------------ ;Найти "магическое" число Х, чтобы 0,007=X/2³² ;X=7*2³²/1000=30064771,072 mov eax, число_от_которого_берут_процент mov ecx,30064771; магическое число mul ecx; в edx результат
А как узнать остаток? ну вот например если из еденицы надо вычислить долю процента, то получится 0 целых и какой то остаток должен быть
2FED Два варианта: 1) используешь целочисленную арифметику и масштабирование, например, предварительно умножаешь свое число на 100000, затем вычисляешь процент и при выводе устанавливаешь десятичный разделитель - запятую на нужное место 2) используешь FPU Смотри внимательно тебе об этом уже написали
2FED Есть простое и замечательное решение для тебя. 1) качаешь ту http://www.wasm.ru/src/9/FPU_Work.zip 2) распаковываешь и подключаешь в свой проект (там хелп нормальный все ясно как божий день) 3) используешь элементарную пропорцию, где Х-исходное ичсло, У-0,7% от исходного Х==100% У==0,7% формула: y=(x*0,7)/100 все.