и последняя строки билистинга окаймляют
Первая и последняя строки билистинга окаймляют подпрограмму. В них содержится название подпрограммы (intoos) и указание о том, что она может находиться в памяти достаточно далеко от точки обращения (far -признак дальнего вызова).
В каждой строке может находиться комментарий, размещаемый справа после точки с запятой. В нашем примере прокомментированы все строки для тех, кто впервые сталкивается с текстом программы на языке ассемблера.
|
|
|
|
|
|
0000
|
IntDos PROC far
|
/начало подпрограммы
|
|
|
0000 60
|
pusha
|
; сохранение всех регистров
|
|
|
0001 1E
|
push ds
|
; сохранение ds
|
|
|
0002 ОЕ
|
push cs
|
; сохранение cs
|
|
|
0003 1F
|
pop ds
|
; пересылка cs n ds
|
|
|
0004 А1 0018
|
mov ax, RegAX
|
; пересылка поля RegAX в ах
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0007
|
CD 33
|
|
int
|
33h
|
; прерывание с номером 33h
|
|
|
0009
|
89 IE
|
001A
|
mov
|
RcgBX,bx
|
; запоминание регистра bк
|
|
|
000D
|
89 0E
|
001C
|
mov
|
RegCX, cx
|
; запоминание регистра сх
|
|
|
00Н
|
89 16
|
001E
|
mov
|
RegDX, dx
|
;запоминание регистра dx
|
|
|
0015
|
IF
|
|
pop
|
ds
|
;восстановление ds
|
|
|
0016
|
61
|
|
popa
|
; восстановление регистров
|
|
|
0017
|
CB
|
|
ret
|
; возврат из подпрограммы
|
|
|
0018
|
0000
|
RegAX
|
DW
|
0
|
;поле для содержимого ах
|
|
|
001A
|
0000
|
RegBX
|
DW
|
0
|
;поле для содержимого Ьх
|
|
|
001C
|
0000
|
RegCX
|
DW
|
0
|
;поле для содержимого сх
|
|
|
001E
|
0000
|
RegDX
|
DW
|
0
|
;поле для содержимого dx
|
|
|
|
|
IntDos
|
ENDP
|
|
конец подпрограммы
|
|
|
|
|
|
|
|
|
|
Текст приведенной выше подпрограммы в шестнадцатеричном формате запоминается в блоке данных:
DATA &Н60,&Н1Е,&НОЕ,&H1F,&НА1,&Н18,SH00,&HCD,&НЗЗ,&Н89
DATA &Н1Е,&Н1А,&Н00,&Н89,&Н0Е,&Н1С,SH00,&H89,&H16,&H1E
DATA &H00,&H1F,&H61,&HCB
Для размещения этой подпрограммы и расположенных в ее хвосте четырех двухбайтовых полей в памяти резервируется массив длиной в 32 байта -intProgd то 16) AS" INTEGER. Переписи в этот массив подлежат только первые 24 байта блока данных — собственно текст программы без полей
Содержание Назад Вперед