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

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

28 дек 2016, 13:14

Для 4 строки будет тоже самое, только вместо К подставляй К2.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

28 дек 2016, 13:46

Стек FPU не освобождается, это грубая ошибка
It's a long way to the top if you wanna rock'n'roll
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

28 дек 2016, 14:13

Ну закинь туда(в конец) команду finit, да и все.
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

28 дек 2016, 15:04

А, блин, извиняюсь, прокосячил. Первую формулу нужно переделать вот так:
asm{
//Перевод из Паскалей в мм.рт.ст.(Умножение на 133)
mov eax, 133 //коэффициент перевода
mov ebx, 0x6D2693E
mul ebx
//результат в паре edx:eax
//Перевод из мм.рт.ст. в Паскали(деление на 133)
mov eax, 0x8B50AD8E //делимое
mov edx, 0x3
mov ebx, 133
div ebx //делитель
//Частное помещается в eax, а остаток — в edx.
}
2 формула будет аналогично, только коэффициент слева.
Слива
Сообщения: 133
Зарегистрирован: 19 мар 2016, 10:15

28 дек 2016, 15:09

Комментарий к сообщению выше: доработка заключается в том, что в операциях умножения и деления участвуют регистры edx:eax. Описание смотрите в описании команд. somewhere, мне по почте пришло сообщение по этой ошибке, но здесь я его не обнаружил - стерли?
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

28 дек 2016, 15:39

Да, я подумал, что это два разных независимых куска кода
It's a long way to the top if you wanna rock'n'roll
Ответить