Последние публикации
стили и дизайн Что выгоднее: покупать горячую воду или ..
17-03-2014
секрет успеха Профессия: риэлтор
25-12-2013
разное Мегаталантливый Мэрилин Мэнсон
25-12-2013
рыбалка и охота баллистический маятник
12-07-2013
Название
Автор
Рубрика

Анекдот
- Может ли у Нового Русского быть ветер в карманах?
- Может, но это не ветер, а кошелек с кондиционером...

компьютерные технологии
Язык Макроассемблера IBM PC
В пособии рассматривается язык макроассеблера для персональных ЭВМ типа IBM PC (язык MASM, версия 4.0) .

быть выполнена следующей, всегда определяется парой CS: IP (попытка изменить в таких командах сегментный регистр будет безуспешной) .


Отметим, что сегментиорвание по регистру CS касается именно адреса перехода, а не адреса той ячейки, где он может находиться. Например, в команде безусловного перехода по адресу, находящемуся в ячейке X: JMP X имя X сегментируется по регистру DS, а вот адрес перехода, взятый из ячейки X, уже сегментируется по регистру CS.


2) Адреса во всех других командах, кроме строковых (STOS, MOVS, SCAS и CMPS) , по умолчанию сегментируются: - по регистру DS, если среди указанных регистров-модификаторов нет регистра BP; - по регистру SS, если один из модификаторов - регистр BP.


Таким образом, адреса вида A, A[BX], A[SI], A[DI], A[BX][SI] и A[BX][DI] сегментируются по регистру DS, а адреса A[BP], A[BP][SI] и A[BP][DI] - по регистру SS, т.е. адреса трех последних видов используются для доступа к ячейкам стека.


3) В строковых командах STOS, MOVS, SCAS и CMPS, имеющих два операнда-адреса, на которые указывают индексные регистры SI и DI, один из операндов (на который указывает SI) сегментируется по регистру DS, а другой (на него указывает DI) по регистру ES.


1.4.4 Программные сегменты. Директива ASSUME


Рассмотрим, как сегментирование проявляется в программах на MASM.


Для того чтобы указать, что некоторая группа предложений программы на MASM образуют единый сегмент памяти, они оформляются как программный сегмент: перед ними ставится директива SEGMENT, после них - директива ENDS, причем в начале обеих этих директив должно быть указано одно и то же имя, играющее роль имени сегмента. Программа же в целом представляет собой последовательность таких программных сегментов, в конце которой указывается директива конца программы END, например: DT1 SEGMENT ;программный сегмент с именем DT1 A DB 0 B DW?


DT1 ENDS ; DT2 SEGMENT ;программный сегмент DT2 C DB 'hello' DT2 ENDS ; CODE SEGMENT ;программный сегмент CODE ASSUME CS: CODE, DS: DT1, ES: DT2 BEG: MOV AX, DT2 MOV DS, AX MOV BH, C... CODE ENDS END BEG ;конец текста программы Предложения программного



Дата публикации: 15-06-2007
Прочитано: 7646 раз
Страниц: 28
-14-
[<][ 1 | ... | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 ][>]

Дополнительно на данную тему
Компьютерные сети и телекоммуникации
Корпоративная сеть
Корпоративные ЛВС
Компьютерные сети
Turbo Vision
   
Рейтинг@Mail.ru
ENQ.ru © 2005-2012
Генерация страницы: 0.288 сек. и
11 запросов к базе данных за 0.003 сек.
Designed by ZmEi