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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 20:25   #1
Awful
Новичок
Джуниор
 
Регистрация: 04.11.2009
Сообщений: 2
По умолчанию Какой-то сакс)

Я только начинаю изучать ассемблер и вот столкнулсяс такой проблемой:
(код небольшой)
кусок программы, где начинается сбой
Код:
Sseg segment para stack 'stack'
db 64 dup(0)
Sseg ends
dseg segment 
 nx dw 6
 xx dw 6,-3,7,9,11,13
 maxx dw ?
 f db 0
 kx dw 0
 k dw 0
 max dw 0
 c3 db 3
dseg ends
cseg segment
assume cs:cseg,ss:sseg,ds:dseg
ppc proc
	mov bx,dseg
	mov ds,bx
 	lea ax,xx
 	push ax
	push nx
	ret
ppc endp
cseg ends
end ppc
так вот. почему после проделанных действий стек имеет вид :
6,2,6,6,FFFD,7,9,B,D ???

откуда берутся 6 и 2 вначале... не понимаю. Обьясните ламеру, кому не трудно)

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

хотя мож это откуда то вылезли 2 и 6 в середке.. ща протестю и напишу

хмм. такое чувство что прога клонирует nx добавляет в стек, а в середку вставляет 2... ниче не понятно =/
Awful вне форума Ответить с цитированием
Старый 04.11.2009, 21:36   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Код:
 	lea ax,xx ; аддрес xx заносится в ax
 	push ax   ; содержимое ax, т.е. аддрес xx заносится в стек
	push nx  ; содержимое nx заносится в стек
	ret  ; из стека берется аддрес и выполнение переходит на него
	; учитывая, что в стек только что положили содержимое переменной, будет бяка.
Цитата:
откуда берутся 6 и 2 вначале... не понимаю. Обьясните ламеру, кому не трудно)
6 - содержимое nx
2 - аддрес начала xx
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 04.11.2009 в 21:39.
Goodwin98 вне форума Ответить с цитированием
Старый 05.11.2009, 10:26   #3
Awful
Новичок
Джуниор
 
Регистрация: 04.11.2009
Сообщений: 2
По умолчанию

спасибо, а 6ка после двойки тогда откуда? в цикле то только одна..
Awful вне форума Ответить с цитированием
Старый 05.11.2009, 12:31   #4
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

В приведенном вами коде только 2 команды, которые что-то кладут в стек.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из какой вы страны? Роман Радер Свободное общение 24 12.11.2008 16:02
какой язык beygul Помощь студентам 4 17.09.2008 20:02
Какой компонент VenMaster Общие вопросы Delphi 4 07.06.2008 10:38
Какой вы Сотона?) Viteef Свободное общение 14 05.06.2008 08:10