WMmail.ru - сервис почтовых рассылок

воскресенье, 10 июня 2012 г.

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

 
Если выпуск не отображается, вы можете прочесть его на сайте Отказаться от рекламы
  
  
Отличная графика, бесконечные приключения, юмор и захватывающие задания ждут тебя в Royal Quest.
  

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

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

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

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

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

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

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

Консультация # 186329: Здравствуйте, уважаемые эксперты. Есть простейшая программа, выводит "Hello, World!", вот она:

Код :
.model small  stack 100h  data  msg	db 'Hello, World!$'  code  start:  	mov ax,@data  	mov ds,ax    	mov ah,9  	mov dx,o
...

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

Здравствуйте, уважаемые эксперты. Есть простейшая программа, выводит "Hello, World!", вот она:

Код :
.model small  stack 100h  data  msg	db 'Hello, World!$'  code  start:  	mov ax,@data  	mov ds,ax    	mov ah,9  	mov dx,offset msg  	int 21h    	mov ax,4c00h  	int 21h  end start

Просматривая дамп, получил странную картину(прилагаю): данные идут не с нуля, как в коде, а с некоторым смещением. Проверял на других программах, то же самое. Заметил, что перед данными каким-то образом влезает хвост программы из сегмента кода. Изменил код с упрощенной записи(.model small и т.п.) на классическую - баг изчез. Что бы это могло быть, и можно ли исправить?

Дата отправки: 06.06.2012, 17:58
Вопрос задал: Антон (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Антон!

Проблема связана с тем, как разработчики компиляторов MASM и TASM смотрят на упрощенные директивы определения сегментов. Оба компилятора одинаково генерируют служебную информацию о сегментах в том числе и о выравниваниии(masm,tasm соответственно):




Но по разному генерируют код:



Это видно по адресам 0х0000(В8 хх хх) и 0х0007(ВА хх хх).
MASM совмещает сегменты данных и кода учитывает выравнивание и сегмент данных начинается с ненулевой позиции текущего параграфа, тем самым сокращается длина сгенерированого кода. Полная противоположность TASM, сегмент всегда выравнивается на начало параграфа.

Удачи!

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 08.06.2012, 12:22

5
нет комментария
-----
Дата оценки: 08.06.2012, 14:09

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

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


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

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

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


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

Прошлые выпуски
RFpro.ru: Ассемблер? Это просто! Учимся программировать    09 июня 2012, 13:47
RFpro.ru: Ассемблер? Это просто! Учимся программировать    06 июня 2012, 14:06
RFpro.ru: Ассемблер? Это просто! Учимся программировать    06 июня 2012, 14:06

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

10 июня 2012 отмечают:
День работников легкой промышленности
День пограничных войск Молдовы
День отца в Бельгии
День Португалии, День Камоэнса и португальских сообществ
Неделя Федеральной государственной службы Канады

Именины: Василий, Дмитрий, Захар, Игнатий, Ираклий, Макар, Никита, Павел
 
 

Subscribe рекомендует
 
Компьютеры и интернет  →   рассылки   и   группы
  
Учим HTML
Эта рассылка проста и понятна. Без заумных выражений, для начинающих осваивать интернет. Рассчитана на широкий круг читателей.
Подписчиков: 738
  Рэп-мастерская. Как стать рэпером
Миссия рассылки - увеличить количество рэперов в СНГ. Стать рэпером может каждый! Это рэп-мастерская по выпуску профессиональных рэперов. Подпишись и стать одним из них!
Подписчиков: 408
  Все Технические Моменты Интернет - Бизнеса!
Не можете начать Бизнес в Интернете из за Технических Сложностей! Тогда узнайте это Легко и Доступно!
Подписчиков: 109
 
 
 
Подписан адрес: admin10383.deep@blogger.com
Код этой рассылки: comp.prog.assembler
Архив рассылки
Отписаться:  На сайте  Почтой
Поддержка подписчиков
Убрать рекламу
Другие рассылки этой тематики
Другие рассылки этого автора
 
Рассылка производится: Subscribe.Ru / ЗАО «Интернет-Проекты» / О компании / Политика конфиденциальности

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

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