+ Ответить в теме
Страница 1 из 2
1 2 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Написать программу на языке Ассамблер

  1. #1
    Egor668 is on a distinguished road
    Регистрация
    22.12.2016
    Возраст
    22
    Сообщений
    1
    Вес репутации
    0

    По умолчанию Написать программу на языке Ассамблер

    Создайте приложение для пересчета из одной системы измерения в другую. Выбор системы измерения осуществить с помощью компонента TComboBox.
    1 мм. рт. ст. = 133Па
    1дин/см2 = 0,1Па
    1 физ. Атм = 1,013 × 105 Па
    1 кгс × м2 = 9,81 Па

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    1) Не "Ассамблер", а "Ассемблер". Уделяйте синтаксису больше внимания.
    2) На чистом Ассемблере нет TComboBox, это нужно смешивать с Си++.

  4. #3
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    Сделал для первой строки: 1 мм. рт. ст. = 133Па.
    Код asm:
    1. asm{
    2. //Перевод из мм.рт.ст. в Паскали(умножение на 133)
    3. mov eax, 133  //коэффициент перевода
    4. mov ebx, 15
    5. mul ebx
    6. //Перевод из Паскалей в мм.рт.ст.(деление на 133)
    7. mov eax,2000
    8. mov ebx,133
    9. div ebx
    10. }
    Последний раз редактировалось Слива; 27.12.2016 в 14:47.

  5. #4
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    Сделал для второй строки:1д/см2 = 0,1Па
    asm{
    //Перевод из 1д/см2 в Паскали
    mov eax, 10
    mov ebx, 35
    mul ebx
    //Перевод из Паскалей в 1д/см2
    mov eax, 2000
    mov ebx, 10
    div ebx
    }

  6. #5
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    17

    По умолчанию Re: Написать программу на языке Ассамблер

    Можно просто imul dword ptr 35
    Последний раз редактировалось somewhere; 28.12.2016 в 09:16.
    It's a long way to the top if you wanna rock'n'roll

  7. #6
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    imul dword ptr 35 - вот эта команда вызывает ошибку:
    Invalid combination of opcode and operands.
    Я вообще хотел спросить как запустить команду fmul - умножение средствами математического сопроцессора.
    Что-то она совсем работать не хочет. Кто-нибудь может привести рабочий код программы с этой командой.

  8. #7
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    17

    По умолчанию Re: Написать программу на языке Ассамблер

    Цитата Сообщение от Слива Посмотреть сообщение
    imul dword ptr 35 - вот эта команда вызывает ошибку:
    Invalid combination of opcode and operands.
    Это потому что инструкция imul imm32 введена на современных процессорах и компилятор ее не знает. Не помню с какого поколения, но кажется ее ввели начиная с Pentium 4
    Я вообще хотел спросить как запустить команду fmul - умножение средствами математического сопроцессора.
    Что-то она совсем работать не хочет. Кто-нибудь может привести рабочий код программы с этой командой.
    Код asm:
    1. const1_1 dd 10.0
    2. const1_2 dd 35.0
    3. result1 dd ?
    4. const2_1 dd 10
    5. const2_2 dd 35
    6. result2 dd ?
    7. ....
    8. fld const1_1
    9. fmul const1_2
    10. fstp result1
    11. fild const2_1
    12. fimul const2_2
    13. fistp result2
    Последний раз редактировалось AiK; 28.12.2016 в 13:43. Причина: [code=asm][/code]
    It's a long way to the top if you wanna rock'n'roll

  9. #8
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    Спасибо за ответ. Как fmov теперь завести?

  10. #9
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    17

    По умолчанию Re: Написать программу на языке Ассамблер

    Нет команды FMOV в IA-32
    Для загрузки данных в стек используются FILD, FLD, FLD1, FLDPI и другие...
    It's a long way to the top if you wanna rock'n'roll

  11. #10
    developer Слива is on a distinguished road
    Регистрация
    19.03.2016
    Сообщений
    133
    Вес репутации
    3

    По умолчанию Re: Написать программу на языке Ассамблер

    Сделал для 3 строки(пишу на С++Builder 6):
    float K = 1.013e5, K2 = 9.81, Pa = 15, Fa = 1519500;
    asm{
    //Перевод из Паскалей в Физ.Атм.
    //(Умножение на К = 1.013e5)
    finit
    fld Pa
    fld K
    fmul st(0), st(1)
    //Перевод из Физ.Атм. в Паскали
    //(Деление на К = 1.013e5)
    finit
    fld K
    fld Fa
    fdiv st(0), st(1)
    }

+ Ответить в теме
Страница 1 из 2
1 2 ПоследняяПоследняя

Похожие темы

  1. помогите написать программу на языке с#
    сумму элементов в тех строках,в который содержится хотя бы один отрицательный элемент. 2.номере строк и столбцов всех седлых точек матриц(матрица...
    от tashkent в разделе задачи на C и C++
  2. Нужно написать программу
    Программа брутфорс (протокол RDP) должна быть написана с нуля, т.е. переделанные паблик версии не рассматриваются. Язык программирования на ваш...
    от b0b-jack в разделе Решите мне задачку
  3. Помогите написать программу
    Нужна программа на любом языке Тема: "Составление списка размещения" это комбинаторика. Размещение Вики Может кто поможет буду очень благодарен.
    от krash171 в разделе Решите мне задачку
  4. [C#]Написать программу
    Если задано значение угла в радианах X, то значение Sin(X) рассчитывается посредством выражения Math.Sin(X). Напишите программу, которая рассчитывает...
    от holly в разделе Решите мне задачку
  5. памагите написать программу
    нужно через паскаль нарисовать элипс через граф памагите не магу понять как.
    от wewe в разделе Решите мне задачку

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения