Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
#1

Как описать содержимое стека? - Assembler

28.11.2011, 21:28. Просмотров 802. Ответов 5
Метки нет (Все метки)

Как описать изменение содержимого стека и регистра sp после выполнения каждой команды из нижеприведенной последовательности.

Где прочитать?

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
35
36
37
38
39
40
41
Адрес              Оператор
 
                       title   callproc
0000          stacksg  segment para stack 'Stack'
0000                   dw      32 dup(?)
0040          stacksg  ends
 
0000          codesg   segment para 'Code'
0000          begin    proc    far
                       assume  cs:codesg,ss:stacksg
0000                   push    ds
0001                   sub     ax,ax
0003                   push    ax
0004                   call    a10
0007                   call    b10
000A                   ret
000B          begin    endp
 
000B          a10      proc
000B                   call    c10
000E                   call    b10
 
...                    ...
 
0020                   ret
0021          a10      endp
0021          b10      proc
0021                   call    c10
 
...                    ...
 
0040                   ret
0041          b10      endp
 
0041          c10      proc
 
...                    ...
 
0050                   ret
0051          c10      endp
                       end     begin
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2011, 21:28
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как описать содержимое стека? (Assembler):

Каково будет содержимое указателя стека в результате выполнения на ЦП машинных инструкций - Assembler
Ребят, нужна Ваша помощь. По учебе тест, не могу справиться. Помогите. Заранее спасибо! Пусть в данный момент времени некоторые...

завершить программу аварийно вследствие того, что содержимое стека затирает собою машинный код программы - Assembler
Здравствуйте. К сожаление не имею представления как написать такую программу: "Написать программу, завершается аварийно вследствие...

Как получить верхушку стека без изменения sp - Assembler
mov bx,sp mov dx,word ptr Не работает. Добавлено через 7 минут И ещё. Как вывести в DOS'е символ доллара?

Как влияет на сегмент стека выполнения команды int 21h - Assembler
Вот есть набор задачек которые мне нужно научиться решать и конечно же понимать =) В ассемблере, мягко говоря, не шарю, но есть большое...

Как выводить содержимое буфера в bin и hex - Assembler
Здравствуйте. Вот к вопросу о предыдущей теме. Хочу узнать, как выводить текст из bufferT dw 128 dup (?) ; буф для текста не в...

Как создать цикл с проверкой условия содержимое ax>=0, на ассемблере - Assembler
Как создать цикл чтобы в нём были : i -счётчик, m=8, k=-1, m=m+k, m>0, если да, то k=k+2, m=m+k, и т.д пока m не станет <=0, вывод i. i,...

5
Fedor666
Основоположник на всё
42 / 42 / 4
Регистрация: 22.02.2010
Сообщений: 311
29.11.2011, 09:30 #2
0000 - ds (PSP) прячется в стек
0003 - в стек прячется 0
0004 - в стек прячется адрес строки 0007 и осуществляется переход на а10
000B - в стек прячется адрес строки 000E и осуществляется переход на с10
0050 - из стека извлекается адрес строки 000E и осуществляется переход на него
000E - в стек прячется адрес строки 0020 и осуществляется переход на b10
0021 - в стек прячется адрес строки 0040 и осуществляется переход на с10
0050 - из стека извлекается адрес строки 0040 и осуществляется переход на него
0040 - из стека извлекается адрес строки 0020 и осуществляется переход на него
0020 - из стека извлекается адрес строки 0007 и осуществляется переход на него
0007 - в стек прячется адрес строки 000A и осуществляется переход на b10
0021 - в стек прячется адрес строки 0040 и осуществляется переход на c10
0050 - из стека извлекается адрес строки 0040 и осуществляется переход на него
0040 - из стека извлекается адрес строки 000A и осуществляется переход на него
000A - из стека извлекается 0, спрятаный в строке 0003, и осуществляется переход на него (0).
И в чем мораль?
1
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
29.11.2011, 19:17  [ТС] #3
и всё? только как заменить слово "прячется", а то преподу не понравится.

Мораль даже не знаю в чем, это задание препод дал в контрольной.

СПАСИБо вам огромное добрый человек!
0
Fedor666
Основоположник на всё
42 / 42 / 4
Регистрация: 22.02.2010
Сообщений: 311
29.11.2011, 19:24 #4
Проталкивается? (сам такое видел).
Но последний переход на 0 мне самому непонятен.
Давно под ДОСом не работал. Забыл.
Наверно это завершает программу...
1
ahito1
2 / 2 / 0
Регистрация: 28.11.2011
Сообщений: 20
30.11.2011, 01:30  [ТС] #5
наверно 0 это выход в дос?
0
Mikl___
Автор FAQ
11329 / 5872 / 524
Регистрация: 11.11.2010
Сообщений: 10,913
30.11.2011, 04:59 #6
ahito1, Fedor666, здесь почитайте Извратные и не очень способы выйти из программы в DOS
2
30.11.2011, 04:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 04:59
Привет! Вот еще темы с ответами:

Как прочитать содержимое ячейки памяти, зная адрес? - Assembler
Как прочитать содержимое ячейки памяти, зная адрес?

(COM) Хотелось бы понять, как заставить программу отобразить собственное содержимое - Assembler
Здравствуйте. Сейчас учу ассемблер и первая проблема - > как без помощи Win32API написать программку, которая читает сама себя и...

Как и почему меняется содержимое регистров после выполнения очередной команды - Программирование
Как и почему меняется содержимое регистров после выполнения очередной команды?

Содержимое стека 2 дописать в содержимое стека 1. Напечатать полученный стек 1 - Pascal
Program stekk; type stecc=^st; st=record inf:real; link:stecc; end; var i:integer; top,top2,p,p2:stecc; begin


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru