Форум программистов, компьютерный форум, киберфорум Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1

Легкая задачка и PUSH

21.02.2014, 21:33. Показов 956. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: Вычислите значение выражения 4x^4 – 3x^2 + x % 4 для x = 2, 4, 6 в цикле (LOOP). Операция %- взятие остатка от деления. В сегменте данных (секции DATA, BSS) размещены только исходное значение x. Результат вычисления для каждого x кладётся на стек командой PUSH AX (если результат размещается в AX; аналогично — для любого другого регистра).
Я не пойму что именно делает PUSH,он кладет на стек значение, а POP снимает со стека вроде как .
Ну как мне узнать значение в точках x,я снимаю со стека,ну а где оно отображается и хранится...
Вообще как задание корректно сделать?
Assembler Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.SECT   TEXT
        MOV     CX, 3
L:
        ADD (x), 2
        MOV BX, 4
        MOV AX, (x)
        DIV BX
        MOV AX, DX
        PUSH    AX
        MOV AX, (x)
        MUL (x)
        MOV BX, 3
        MUL BX
        MOV BX, -1
        MUL BX
        PUSH    AX
        MOV     AX, (x)
        MUL AX
        MUL AX
        MOV BX, 4
        MUL BX
        PUSH    AX
        POP AX
        POP AX
        POP AX
LOOP L
        
        
.SECT   DATA
x:  .WORD 0 
.SECT   BSS
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2014, 21:33
Ответы с готовыми решениями:

Легкая задача по ассемблеру
Доброго времени суток, помогите пожалуйста решить эту задачу по ассемблеру, вроде ничего сложного, но мне бы понять суть, как надо...

Даны две строки. Несовпадающие элементы строки приёмника заменить нулями
Добрый день! Нуждаюсь в помощи от вас. Помогите решить эту лабораторную. Запустил в свое время и не совсем понимаю многое. Буду рад,...

Push, Pop
Вот такое задание: F=Ʃ от 1 до 5 f (Ai) A1=2 Ai+1=Ai+2 Ai=(3*A)+(C/D). Нужно записать эту формулу в ассемблере с помощью Push, Pop...

3
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16355 / 7671 / 1078
Регистрация: 11.11.2010
Сообщений: 13,730
22.02.2014, 09:52
DmitryM5,
это MASM в NASM или что там у тебя переделывай сам
Assembler Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
; masm dos com #
.286
.model tiny
.code
org 100h
start:  mov cx,3
    mov bx,offset resul
a1: mov ax,x
    mov dx,ax
    and dx,3; dx = x % 4
    mov [bx],dx
    mul ax; ax = x*x
    mov dx,ax; dx = x^2
    shl ax,2; ax = 4x^2
    sub ax,3; ax = 4x^2 - 3
    mul dx; ax = x^2 * (4x^2 - 3)= 4x^4 - 3x^2
    add [bx],ax; result = 4x^4 - 3x^2 + x%4
    add bx,2; к следующему result
    add x,2; x = x+2
    loop a1     
    ret
result dw 3 dup(0);4x^4 – 3x^2 + x % 4 для x = 2, 4, 6 
x dw 2
end start
0
Консультант Витте
 Аватар для DmitryM5
106 / 86 / 45
Регистрация: 27.08.2013
Сообщений: 1,356
Записей в блоге: 1
22.02.2014, 21:59  [ТС]
Быть может вы не поняли вопроса?Я спросил про push и pop.И про правильность моего задания.У меня работающий код,просто не пойму куда девать значения в точках(раньше был result).
Зачем мне непонятно какой код...

Добавлено через 2 часа 0 минут
Assembler Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
.SECT   TEXT
        MOV     CX, 3
L:
        ADD (x), 2
        MOV BX, 4
        MOV AX, (x)
        DIV BX
        MOV AX, DX
        PUSH    AX
        MOV AX, (x)
        MUL (x)
        MOV BX, 3
        MUL BX
        MOV BX, -1
        MUL BX
        MOV BX, AX
        POP AX
        ADD AX, BX
        PUSH    AX
        MOV     AX, (x)
        MUL AX
        MUL AX
        MOV BX, 4
        MUL BX
        MOV BX, AX
        POP AX
        ADD AX, BX
        PUSH    AX
LOOP L
        
        
.SECT   DATA
x:  .WORD 0 
.SECT   BSS
По видимому я сам все сделал.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16355 / 7671 / 1078
Регистрация: 11.11.2010
Сообщений: 13,730
23.02.2014, 06:49
Цитата Сообщение от DmitryM5 Посмотреть сообщение
По видимому я сам все сделал
По-видимому, я бы не написал тебе программу, если бы она была правильной
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2014, 06:49
Помогаю со студенческими работами здесь

Команда Push Ds
Всем привет!! Ребята, кто сталкивался с данной командой??Как нарисовать схему выполнения этой команды?

вылетает при push
Господа, проблема возникла и я чуть до маразма не дохожу. Использую WinAsm Studio и читаю Пирогова "Assembler для Windows" ...

Команды PUSH/PSW..
Мне нужно сделать: "Составить подпрограмму вычисления значения функции MAX(X&K,8)+5 . Подпрограмма должна вызываться командой CALL из...

Push, 64 режим, фитчи)
include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8*5 @@: invoke GetCommandLine ...

Объяснить работу команды push
Добрый день, читаю книгу, и не могу понять кое чего относительно работы со стеком Пусть например esp указывает на стек, в котором...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточность в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер