;-------------------------------------------------
0000 CODESG SEGMENT PARA PUBLIC 'Code'
0000 BEGIN PROC FAR
ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
0000 1E PUSH DS
0001 2B C0 SUB AX,AX
0003 50 PUSH AX
0004 B8 ---- R MOV A,DATASG
0007 8E D8 MOV DS,AX
0009 FF 36 0002 R PUSH PRICE
000D FF 36 0000 R PUSH QTY
0011 9A 0000 ---- E CALL SUBMUL ;Вызвать подпрограмму
0016 CB RET
0017 BEGIN ENDP
0017 CODESG ENDS
END BEGIN

Segments and Groups:
N a m e Sise Align Combine Class
CODESG . . . . . . . . . . . . 0017 PARA NONE 'CODE'
DATASG . . . . . . . . . . . . 0004 PARA NONE 'DATA'
STACKSG. . . . . . . . . . . . 0080 PARA STACK 'STACK'

Symbols:
N a m e Type Value Attr
BEGIN. . . . . . . . . . . . . F PROC 0000 CODESG Length=0017
PRICE. . . . . . . . . . . . . L WORD 0002 DATASG
QTY. . . . . . . . . . . . . . L WORD 0000 DATASG
SUBMUL . . . . . . . . . . . . L FAR 0000 External


page 60,132
TITLE SUBMUL Вызываемая подпрограмма умножения
0000 CODESG SEGMENT PARA PUBLIC 'Code'
0000 SUBMUL PROC FAR
ASSUME CS:CODESG
PUBLIC SUMBUL
0000 55 PUSH BP
0001 8P EC MOV BP,SP



Ассемблер для IBM PC. Программы. 159


0003 8B 46 08 MOV AX,[BP+8] ;Стоимость
0006 8B 5E 06 MOV BX,[BP+6] ;Количество
0009 F7 E3 MUL BX ;Произведение в DX:AX
000B 5D POP BP
000F SUMBUL ENDP
000F CODESG ENDS
END

Segments and Groups:
N a m e Size Align Combine Class
CODESG . . . . . . . . . . . . 000F PARA PUBLIC 'CODE'

Symbols:
N a m e Type Value Attr
SUBMUL . . . . . . . . . . . . F PROC 0000 CODESG Global Length=000F


LINK
IBM Personal Computer Linker
Version 2.30 (C) Copyright IBM Corp 1981, 1985
Object Modules: B:CALLMUL4+B:SUBMUL4
Run File: [B:CALLMUL4.EXE]: <return>
List File: [NUL.MAP]: CON
Libraries [.LIB]: <return>

Start Stop Length Name Class

00000H 00019H 001AH CODESG CODE
00030H 00033H 0004H DATASG DATA
00040H 000BFH 0080H STACKSG STACK

PROGRAM entry point at 0000:0000
























Ассемблер для IBM PC. Программы. 160



LOAD"D:BASTEST.BAS

LIST
010 CLEAR ,32768!
020 ' для BLOAD
030 ' для DEFSEG
040 ' для точки входа в CALL
050 ' для вызова ASM-модуля
060 FOR N = 1 TO 5
070 INPUT "Hours "; H
080 INPUT "Rate "; R
090 W = H * R
100 PRINT "Wage = " W
110 NEXT N
120 END


TITLE LINKBAS Ассемблерная подпрограмма, вызываемая из BASIC
CODESG SEGMENT PARA 'CODE'
ASSUME CS:CODESG
CLRSCRN PROC FAR
PUSH BP ;Сохранить BP
MOV BP,SP ;База списка параметров
MOV AX,0600H ;Функция прокрутки
MOV BH,07 ; всего
MOV CX,0000 ; экрана
MOV DX,184FH
INT 10H
POP BP
RET ;Завершить подпрограмму
CLRSCRN ENDP
CODESG ENDS
END






















Ассемблер для IBM PC. Программы. 161



D>LINK

IBM Personal Computer Linker
Version 2.30 (C) Copyright IBM Corp. 1981, 1985

Object Modules [.OBJ]: LINKBAS
Run File [LINKBAS.EXE]: LINKBAS/HIGH
List File [NUL.MAP]: CON
Libraries [.LIB]:
Warning: no stack segment

Start Stop Length Name Class
00000H 00011H 00012H CODESG CODE
D>DEBUG BASIC.COM
-R
AX=0000 BX=0000 CX=0012 DX=0000 SP=FFFF BP=0000 SI=0000 DI=0000
DS=1410 ES=1410 SS=1410 CS=1410 IP=0100 NV UP EI PL NZ NA PO NC
1410:0100 E9E03E JMP 3FE3
-N D:LINKBAS.EXE
-L
-R
AX=FFA3 BX=0000 CX=0012 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=1410 ES=1410 SS=9FE0 CS=9FE0 IP=0000 NV UP EI PL NZ NA PO NC
9FE0:0000 55
-R SS
SS 9FE0
:1410
-R CS
CS 9FE0
:1410
-R IP
IP 0000
:0100
-G
Ok
DEF SEG = &H9EF0
Ok
BSAVE "D:CLRSCREEN.MOD",0,&H12
Ok
SYSTEM
Program terminated normally
-Q
D>BASIC
IBM Personal Computer Basic
Ver4sion D3.10 Copyright IBM Corp. 1981, 1985
61310 Bytes free
Ok
LOAD"D:BASTEST.BAS
Ok
20 BLOAD "D:CLRSCREEN.MOD"
30 DEF SEG = &H9FE0
40 CLRSCRN = 0



Ассемблер для IBM PC. Программы. 162


50 CALL CLRSCRN
LIST

10 CLEAR ,32768!
20 BLOAD "D:CLRSCRN.MOD"
30 DEF SEG = &H9FE0
40 CLRSCRN = 0
50 CALL CLRSCRN
60 FOR N = 1 TO 5
70 INPUT "HOURS"; H
80 INPUT "rATE"; R
90 W = H * R
100 PRINT "WAGE = " W
110 NEXT N
120 END
Ok



program pascall ( input, output );

procedure move_cursor( const row: integer;
const col: integer ); extern;
var
temp_row: integer;
temp_col: integer;

begin
write( 'Enter cursor row: ' );
readln( temp_row );

write( 'Enter cursor column:' );
readln( temp_col );

move_cursor( temprow, temp_col );
write( 'New cursor location' );
end.


TITLE MOVCUR Подпрограмма на ассемблере,
; вызываемая из программы на Паскале
PUBLIC MOVE_CURSOR
;----------------------------------------------------------
; MOVE_CURSOR: Устанавливает курсор
; по переданным параметрам
; Параметры: const row Строка и столбец
; const col для установки курсора
; Возвращаемое значение: Отсутствует
;----------------------------------------------------------
CODESEG SEGMENT PARA PUBLIC 'CODE'

MOVE_CURSOR PROC FAR
ASSUME CS:CODESEG



Ассемблер для IBM PC. Программы. 163


ROWWPAR EQU 8 ;Параметр "строка"
COLPAR EQU 6 ;Параметр "столбец"

PUSH BP ;Сохранить регистр BP
MOV BP,SP ;Установить BP на параметры

MOV SI,[BP+ROWPAR] ;SI указывает на строку
MOV DH,[SI] ;Поместить столбец в DL

MOV AH,02 ;Функция установки курсора
SUB BH,BH ;Страница #0
INT 10H

POP BP ;Вернуться
RET 4 ; в вызывающую программу
MOVE_CURSOR ENDP
CODESEG ENDS
END



Адрес
начала Программа

00000 Таблица векторов прерываний (см. гл. 23)

00400 Область связи с постоянной памятью (ROM)

00500 Область связи с операционной системой (DOS)

00600 IBMBIO.COM
Буфер каталога
Дисковый буфер
Блок параметров дисковода/таблица распределения
файлов (FAT, одна для каждого дисковода)

XXXX0 Резидентная часть командного процессора COMMAND.COM

XXXX0 Область памяти для программ (типа COM или EXE)

XXXX0 Пользовательский стек для COM-программ (256 байтов)

XXXX0 Транзитная часть командного процессора COMMAND.COM
(записывается в старшие адреса памяти).



TITLE EXDOS (EXE) Функция DOS 4BH для выполнения DIR
CSEG GMENT PARA 'Code'
ASSUME CS:CSEG,DS:CSEG,ES:CSEG
BEGIN: JMP SHORT MAIN
;----------------------------------------------------------
PARAREA DW ? ;Адрес строки вызова



Ассемблер для IBM PC. Программы. 164


DW OFFSET DIRCOM ;Указатель
; на командную строку
DW CSEG
DW OFFSET FCB1 ;Указатель на FCB2
DW CSEG

DIRCOM DB 17,'/C DIR D:',13,0
FCB1 DB 16 DUP(0)
FCB2 DB 16 DUP(0)
PROGNAM DB 'D:COMMAND.COM',0
; ---------------------------------------------------------
MAIN PROC FAR
MOV AH,4AH ;Получить 64K памяти
MOV BH,100H ; в параграфах
INT 21H
JC E10ERR ;Нет памяти?

MOV DI,2CH ;Получить сегментный адрес
MOV AX,[DI] ; строки вызова
LEA SI,PARAREA ; и записать его в
MOV [SI],AX ; 1 слово блока параметров
MOV AX,CS ;Загрузить в DS и ES
MOV DS,AX ; адрес CSEG
MOV ES,AX

MOV AH,4BH ;Функция загрузки
MOV AL,00 ; и выполнения
LEA BX,PARAREA ; COMMAND.COM
LEA DX,PROGNAM
INT 21H ;Вызвать DOS
JC E20ERR ;Ошибка выполнения?
MOV AL,00 ;Нет кода ошибки
JMP X10XIT
0ERR:
MOV AL,01 ;Код ошибки 1
JMP X10XIT
0ERR:
MOV AL,02 ;Код ошибки 2
JMP X10XIT
0XIT:
MOV AH,4CH ;Функция завершения
INT 21H ;Вызвать DOS
IN ENDP
EG ENDS
END



Адрес Функция прерывания
(шест.) (шест.)

0-3 0 Деление на ноль
4-7 1 Пошаговый режим (трассировка для DEBUG)



Ассемблер для IBM PC. Программы. 165


8-B 2 Немаскируемое прерывание (NMI)
C-F 3 Точка останова в потоке команд (для DEBUG)
10-13 4 Переполнение регистров АЛУ
14-17 5 Печать экрана
18-1F Зарезервировано
20-23 8 Сигнал от таймера
24-27 9 Сигнал от клавиатуры
28-37 A,B,C,D Используются для AT
38-3B E Сигнал от дисковода
3C-3F F Обслуживание принтера
40-43 10 Управление экраном (см. гл. 8,9,10)
44-47 11 Запрос списка оборудования (см. гл. 9)
48-4B 12 Запрос размера физической памяти (см. гл. 2)
4C-4F 13 Управление дисковым вводом-выводом (гл. 18)
50-53 14 Управление коммуникационным вводом-выводом
54-57 15 Управление магнитофоном и спец.функции для AT
58-5B 16 Управление вводом с клавиатуры (гл. 9)
5C-5F 17 Вывод на принтер (гл. 19)
60-63 18 Обращение к BASIC в ПЗУ (ROM)
64-67 19 Перезагрузка системы
68-6B 1A Запрос и установка времени и даты
6C-6F 1B Получение управления по прерыванию с клавиатуры
70-73 1C Получение управления по прерыванию от таймера
74-77 1D Адрес таблицы параметров инициализации дисплея
78-7B 1E Адрес таблицы параметров дисковода
7C-7F 1F Адрес таблицы графических символов
80-83 20 DOS Нормальное завершение программы
84-87 21 DOS Обращение к функциям DOS
88-8B 22 DOS Адрес подпрограммы обработки завершения
8C-8F 23 DOS Адрес подпрограммы реакции на Ctrl+Break
90-93 24 DOS Вектор подпрограммы реакции на фатальную ошибку
94-97 25 DOS Абсолютное чтение секторов диска
98-9B 26 DOS Абсолютная запись на сектора диска
9C-9F 27 DOS Завершение программы, оставляющее ее резидентом
A0-FF 28-3F DOS Операции DOS
100-1FF 40-7F Зарезервировано
200-217 80-85 Зарезервировано для BASIC
218-3C3 86-F0 Используется BASIC-интерпретатором
3C4-3FF F1-FF Зарезервировано

Примечание: прерывания 00-1F для BIOS, 20-FF для DOS и BASIC



TITLE RESIDENT (COM) Резидентная программа для очистки
; экрана и установки цвета при нажатии
; Alt+Left Shift
;----------------------------------------------------------

INTTAB SEGMENT AT 0H ;Таблица векторов прерываний:
ORG 9H*4 ; адрес для Int 9H,
KBADDR LABEL DWORD ; двойное слово
INTTAB ENDS



Ассемблер для IBM PC. Программы. 166


;----------------------------------------------------------

ROMAREA SEGMENT AT 400H ;Область параметров BIOS:
ORG 17H ; адрес флага клавиатуры,
KBFLAG DB ? ; состояние Alt + Shift
ROMAREA ENDS
;----------------------------------------------------------

CSEG SEGMENT PARA ;Сегмент кода
ASSUME CS:CS
ORG 100H
BEGIN: JMP INITZ ;Выполняется только один раз

KBSAVE DD ? ;Для адреса INT 9 BIOS
; Очистка экрана и установка цветов:
; ---------------------------------
COLORS PROC NEAR ;Процедура выполняется
PUSH AX ; при нажатии Alt+Left Shift
PUSH BX
PUSH CX ;Сохранить регистры
PUSH DX
PUSH SI
PUSH DI
PUSH DS
PUSH ES
PUSHF
CALL KBSAV ;Обработать прерывание
ASSUME DS:ROMAREA
MOV AX,ROMAREA ;Установить DS для
MOV DS,AX ; доступа к состоянию
MOV AL,KB AG ; Alt+Left Shift
CMP AL,00001010B ;Alt+Left Shift нажаты?
JNE EXIT ; нет - выйти
MOV AX,0600H ;Функция прокрутки
MOV BH,61H ;Установить цвет
MOV CX,00
MOV DX,18 FH
INT 10H
EXIT:
POP ES ;Восстановить регистры
POP DS
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
IRET ;Вернуться
COLORS ENDP

; Подпрограмма инициализации:
; --------------------------
INITZE PROC NEAR ;Выполнять только один раз



Ассемблер для IBM PC. Программы. 167


ASSUME DS:INTTAB
PUSH DS ;Обеспечить возврат в DOS
MOV AX,INTTAB ;Установить сегмент данных
MOV DS,AX
CLI ;Запретить прерывания
;Замена адреса обработчика:
MOV AX,WORD PTR KBADDR ;Сохранить адрес
MOV WORD PTR KBSAVE,AX ; BIOS
MOV AX,WORD PTR BADDR+2
MOV WORD PTR KBSAVE+2,AX
MOV WORD PTR KBADDR,OFFSET COLORS ;Заменить
MOV WORD PTR KBADDR+2,CS ; адрес BIOS
STI ;Разрешить прерывания
MOV DX,OFFSET INITZE ;Размер программы
INT 27H ;Завершить и остаться
INITZE ENDP ; резидентом

CSEG ENDS
END BEGIN



TITLE SOUND (COM) Процедура для генерации звука
SOUNSG SEGMENT PARA 'Code'
ASSUME CS:SOUNG,DS:SOUNG,SS:SOUNG
ORG 100H
BEGIN: JMP SHORT MAIN
; -------------------------------------------------------
DURTION DW 1000 ;Время звучания
TONE DW 256H ;Высота (частота) звука
; -------------------------------------------------------
MAIN PROC NEAR
IN AL,61H ;Получить и сохранить
PUSH AX ; данные порта
CLI ;Запретить прерывания
CALL B10SPKR ;Произвести звук
POP AX ;Восстановить значение
OUT 61H,AL ; порта
STI ;Разрешить прерывания
RET
MAIN ENDP

B10SPKR PROC NEAR
B20: MOV DX,DURTION ;Установить время звучания
B30:
AND AL,11111100B ;Очистить биты 0 и 1
OUT 61H,AL ;Передать на динамик
MOV CX,TONE ;Установить частоту
B40:
LOOP B40 ;Задержка времени
OR AL,00000010B ;Установить бит 1
OUT 61H,AL ;Передать на динамик
MOV CX,TONE ;становить частоту



Ассемблер для IBM PC. Программы. 168


B50:
LOOP B50 ;Задержка времени
DEC DX ;Уменьшить время звучания
JNZ B30 ;Продолжать?
SHL DURTION,1 ; нет - увеличить время,
SHR TONE,1 ; сократить частоту
JNZ B20 ;Нулевая частота?
RET ; да - выйти
B10SPKR ENDP

SOUNSG ENDS
END BEGIN












































Ассемблер для IBM PC 98



TITLE RECORD (COM) Проверка директивы RECORD
0000 CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:CODESG,SS:CODESG
0100 ORG 100H
0100 EB 02 BEGIN: JMP SHORT MAIN
; -----------------------------------------------------
BITREC RECORD BIT1:3,BIT2:7,BIT3:6 ;Определить запись
0102 9A AD DEFBITS BITREC <101B,0110110B,011010B> ;Инициализировать биты
; -----------------------------------------------------
0104 MAIN PROC NEAR
0104 A10: ;Ширина:
0104 B7 10 MOV BH,WIDTH BITREC ; записи (16)
0106 B0 07 MOV AL,WIDTH BIT2 ; поля (07)
0108 B10: ;Величина сдвига:
0108 B1 0D MOV CL,BIT1 ; шест.0D
010A B1 06 MOV CL,BIT2 ; 06
010C B1 00 MOV CL,BIT3 ; 00
010E C10: ;Маска:
010E B8 E000 MOV AX,MASK BIT1 ; шест.E000
0111 BB 1FC0 MOV BX,MASK BIT2 ; 1FC0
0114 B9 003F MOV CX,MASK BIT3 ; 003F
0117 D10: ;Выделение BIT2:
0117 A1 0102 R MOV AX,DEFBITS ; получить запись,
011A 25 1FC0 AND AX,MASK BIT2 ; очистить BIT1 и BIT3,
011D B1 06 MOV CL,BIT2 ; получить сдвиг 06,
011F D3 E8 SHR AX,CL ; сдвинуть вправо
0121 E10: ;Выделение BIT1:
0121 A1 0102 R MOV AX,DEFBITS ; получить запись,
0124 B1 0D MOV CL,BIT1 ; получить сдвиг 13,
0126 D3 E8 SHR AX,CL ; сдвинуть вправо
0128 C3 RET
0129 MAIN ENDP
0129 CODESG ENDS
END BEGIN


Structures and records:
N a m e Widht # fields
Shift Widht Mask Initial
BITREC . . . . . . . . . . . 0010 0003
BIT1 . . . . . . . . . . . . 000D 0003 E000 0000
BIT2 . . . . . . . . . . . . . 0006 0007 1FC0 0000
BIT3 . . . . . . . . . . . . 0000 0006 003F 0000

Segments and Groups:
N a m e Size Align Combine Class
CODESG . . . . . . . . . . . . 0129 PARA NONE 'CODE'

Symbols:
N a m e Type Value Attr
A10. . . . . . . . . . . . . . L NEAR 0104 CODESG
B10. . . . . . . . . . . . . . L NEAR 0108 CODESG



Ассемблер для IBM PC 99


BEGIN. . . . . . . . . . . . . L NEAR 0100 CODESG
C10. . . . . . . . . . . . . . L NEAR 010E CODESG
D10. . . . . . . . . . . . . . L NEAR 0117 CODESG
DEFBITS. . . . . . . . . . . . L WORD 0102 CODESG
E10. . . . . . . . . . . . . . L NEAR 0121 CODESG
MAIN . . . . . . . . . . . . . N PROC 0104 CODESG Length =0025


















































Ассемблер для IBM PC 100



TITLE DSTRUC (COM) Определение структуры
0000 CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG,DS:CODESG,SS:CODESG
0100 ORG 100H
0100 EB 29 BEGIN: JMP SHORT MAIN
; ---------------------------------------------
PARLIST STRUC ;Список параметров
0000 19 MAXLEN DB 25 ;
0001 ?? ACTLEN DB ? ;
0002 19 [ 20 ] NAMEIN DB 25 DUP(' ') ;
001B PARLIST ENDS
;
0102 19 PARAMS PARLIST <> ;Область структуры
0103 ??
0104 19 [ 20 ]
011D 57 68 61 74 20 69 PROMPT DB 'What is name?', 'S'
73 20 6E 61 6D 65
3F 24
; ---------------------------------------------
012B MAIN PROC NEAR
012B B4 09 MOV AH,09 ;Выдать запрос
012D 8D 16 011D R LEA DX,PROMPT
0131 CD 21 INT 21H
0133 B4 0A MOV AH,0AH ;Получить ввод
0135 8D 16 0102 R LEA DX,PARAMS
0139 CD 21 INT 21H
013B A0 0103 R MOV AL,PARAMS.ACTLEN ;Длина ввода
; ...
013E C3 RET
013F MAIN ENDP
013F CODESG ENDS
END BEGIN


Structures and records:
N a m e Width # fields
Shift Width Masc Initial
PARLIST. . . . . . . . . . . . . 001B 0003
MAXLEN . . . . . . . . . . . . 0000
ACTLEN . . . . . . . . . . . . 0001
NAMEIN . . . . . . . . . . . . 0002

Segments and Groups:
N a m e Size Align Combine Class
CODESG . . . . . . . . . . . . . 013F PARA NONE 'CODE'

Symbols:
N a m e Type Value Attr
BEGIN. . . . . . . . . . . . . L NEAR 0100 CODESG
MAIN . . . . . . . . . . . . . N PROC 012B CODESG Length =0014
PARAMS . . . . . . . . . . . . L 001B 0102 CODESG
PROMPT . . . . . . . . . . . . L BYTE 011D CODESG



Ассемблер для IBM PC 101



Основные, базовые и индексные регистры:
Биты: w = 0 w = 1
000 AL AX
001 CL CX
010 DL DX
011 BL BX
100 AH SP
101 CH BP
110 DH SI
111 BH DI

Биты: Сегментный регистр:
00 ES
01 CS
10 SS
11 DS



r/m mod=00 mod=01 mod=10 mod=1.1 mod=11
w=0 w=1
000 BX+SI BX+SI+disp BX+SI+disp AL AX
001 BX+DI BX+DI+disp BX+DI+disp CL CX
010 BP+SI BP+SI+disp BP+SI+disp DL DX
011 BP+DI BP+DI+disp BP+DI+disp BL BX
100 SI SI+disp SI+disp AH SP
101 DI DI+disp DI+disp CH BP
110 Direct BP+disp BP+disp DH SI
111 BX BX+disp BX+disp BH DI


























Ассемблер для IBM PC 102



Таблица A-1 Набор ASCII символов

Дес Шест Симв Дес Шест Симв Дес Шест Симв Дес Шест Симв

000 00h Нуль 032 20h sp 064 40h @ 096 60h `
001 01h Начало заголовка 033 21h ! 065 41h A 097 61h a
002 02h Начало текста 034 22h " 066 42h B 098 62h b
003 03h Конец текста 035 23h # 067 43h C 099 63h c
004 04h Конец передачи 036 24h $ 068 44h D 100 64h d
005 05h КТМ 037 25h % 069 45h E 101 65h e
006 06h Да 038 26h & 070 46h F 102 66h f
007 07h Звонок 039 27h ' 071 47h G 103 67h g
008 08h Возврат на шаг 040 28h ( 072 48h H 104 68h h
009 09h Гориз.табуляция 041 29h ) 073 49h I 105 69h i
010 0Ah Перевод строки 042 2Ah * 074 4Ah J 106 6Ah j
011 0Bh Верт.табуляция 043 2Bh + 075 4Bh K 107 6Bh k
012 0Ch Перевод страницы 044 2Ch , 076 4Ch L 108 6Ch l
013 0Dh Возврат каретки 045 2Dh - 077 4Dh M 109 6Dh m
014 0Eh Shift out 046 2Eh . 078 4Eh N 110 6Eh n
015 0Fh Shift in 047 2Fh / 079 4Fh O 111 6Fh o
016 10h Data line esc 048 30h 0 080 50h P 112 70h p
017 11h Управление 1 049 31h 1 081 51h Q 113 71h q
018 12h Управление 2 050 32h 2 082 52h R 114 72h r
019 13h Управление 3 051 33h 3 083 53h S 115 73h s
020 14h Управление 4 052 34h 4 084 54h T 116 74h t
021 15h Нет 053 35h 5 085 55h U 117 75h u
022 16h Синхронизация 054 36h 6 086 56h V 118 76h v
023 17h Конец блока 055 37h 7 087 57h W 119 77h w
024 18h Анулирование 056 38h 8 088 58h X 120 78h x
025 19h End of medium 057 39h 9 089 59h Y 121 79h y
026 1Ah Замена 058 3Ah : 090 5Ah Z 122 7Ah z
027 1Bh Escape 059 3Bh ; 091 5Bh [ 123 7Bh {
028 1Ch Раздел.файла 060 3Ch < 092 5Ch \ 124 7Ch |
029 1Dh Раздел.группы 061 3Dh = 093 5Dh 125 7Dh }
030 1Eh Раздел.записи 062 3Eh > 094 5Eh ^ 126 7Eh ~
031 1Fh Раздел.единицы 063 3Fh ? 095 5Fh _ 127 7Fh Забой



















Ассемблер для IBM PC 103



Таблица 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 |
+------------+-----------+----------+--------+-------+------+------+-----+