Иллюстрированный самоучитель по Turbo Pascal

Синтаксис ассемблерных команд

Операции HIGH и LOW

HIGH возвращает старший, a LOW – младший байт выражения типа слова, следующего за символами операции. Выражение должно иметь абсолютное непосредственное значение. Например:

mov al,High $1000 {AL = $10}

Операция: (двоеточие)

Указывает ассемблеру, что выражение после операции должно относиться к сегменту, указанному до операции. Результат – ссылка на память со значением второго выражения. Например:

mov ax, [10] {AX = слово по адресу DS:10}
mov ax,BS:[10] {АХ = слово по адресу BS:10}

Операция OFFSET

Возвращает смещение выражения, следующего за операцией. Результат имеет непосредственное значение. Например:

mov ах,Х {АХ = слово по адресу переменной X}
mov ax,offset X {АХ = смещение адреса X}

Операция SEG

Возвращает сегмент выражения, следующего за операцией. Результат имеет непосредственное значение.

Операция PTR

Осуществляет приведение типа. Результат – ссылка на память со значением выражения после операции и типом выражения до операции. Например:

Function Swap(X: Integer): Integer;
{Меняет местами байты в слове X}
begin
asm
mov ax,X
mov BYTE PTR @Result,ah
mov BYTE PTR @Result+l,al
end;
end;

Операции * и /

* – умножение, / – целочисленное деление. Оба выражения должны иметь непосредственные абсолютные значения, такое же значение имеет и результат операции. Например:

mov ax,2*2 {АХ = 4}
mov ах,17/3. {АХ = 5}

Операция MOD

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

mov ах,17 mod 3 {АХ =2}

Операции SHL и SHR

Осуществляют логический сдвиг влево (SHL) или вправо (SHR) выражения, стоящего до операции, на количество разрядов, определяемое выражением после операции. Оба выражения должны иметь непосредственные абсолютные значения, такое же значение имеет и результат операции. Например:

mov ah,1 shl 7 {Ah = $80 = 128}

Бинарная операция +

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

Бинарная операция -

Вычитание двух выражений. Первое выражение может быть любого класса, а второе должно быть абсолютным непосредственным значением. Результат относится к тому же классу, что и первое выражение.

Побитовые операции NOT, AND, OR, XOR

Имеют такой же смысл, что и одноименные операции Турбо Паскаля над целыми числами. Оба выражения должны иметь непосредственные абсолютные значения, такое же значение имеет и результат операции.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.