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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2013, 20:57   #1
vibraxo
Пользователь
 
Регистрация: 05.05.2013
Сообщений: 22
Стрелка инициализация

Подскажите, что такое инициализация сегментов или инициализация регистров? Вот строчка программы из ассемблера:
mov Ax, DATA
mov DS, AX
vibraxo вне форума Ответить с цитированием
Старый 10.06.2013, 21:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Здесь указатель на начало секции, имя которой DATA записывается в регистр аккумулятора. А уже потом из аккумулятора в регистр, предназначенный для хранения адреса начала памяти, где по идее хранятся данные.
Если не ошибаюсь в старом асме нельзя просто так присвоить в DS что-то (опкодов не было таких), поэтому приходилось через AX переприсваивать.
В целом это инициализация регистра сегмента данных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2013, 22:09   #3
vibraxo
Пользователь
 
Регистрация: 05.05.2013
Сообщений: 22
По умолчанию

Вот меня и интерсует слово "инициализация регистра" Как это понимать?
vibraxo вне форума Ответить с цитированием
Старый 10.06.2013, 22:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Это означает "Поместить что-то в осмысленное и важное регистр, что потом понадобится в качестве стартовой точки для последующих команд программы"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2013, 22:59   #5
vibraxo
Пользователь
 
Регистрация: 05.05.2013
Сообщений: 22
По умолчанию

Я вкурсе, что программа не рабочая. Но это важно
Код:
Assume cs text, ds data
myproc proc
mov AX, Data
mov DS, AX
mov BX, 2100H
mov CX, 50H
mov AL, 0
A1: - метка
mov BYTE PTR(Bx), AL - это что?
loop A1 - цикл. Счетчик CX уменьшается до 0.
mov ax, 4c00h - команда на завершение
int 21h - обращение к ДОС/прерывание
myproc endp - завершаем процедуру
text ends - это что?
data segment - данные сегмента??
data ends - завершение сегмента?
end myproc - конец проги
Сколько может быть в программах endp, ends, myproc?

А можешь обьяснить ВСе строчки, что они делают и т.д. Проверь, плз
vibraxo вне форума Ответить с цитированием
Старый 11.06.2013, 03:39   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сколько может быть в программах endp, ends, myproc?
vibraxo
  1. myproc - имя, которое ты дал процедуре, а мог назвать ее eprst, qwerty и т.д. на свое усмотрение, в программе не может быть двух меток или двух процедур или двух переменных с одинаковыми именами
  2. на каждую объявленную процедуру myproc proc должен быть объявлен myproc endp - конец процедуры
    1. есть стандартное объявление сегментов через
      Код:
      CSEG SEGMENT
      assume cs:cseg,ds:cseg
      ...
      CSEG ENDS
      тогда на каждое ИМЯ_СЕГМЕНТА SEGMENT в конце каждого сегмента понадобится ИМЯ_СЕГМЕНТА ENDS
    2. и есть упрощенное объявление сегментов через .code .stack .data в этом случае ends не нужен
  3. вход в программу обозначают через start: в конце программы необходимо поставить end start
Возьми учебник, проверяй и объясняй строчки своих программ самостоятельно

Последний раз редактировалось Mikl___; 11.06.2013 в 03:42.
Mikl___ вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация DirectX _-Re@l-_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 07.02.2011 16:38
Инициализация Aleksey1989 Общие вопросы Delphi 10 11.09.2010 21:50
Инициализация Krumyura Общие вопросы C/C++ 5 20.03.2010 23:37
Инициализация Glut windzor Общие вопросы .NET 2 07.02.2010 12:17
Инициализация окна Anny Общие вопросы Delphi 9 13.03.2007 11:48