ВУЗ:
Составители:
Рубрика:
5
Любые ассемблерные программы содержат по крайней мере один сег-
мент-сегмент кода. В некоторых программах используются сегмент для стековой
памяти и сегмент данных для определения данных. Сегмент описывается дирек-
тивой SEGMENT следующим образом:
имя SEGMENT [параметры]
. . . . . .
имя ENDS
Сегмент кода содержит одну или несколько процедур, определяемых ди-
рективой PROC:
имя сегмента
SEGMENT
имя процедуры PROC
. . . . . . . . . . . . . . . .
RET
имя процедуры ENDP
имя сегмента ENDS
Пример простой исходной программы на Ассемблере представлен ниже:
TITLE PROG1 ПРИМЕР РЕГИСТРОВЫХ ОПЕРАЦИЙ
;-------------------------------------------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DB 12 DUP(?)
STACKSG ENDS
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME SS:STACKSG,CS:CODESG,DS:NOTHING
PUSH DS ; cохранение DS в стеке. (1)
SUB AX,AX ; формирование нуля в АХ. (2)
PUSH AX ; cохранение АХ в стеке. (3)
MOV AX,0123H ; передача константы в регистр. (4)
ADD AX,0025H ; сложение регистра с константой. (5)
MOV BX,AX ; передача из регистра в регистр. (6)
ADD BX,AX ; сложение
содержимого регистров. (7)
MOV CX,BX ; передача из регистра в регистр. (8)
SUB CX,AX ; вычитание содержимого регистров (9)
SUB AX,AX ; формирование нуля в АХ. (10)
NOP ; нет операции (задержка). (11)
RET ; возврат из процедуры. (12)
BEGIN ENDP ;КОНЕЦ ПРОЦЕДУРЫ.
CODESG ENDS ;КОНЕЦ СЕГМЕНТА.
END BEGIN ;КОНЕЦ ПРОГРАММЫ.
5
Любые ассемблерные программы содержат по крайней мере один сег-
мент-сегмент кода. В некоторых программах используются сегмент для стековой
памяти и сегмент данных для определения данных. Сегмент описывается дирек-
тивой SEGMENT следующим образом:
имя SEGMENT [параметры]
. . . . . .
имя ENDS
Сегмент кода содержит одну или несколько процедур, определяемых ди-
рективой PROC:
имя сегмента SEGMENT
имя процедуры PROC
. . . . . . . . . . . . . . . .
RET
имя процедуры ENDP
имя сегмента ENDS
Пример простой исходной программы на Ассемблере представлен ниже:
TITLE PROG1 ПРИМЕР РЕГИСТРОВЫХ ОПЕРАЦИЙ
;-------------------------------------------------------------------------
STACKSG SEGMENT PARA STACK 'Stack'
DB 12 DUP(?)
STACKSG ENDS
CODESG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME SS:STACKSG,CS:CODESG,DS:NOTHING
PUSH DS ; cохранение DS в стеке. (1)
SUB AX,AX ; формирование нуля в АХ. (2)
PUSH AX ; cохранение АХ в стеке. (3)
MOV AX,0123H ; передача константы в регистр. (4)
ADD AX,0025H ; сложение регистра с константой. (5)
MOV BX,AX ; передача из регистра в регистр. (6)
ADD BX,AX ; сложение содержимого регистров. (7)
MOV CX,BX ; передача из регистра в регистр. (8)
SUB CX,AX ; вычитание содержимого регистров (9)
SUB AX,AX ; формирование нуля в АХ. (10)
NOP ; нет операции (задержка). (11)
RET ; возврат из процедуры. (12)
BEGIN ENDP ;КОНЕЦ ПРОЦЕДУРЫ.
CODESG ENDS ;КОНЕЦ СЕГМЕНТА.
END BEGIN ;КОНЕЦ ПРОГРАММЫ.
Страницы
- « первая
- ‹ предыдущая
- …
- 3
- 4
- 5
- 6
- 7
- …
- следующая ›
- последняя »
