Читать «Assembler. Программирование на языке ассемблера IBM PC» онлайн - страница 33
Unknown Author
Итак, оператор PTR используется в следующих ситуациях: когда типы операндов команд неизвестны и потому надо указать явно тип одного из операндов, и когда нас не устраивает тип, приписанный имени при его описании, и потому мы должны указать нужный нам тип.
3.2.3. Команда XCHG
В машинных программах приходится довольно часто переставлять местами какие-то Две величины, и хотя такую перестановку можно реализовать только с помощью команды MOV, в ПК введена специальная команда для этого:
Перестановка (exchange): XCHG opl,op2
Эта команда меняет местами значения своих операндов (они должны быть либо байтами, либо словами): opl <=> ор2. Флаги при этом не меняются.
Пример:
MOV АХ,62 ;АХ=62
MOV SI,135 ;SI=135
XCHG AX,SI ;AX=135, SI=62
Допустимые типы операндов команды XCHG:
r8
ш8
г16
ш16
г8, ш8 г8
г16, ш16 г16
перестановка байтов
перестановка слов
Как видно, не допускается перестановка содержимого двух ячеек памяти. Если все-таки надо сделать такую перестановку, то это реализуется через какой-нибудь регистр. Например, поменять местами значения байтовых переменных X и Y можно так:
MOV AL,X XCHG AL,Y MOV X,AL
3.3.
; AL=X
;AL=Y, Y=X
;X=Y (исходное значение)
1
в квадратных скобках будем указывать конструкции, которые можно опускать; например, запись А[В]С означает либо текст АВС, либо текст АС;
• в фигурные скобки будем заключать конструкции, которые могут быть повторены любое число раз, в том числе и ни разу; например, запись А {ВС) означает любой из следующих текстов: А, АВС, АВСВС, АВСВСВС и т. д.
2
в качестве символов можно использовать русские буквы;
• в строках одноименные большие и малые буквы не отождествляются ('А+В' и ’а+Ъ' - разные строки);
• если в качестве символа или внутри строки надо указать кавычку, то делается это так: если символ или строка заключена в одинарные кавычки, то одинарную кавычку надо удваивать, а вот двойную кавычку не надо удваивать, и наоборот, если внешние кавычки двойные, то двойная кавычка должна удваиваться, а одинарная не удваивается:
'don''t' 'don"t' "don't" "don""t"
Собственно ради того, чтобы не удваивать внутренние кавычки, в язык и введены два вида кавычек, ограничивающих символы и строки.
3
Команды сложения и вычитания
Прежде чем перечислить имеющиеся в ПК команды сложения и вычитания, рассмотрим особенности выполнения этих операций.
3.3.1. Особенности сложения и вычитания целых чисел в ПК
Беззнаковые числа складываются как обычно, только в двоичной системе счисления. Однако здесь есть одна проблема: что делать, если сумма получится очень большой - такой, что она не умещается в ячейке? Например, если при ячейке размером в 8 битов мы складываем 250 и 10, то получим число 260 (100000100b), которое не "влезает" в ячейку.