ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »