Частное Остаток Шест.
42936 / 16 2683 8 8 (младшая цифра)
2683 / 16 167 11 B
167 / 16 10 7 7
10 / 16 0 10 A (старшая цифра)
Для преобразования чисел из десятичного формата в шестнадцатеричный
можно также воспользоваться таблицей B-1. Для десятичного числа 42936
необходимо найти в таблице число равное или ближайшее меньшее исходному, и
записать соответствующую шестнадцатеричную цифру и ее позицию. Затем
следует вычесть найденное десятичное число из 42936 и с полученной
разностью проделать проделать ту же операцию:
Дес. Шест.
Исходное десятичное число 42936
Вычесть ближайшее меньшее 40960 A000
-----
Разность 1976
Вычесть ближайшее меньшее 1792 700
----
Разность 184
Вычесть ближайшее меньшее 176 B0
---
Разность 8 8
----
Результирующее шест. число A7B8
Таблица B-1. Шестнадцатерично-десятичные преобразования
ЪДДДДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДВДДДДДДДВДДДДДДВДДДДДВДДДДД¬
¦Ш ¦Ш ¦Ш ¦Ш ¦Ш ¦Ш ¦Ш ¦Ш ¦
¦Е ¦Е ¦Е ¦Е ¦Е ¦Е ¦Е ¦Е ¦
¦С ¦С ¦С ¦С ¦С ¦С ¦С ¦С ¦
¦Т ДЕС ¦Т ДЕС ¦Т ДЕС ¦Т ДЕС ¦Т ДЕС¦Т ДЕС¦Т ДЕС¦Т ДЕС¦
ГДДДДДДДДДДДД†ДДДДДДДДДДД†ДДДДДДДДДД†ДДДДДДДД†ДДДДДДД†ДДДДДД†ДДДДД†ДДДДДґ
¦0 0¦0 0¦0 0¦0 0¦0 0¦0 0¦0 0¦0 0¦
¦1 268435456¦1 16777216¦1 1048576¦1 65536¦1 4096¦1 256¦1 16¦1 1¦
¦2 536870912¦2 33554432¦2 2097152¦2 131072¦2 8192¦2 512¦2 32¦2 2¦
¦3 805306368¦3 50331648¦3 3145728¦3 196608¦3 12288¦3 768¦3 48¦3 3¦
¦4 1073741824¦4 67108864¦4 4194304¦4 262144¦4 16384¦4 1024¦4 64¦4 4¦
¦5 1342177280¦5 83886080¦5 5242880¦5 327680¦5 20480¦5 1280¦5 80¦5 5¦
¦6 1610612736¦6 100663296¦6 6291456¦6 393216¦6 24576¦6 1536¦6 96¦6 6¦
¦7 1879048192¦7 117440512¦7 7340032¦7 458752¦7 28672¦7 1792¦7 112¦7 7¦
¦8 2147483648¦8 134217728¦8 8388608¦8 524288¦8 32768¦8 2048¦8 128¦8 8¦
¦9 2415919104¦9 150994944¦9 9437184¦9 589824¦9 36864¦9 2304¦9 144¦9 9¦
¦A 2684354560¦A 167772160¦A 10485760¦A 655360¦A 40960¦A 2560¦A 160¦A 10¦
¦B 2952790016¦B 184549376¦B 11534336¦B 720896¦B 45056¦B 2816¦B 176¦B 11¦
¦C 3221225472¦C 201326592¦C 12582912¦C 786432¦C 49152¦C 3072¦C 192¦C 12¦
¦D 3489660928¦D 218103808¦D 13631488¦D 851968¦D 53248¦D 3328¦D 208¦D 13¦
¦E 3758096384¦E 234881024¦E 14680064¦E 917504¦E 57344¦E 3584¦E 224¦E 14¦
¦F 4026531840¦F 251658240¦F 15728640¦F 983040¦F 61440¦F 3840¦F 240¦F 15¦
ГДДДДДДДДДДДД†ДДДДДДДДДДД†ДДДДДДДДДД†ДДДДДДДД†ДДДДДДД†ДДДДДД†ДДДДД†ДДДДДґ
¦ 8 ¦ 7 ¦ 6 ¦ 5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦
АДДДДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДБДДДДДДДБДДДДДДБДДДДДБДДДДДЩ
Шестнадцатиpичные позиции
ПРИЛОЖЕНИЕ 3: Зарезервированные слова
________________________________________________________________
Большинство из следующих зарезервированных слов при использовании их
для определении элементов данных могут привести к ошибкам ассемблирования
(в ряде случаев - к весьма грубым):
Имена регистров
-----------------
AH BH CH DH CS SS BP
AL BL CL DL DS SI SP
AX BX CX DX ES DI
Мнемокоды
-----------
AAA DIV JLE JS OR SBB
AAD ESC JMP JZ OUT SCAS
AAM HLT JNA LAHF POP SHL
AAS IDIV JNAE LDS POPF SHR
ADC IMUL JNB LEA PUSH STC
ADD IN JNBE LES PUSHF STD
AND INC JNE LOCK RCL STI
CALL INT JNG LODS RCR STOS
CBW INTO JNGE LOOP REP SUB
CLC IRET JNL LOOPE REPE TEST
CLD JA JNLE LOOPNE REPNE WAIT
CLI JAE JNO LOOPNZ REPNZ XCHG
CMC JB JNP LOOPZ REPZ XLAT
CMP JBE JNS MOV RET XOR
CMPS JCXZ JNZ MOVS ROL
CWD JE JO MUL ROR
DAA JG JP NEG SAHF
DAS JGE JPE NOP SAL
DEC JL JPO NOT SAR
Директивы ассемблера
----------------------
ASSUME END EXTRN IFNB LOCAL PURGE
COMMENT ENDIF GROUP IFNDEF MACRO RECORD
DB ENDM IF IF1 NAME REPT
DD ENDP IFB IF2 ORG SEGMENT
DQ ENDS IFDEF INCLUDE OUT STRUC
DT EQU IFDIF IRP PAGE SUBTTL
DW EVEN IFE IRPC PROC TITLE
ELSE EXITM IFIDN LABEL PUBLIC
Прочие элементы языка
-----------------------
BYTE FAR LENGTH MOD PRT THIS
COMMENT GE LINE NE SEG TYPE
CON GT LT NEAR SHORT WIDTH
DUP HIGH LOW NOTHING SIZE WORD
EQ LE MASK OFFSET STACK
ПРИЛОЖЕНИЕ 4: РЕЖИМЫ АССЕМБЛИРОВАНИЯ И КОМПОНОВКИ
________________________________________________________________
Ассемблирование программы
---------------------------
На дискете с ассемблерным пакетом имеются две версии ассемблера:
ASM.EXE - сокращенная версия, в которой отсутствуют некоторые возможности,
и MASM.EXE - полная версия, имеющая все возможности и являющаяся
предпочтительной. Для ассемблирования вставьте ассемблерную дискету в
дисковод А, а дискету с исходной программой - в дисковод В. Кто имеет
винчестер или RAM-диск (виртуальный диск в памяти), могут в следующих
примерах заменить соответствующие номера дисководов. Введите команды MASM
(или ASM), что приведет к загрузке программы ассемблера с диска в память.
На экране появится:
source filename [.ASM]:
object filename [filename.OBJ]:
source listing [NUL.LST]:
cross-reference [NUL.CRF]:
Курсор при этом расположится в конце первой строки, где необходимо
указать имя файла. Введите номер дисковода (если он не определен по
умолчанию) и имя файла. Не следует набирать тип файла ASM - ассемблер
подразумевает это. Во втором запросе предполагается аналогичное имя файла
(но можно его заменить). Если необходимо, введите номер дисковода. Третий
запрос предполагает, что листинг ассемблирования программы не требуется.
Последний запрос предполагает, что листинг перекрестных ссылок не
требуется. Для получения листинга на дисководе В введите В:.
Если вы хотите оставить значения по умолчанию, то в трех последних
запросах просто нажмите Return. Ниже приведен пример запросов и ответов, в
результате которых ассемблер должен создать OBJ-, LST- и CRF-файлы на
дисководе В:
source filename [.ASM]:B:ASMPROG [Return]
object filename [filename.OBJ]:B: [Return]
source listing [NUL.LST]:B: [Return]
cross-reference [NUL.CRF]:B: [Return]
Альтернативный вариант вызова ассемблера:
MASM B:name.ASM,B:name.OBJ,B:name.LST,B:name.CRF
В следующей команде используются значения по умолчанию:
MASM B:filename,B:,B:,В:;
- первый параметр B:filename идентифицирует исходную программу,
которая должна быть ассемблирована;
- второй параметр В: указывает ассемблеру на необходимость
записать объектный модуль на дисковод В под именем filename.OBJ;
- третий параметр В: указывает ассемблеру на необходимость
записать листинг ассемблирования на дисковод В под именем
filename.LST;
- четвертый параметр В: приводит к генерации файла перекрестных
ссылок под именем filename.CRF;
- Точка с запятой в конце команды указывает ассемблеру на
необходимость игнорировать любые последующие параметры. Хотя в
приведенном примере таких параметров нет, кодирование точки с запятой
является хорошим правилом для других вариантов команды.
При наличии ошибок ассемблирования программа ASM выдает только коды
ошибок, которые объяснены в руководстве по Ассемблеру, в то время как
программа MASM выдает и коды ошибок, и пояснения к ним. Всего имеется
около 100 сообщений об ошибках.
Режимы ассемблирования включают следующие:
MASM /A организовать исходные сегменты в алфавитном порядке;
MASM /D генерировать LST-файл в обоих проходах ассемблирования;
MASM /E ассемблировать команды для сопроцессора 8087 и генерировать
связи для языка ФОРТРАН и пакета эмуляции языка ПАСКАЛЬ;
MASM /N отменить генерацию таблицы идентификаторов;
MASM /R ассемблировать команды для сопроцессора 8087 (аналогично /E);
MASM /S сохранить исходные сегменты в оригинальной последовательности.
Файл перекрестных ссылок
--------------------------
Генерируемый в ходе ассемблирования CRF-файл может использоваться для
создания листинга перекрестных ссылок на метки, идентификаторы и
переменные в программе. Для получения CRF-фала необходимо на четвертый
запрос ассемблера ответить, например. В:, полагая, что файл должен быть
создан на диске В:
cross-reference [NUL.CRF]:B: [Return]
Для преобразования полученного CRF-файла в удобно отсортированную
таблицу перекрестных ссылок используется программа CREF, имеющаяся на
ассемблерном диске. Введите команду CREF; на экране появится два запроса:
Cref filename [.CRF]:
List filename [cross-ref.REF]:
На первый запрос введите имя CRF-файла, например B:ASMPROG. На второй
запрос можно ввести только номер дисковода и получить имя по умолчанию.
Такой выбор приведет к преобразованию CRF-файла в файл перекрестных ссылок
по имени filename.REF на дисководе В. Можно также кодировать всю команду в
одной строке, например:
CREF В: filename. CRF, CON иди CREF B:filename.CRF,B:
В первом примере файл перекрестных ссылок выводится на экран. Второй
пример записывает файл по имени filename.REF на диск В.
Компоновка программ
---------------------
Для компоновки ЕХЕ-программы вставьте дискету DOS в дисковод А, а
дискету с программой - в дисковод В. Те, кто имеют винчестер или RAM-диск
(виртуальный диск в памяти), могут в следующих примерах заменить