Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2012, 17:43   #1
cesco10
 
Регистрация: 15.11.2012
Сообщений: 8
По умолчанию Не могу разобраться со стеком

Препод задолбал своими вопросами, приходится снова просить помощи у вас. Вот задание
Занести в стек "x"
Занести в стек "y"
Внести "y" в bx ( внести "x" в bx)

Я ему написал для вноса "x" в bx:

PUSH x
PUSH y
POP BX
Это правильно? и как для "y" ? , причём все действия нужно делать последовательно как указано в условии
cesco10 вне форума Ответить с цитированием
Старый 24.11.2012, 20:13   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Код:
PUSH x
PUSH y
POP BX  // y
POP BX  // x
counter вне форума Ответить с цитированием
Старый 24.11.2012, 20:27   #3
cesco10
 
Регистрация: 15.11.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от counter Посмотреть сообщение
Код:
PUSH x
PUSH y
POP BX  // y
POP BX  // x
что это значит "//" ?
Мне нужно отдельно для двух вариантов
1 вариант
Занести в стек "x"
Занести в стек "y"
Внести "y" в bx

2 вариант
Занести в стек "x"
Занести в стек "y"
внести "x" в bx
cesco10 вне форума Ответить с цитированием
Старый 24.11.2012, 21:09   #4
sauvage
Пользователь
 
Регистрация: 08.08.2011
Сообщений: 18
По умолчанию

Цитата:
Сообщение от cesco10 Посмотреть сообщение
что это значит "//" ?
Мне нужно отдельно для двух вариантов
так решение вроде бы и подходит для 2х вариантов

1 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - Внести "y" в bx

2 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - убрать из стека y
pop bx - внести "x" в bx
sauvage вне форума Ответить с цитированием
Старый 24.11.2012, 21:23   #5
cesco10
 
Регистрация: 15.11.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от sauvage Посмотреть сообщение
так решение вроде бы и подходит для 2х вариантов

1 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - Внести "y" в bx

2 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - убрать из стека y
pop bx - внести "x" в bx
я не пойму что означает эти символы // ?
cesco10 вне форума Ответить с цитированием
Старый 25.11.2012, 01:03   #6
oxygen1992
 
Регистрация: 21.11.2012
Сообщений: 5
По умолчанию

.intel_syntax noprefix
.globl f
.type f, @function

x: .int 3
y: .int 4


f:
push ebx #+4
push x #+8
push y #+12
mov bx, [esp+4] #кладем х, если нужен у, то просто [esp].
mov ax, bx
add esp, 8
pop ebx
ret
oxygen1992 вне форума Ответить с цитированием
Старый 25.11.2012, 01:52   #7
cesco10
 
Регистрация: 15.11.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от oxygen1992 Посмотреть сообщение
.intel_syntax noprefix
.globl f
.type f, @function

x: .int 3
y: .int 4


f:
push ebx #+4
push x #+8
push y #+12
mov bx, [esp+4] #кладем х, если нужен у, то просто [esp].
mov ax, bx
add esp, 8
pop ebx
ret
спасибо, но это сильно закручено, нужно проще
cesco10 вне форума Ответить с цитированием
Старый 25.11.2012, 21:43   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Привет, cesco10

Цитата:
Сообщение от cesco10 Посмотреть сообщение
что это значит "//" ?
Эти символы означают, что далее идут пояснения.

Если вам просто нужно ответить на вопрос преподавателю и не нужно писать программу, то напишите, здесь свои (пусть и неправильные) варианты. А мы проверим и поясним.
8Observer8 вне форума Ответить с цитированием
Старый 26.11.2012, 01:34   #9
cesco10
 
Регистрация: 15.11.2012
Сообщений: 8
По умолчанию

push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - убрать из стека y
pop bx - внести "x" в bx
Мой вариант:
PUSH x
PUSH y
POP BX

Для этого задания я не знаю
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - Внести "y" в bx
cesco10 вне форума Ответить с цитированием
Старый 26.11.2012, 07:54   #10
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

cesco10, обратите внимание на ответ sauvage. Это уже готовое решение:
Цитата:
Сообщение от sauvage Посмотреть сообщение
так решение вроде бы и подходит для 2х вариантов

1 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - Внести "y" в bx

2 вариант
push x - Занести в стек "x"
push y - Занести в стек "y"
pop bx - убрать из стека y
pop bx - внести "x" в bx
Если вас комментарии смущают, то без них так:

Первое задание:
Код:
PUSH x
PUSH y
POP BX
POP BX
Второе задание:
Код:
PUSH x
PUSH y
POP BX
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться! Apsalon Microsoft Office Excel 1 28.12.2010 18:54
Нужно разобраться со стеком GladiatoR24 Общие вопросы C/C++ 1 08.05.2010 11:34
НЕ МОГУ РАЗОБРАТЬСЯ... GSV84 HTML и CSS 0 03.02.2010 01:38