Реклама

вторник, 24 апреля 2012 г.

RFpro.ru: Ассемблер? Это просто! Учимся программировать

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Большой выбор платьев и блуз. Для офиса и не только!
  
  
  

  Мои подписки      Мои группы      Мои новости     
        Автор 
Калашников О.А.
      
  
Компьютеры и интернет   →   Софт   →   Программирование   →   RFpro.ru: Ассемблер? Это просто! Учимся программировать
  
RFpro.ru: Ассемблер? Это просто! Учимся программировать
 
 

Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Академик
Рейтинг: 10408
• повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Академик
Рейтинг: 3928
• повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2362
• повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1513
Дата выхода:24.04.2012, 00:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:97 / 40
Вопросов / ответов:1 / 1

Консультация # 185866: Здравствуйте, уважаемые эксперты! Прошу вас помочь со следующим заданием. 1.Организация стековой памяти. Разработать программу с вызовом внутрисегментной команды CALL и RET ; 2.Организация стековой памяти. Разработать программу с вызовом межсегментной команды CALL и RET ; 3.Организация стековой памяти. Разработать программу вложенными вызо...


Консультация # 185866:

Здравствуйте, уважаемые эксперты! Прошу вас помочь со следующим заданием.
1.Организация стековой памяти. Разработать программу с вызовом внутрисегментной команды CALL и RET ;
2.Организация стековой памяти. Разработать программу с вызовом межсегментной команды CALL и RET ;
3.Организация стековой памяти. Разработать программу вложенными вызовами внутрисегментных и межсегментных команд CALL и RET.
Благодарю, если сможете помочь.

Дата отправки: 20.04.2012, 23:18
Вопрос задал: NataD (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Лысков Игорь Витальевич (Старший модератор):

Здравствуйте, Наталия!
1.Организация стековой памяти.
Разработать программу с вызовом внутрисегментной команды CALL и RET ;

При внутрисегментном вызове в стек заносится смещение следующей команды.
Сегментный регистр CS не меняется
По внутрисегментной команде ret извлекается из стека адрес, куда и передается управление

Код :
_stack	segment	'stack' 	dw	100h dup(?) _stack	ends  code	segment	'code' assume	cs:code start: 	mov	ax, 5 	call	square  	mov	ax, 4c00h 	int	21h  square	proc 	mul	ax 	ret square	endp  code	ends  	end	start

2.Организация стековой памяти.
Разработать программу с вызовом межсегментной команды CALL и RET ;

При межсегментном вызове в стек заносится сначала сегмент текущего кода,
затем смещение следующей команды.
После чего происходит длинный вызов подпрограммы
По межсегментной команде ret из стека извлекаются и смещение и сегмент,
т.о. происходит длинный возврат в точку вызова
Код :
_stack	segment	'stack' 	dw	100h dup(?) _stack	ends  code1	segment	'code' assume	cs:code1 start: 	mov	ax, 5 	call	square  	mov	ax, 4c00h 	int	21h code1	ends  code2	segment	'code' assume	cs:code2 square	proc	far 	mul	ax 	ret square	endp code2	ends  	end	start


3.Организация стековой памяти.
Разработать программу вложенными вызовами внутрисегментных и
межсегментных команд CALL и RET.

В этом примере сначала делаем межсегментный вызов подпрограммы square
В которой происходит внутрисегментный вызов подпрограммы add1,
из которой, в свою очередь, происходит межсегментный вызов подпрограммы sub1
В стек заносится каждый раз либо короткий адрес, либо длинный адрес,
в зависимости от типа вызова.
Код :
_stack	segment	'stack' 	dw	100h dup(?) _stack	ends  code1	segment	'code' assume	cs:code1 start: 	mov	ax, 5 	call	square  	mov	ax, 4c00h 	int	21h  sub1	proc	far 	dec	ax 	ret sub1	endp  code1	ends  code2	segment	'code' assume	cs:code2 square	proc	far 	mul	ax 	call	add1 	ret square	endp  add1	proc	near 	inc	ax 	call	sub1 	ret add1	endp  code2	ends  	end	start

Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 21.04.2012, 03:36

5
нет комментария
-----
Дата оценки: 22.04.2012, 13:13

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


 
 
Комментировать выпуск
     В избранное

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    18 апреля 2012, 17:33
RFpro.ru: Ассемблер? Это просто! Учимся программировать    12 апреля 2012, 16:32
RFpro.ru: Ассемблер? Это просто! Учимся программировать    10 апреля 2012, 16:34

Все выпуски рассылки

24 апреля 2012 отмечают:
Международный день солидарности молодежи
Акшая Трития
Радоница
День памяти жертв геноцида в Армении
День Пасхального восстания 1916 года

Именины: Ефим, Петр, Прохор, Яков
 
 

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Как легко и быстро выучить английский язык?
Исключительно практический курс английского языка, который покажет Вам, как достичь своих целей с помощью свободного владения английским языком. Немедленно подписывайтесь на нашу рассылку и начните менять свою жизнь к лучшему!
Подписчиков: 1054
  Новости веб-мира
Новости из мира интернет.
Подписчиков: 328
  Каталог софта Vidon.RU
Новые поступления программ для Windows, UNIX, КПК. Новости компьютерной тематики.
Подписчиков: 1155
 
 
 
Подписан адрес: tuladod.comp@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

Комментариев нет:

Отправить комментарий