С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Зеленый1
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100

Не могу разобраться

01.08.2011, 09:21. Показов 1454. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел в книге Калашникова "Ассемблер? Это просто!" пример, который до конца не могу понять:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
section .text
org 100h
mov sp, lab_1
mov ax, 9090h
push ax
int 20h
lab_1:
mov ah, 9
mov dx, Mess
int 21h
int 20h
section .data
Mess db 'It had really printed!', 0xd, 0xa, '$'
Возникают следующие вопросы:
1) строчка push ax - почему, когда заносим в стек два числа 90h, процессор воспринимает их как две команды nop? То есть просто данные в стек никак нельзя занести, в любом случае они будут восприниматься как команды, даже если нам этого не надо?
2) Как такое возможно, что одна команда int 20h получается затерта двумя командами nop?
3) Пользуюсь отладчиком AFD, и когда смотрю на стек, возникают вопросы: во-первых, почему когда просто загружаем программу в отладчик, в стеке уже есть какие-то данные? во-вторых, насколько я понял, нам показывают только 4 последних загруженных числа. Можно ли как-то просмотреть весь стек?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.08.2011, 09:21
Ответы с готовыми решениями:

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax, 3 int 10h ; устанавливаем...

Не могу разобраться с программой.
Здравствуйте! Мне понадобилась помощь с ассемблером...уже несколько часов сижу, и никак воедино мысли не соберу... Собственно задача: ...

Не могу разобраться с логикой
Вот такое задание: Рассматривая заданный байт как набор логических значений (x7 x6 x5 x4 x3 x1 x0) (true -1, false - 0), вычислить...

3
 Аватар для _Xan_
20 / 20 / 14
Регистрация: 19.09.2010
Сообщений: 85
01.08.2011, 15:02
1) Так как командой mov sp, lab_1 мы перемещаем стек с конца сегмента на метку lab_1 то командой push ax мы затираем две команды выше метки. Когда процессор переходит на смещение этих команд, там уже нет int 20h. Следовательно мы не выходим из программы.

2) int 20h занимает два байта эти два байта мы затираем двумя nop 'ами

3) Когда просто загружаем программу, в стеке уже есть "мусор" — то что осталось от предыдущих программ. Это как бы не в стеке, а на месте стека. То есть при команде pop ax мы не достанем этот мусор.
1
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
01.08.2011, 17:44
Было.
1
 Аватар для Зеленый1
2 / 2 / 2
Регистрация: 21.04.2011
Сообщений: 100
03.08.2011, 11:45  [ТС]
Возник ещё вопрос - когда запускаю в отладчике разные программы, то заметил, что в окне Memory всегда содержатся, по крайней мере в той части, которая есть на картинке, одни и теже данные. С чем это связано?
Миниатюры
Не могу разобраться  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.08.2011, 11:45
Помогаю со студенческими работами здесь

Не могу разобраться в коде
Привет друзья. Вот помогли начертать программку, которая очищает экран и выводит данные. завтра нужно ее здать, а я ее не могу никак толком...

Не могу разобраться с битовыми операциями
Дано 00110100 00110111 .... в конце 00111000 что надо сделать, чтобы получить (ниже) 1ый байт (известен), 2ой байт 1 из 3 ...

не могу разобраться с отладчиком ( Turbo debugger )
Добрый день господа! Начал изучать ассемблер и не могу разобраться с отладчиком ( Turbo debugger ) Скачал мануалы и решил не...

Резидентная программа вывода времени на экран
Есть готовая работающая программа, но никак не могу разобраться, как она работает:help:: puts macro string lea dx,string ...

Не могу разобраться с назначением некоторых инструкций и несколькими мелочами
Скачал мануал: www.intel.com/Assets/PDF/Manual/msc4.pdf На 20-21 странице список инструкций. С английским пока тугова-то, а потому...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru