Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
MASM

Загрузить число в регистр FPU через стек

14.02.2022, 00:32. Показов 2430. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Изучая работу FPU, искал способы загрузки значения регистра в стек st без использования переменных и тд.
Нашел пример использования стека программы:
Assembler
1
2
push eax
fild dword ptr [esp]
Однако, масм ругается что должен быть индексный регистр.
Я могу так - mov ebp,esp
Но почему не работает первый вариант? Он приводится сразу на нескольких форумах eng
Может масм не такой: MASM32 6.14.8444, или нужна какая то дополнительная директива для этого?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2022, 00:32
Ответы с готовыми решениями:

(MCS-51) Загрузить в регистр R0 число 112, вычесть из него число 18, результат сохранить в сетке
Загрузить в регистр R0 число 112, вычесть из него число 18, результат сохранить в сетке.Поместить по адрессу 20h РПД младшую 16 ричную...

(MCS-51) Загрузить в регистр R0 число 112, вычесть из него число 18, результат сохранить в стеке
Задача. Загрузить в регистр R0 число 112, вычесть из него число 18, результат сохранить в стеке. Поместить по адрес 020h РПД младшую 16...

Загрузить число A305h в регистр SS
Нужно написать 2 команды для загрузки числа A305h в регистр SS

12
147 / 135 / 50
Регистрация: 14.05.2021
Сообщений: 642
14.02.2022, 02:39
Лучший ответ Сообщение было отмечено Six hot loads как решение

Решение

Цитата Сообщение от Six hot loads Посмотреть сообщение
Однако, масм ругается что должен быть индексный регистр.
Можешь сообщение показать?
Assembler
1
fild dword ptr ss:[esp]
Так пробовал?
1
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
14.02.2022, 05:00
Assembler
1
2
        fild dword ptr [esp]
        fild dword ptr ss:[esp]
Спокойно воспринимает оба варианта записи.

Microsoft (R) Macro Assembler Version 14.29.30133.0
Copyright (C) Microsoft Corporation. All rights reserved.
0
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
14.02.2022, 13:34  [ТС]
psergee - Большое спасибо, этот вариант помог в моем случае. Непонятно только то что у меня com где все сегменты едины, и масм вроде по умолчанию должен подразумевать DS что равен SS, но да это уже не важно. Ваш вариант работает!

Добавлено через 25 минут
Хотелось бы еще добавить, что он принимает в себя таким образом только 32 битный регистр вершины стека
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
14.02.2022, 15:22
Six hot loads,
модель процессора определена? Первая строка в программе .486, .586 или .686 ?
Судя по
Цитата Сообщение от Six hot loads Посмотреть сообщение
масм ругается что должен быть индексный регистр
и
Цитата Сообщение от Six hot loads Посмотреть сообщение
у меня com где все сегменты едины
первая строка у тебя .287 или вообще тип микропроцессора не указан
0
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
14.02.2022, 16:05  [ТС]
Mikl___
Да, процессор такой .486, fpu - .287
Модель tiny. Так же - use16
Извиняюсь что не уточнил )
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
14.02.2022, 16:07
Six hot loads,
хорошо бы привести полный текст, чтобы не гадать на заварке...
0
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
14.02.2022, 17:07  [ТС]
Mikl___
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
.486
.287
segm segment use16
org 256
point:
finit
mov ax,0FFFFh   ;Пусть даже push 0FFFFh, не в этом суть.
push ax
fild word ptr [sp]
add sp,2
ret
segm ends
end point
То что он отказывается дружить с [SP] я уже понял. (С [ESP] все работает отлично)
Те. проблема в разрядности. Есть объяснение для чайника?
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
15.02.2022, 02:15
Six hot loads,
Assembler
1
2
3
4
5
6
7
8
9
10
11
.286
.code
org 100h
point:
.486
finit
push eax
fild word ptr [esp]
pop eax
int 20h
end point
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
15.02.2022, 13:20
Six hot loads,
замени в моем примере push eax/fild word ptr [esp] на push 10050/fild dword ptr [esp]
0
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
15.02.2022, 18:30  [ТС]
Mikl___
push 10050h? Если нет, то pop eax вытаскивает из стека лишнее слово?
Не совсем понимаю о чем идет речь...
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
16.02.2022, 13:02
Six hot loads,
push 10050/fild dword ptr [esp] --> fpu st(0):=10050 или любое другое число
pop eax или можно любой другой регистр, чтобы сбалансировать стек
1
2 / 2 / 1
Регистрация: 14.02.2022
Сообщений: 18
16.02.2022, 14:05  [ТС]
Mikl___
Понял, благодарю за пояснения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.02.2022, 14:05
Помогаю со студенческими работами здесь

Как загрузить данные из xml файла в регистр накопления (через план обмена)?
Здравствуйте! Делаю курсовик по 1С, реализация обмена данными. У меня есть 2 регистра накопления с инфой. Через план обмена всю инфу из них...

ассемблер в билдере. Стек fpu
Как обратиться в билдере к ячейке стека fpu? Пишу так: ... double a=3.4; double c; __asm { fld a fmul st

Занесение в FPU-стек регистров общего назначения
Еще раз всем привет! Возник маленький вопрос по поводу использования регистров общего назначения в FPU. Я имею опыт работы с паскалем (хоть...

Занести в регистр AX значение регистра CS, а в регистр BL записать заданное число
Здравствуйте, у меня такая проблема: Нужно составить программу, которая заносит в регистр AX значение Регистра CS, а в регистр BL...

(MCS-51) Внести в регистр А двоично-десятичное число XX, в регистр R5 — XX
Внести в регистр А двоично-десятичное число XX, в регистр R5 - XX, попеременно отображать эти числа на первом и втором знакоместе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru