Работ №05. Программирование ветвлений и циклов 1


Команда косвенного межсегментного перехода



Pdf көрінісі
бет4/6
Дата15.10.2023
өлшемі427.25 Kb.
#480816
түріРешение
1   2   3   4   5   6
Р05 Ветвления и циклы

Команда косвенного межсегментного перехода в 
качестве операнда использует адрес области памяти 
смещения + сегментной части целевого адреса перехода. 
Например: 
DSEG SEGMENT PARA PUBLIC ‘DATA’ 
ADDR DD M1 
. . . . . . . . 
CSEG SEGMENT PARA PUBLIC ‘CODE’ 
ASSUME CS:CSEG, DS:DSEG, SS:STACK 
. . . . . . 
JMP ADDR 
CSEG ENDS 
CS1 SEGMENT PARA PUBLIC ‘CODE’ 
ASSUME CS:CS1, DS:DS1, SS:ST1 
M1 LABEL FAR 
MOV AX, BX 
. . . .... 
CS1 ENDS 
Под-вариант 
подобного 
перехода 
– 
косвенный 
регистровый межсегментный переход. В нем адрес 
перехода указывается в регистре, что часто используется 
при программировании динамических переходов, когда 


адрес перехода определяется в процессе выполнения 
программы и помещается в регистр: 
SEG SEGMENT PARA PUBLIC ‘DATA’ 
ADDR DD M1 
. . . . . . . . 
CSEG SEGMENT PARA PUBLIC ‘CODE’ 
ASSUME CS:CSEG, DS:DSEG, SS:STACK 
. . . . . . 
LEA BX, ADDR 
JMP DWORD PTR [BX] 
. . . . . . 
CSEG ENDS 
CS1 SEGMENT PARA PUBLIC ‘CODE’ 
ASSUME CS:CS1, DS:DS1, SS:ST1 
M1 LABEL FAR 
MOV AX, BX 
. . . . . . . . 
CS1 ENDS 
В двойное слово ADDR помещается смещение адреса и 
начала сегмента кода, включающего метку M1 и начало 
сегмента CS1. 
Т.о. модификаторы SHORT PTRNEAR PTR и WORD PTR 
применяют 
при 
организации 
внутрисегментных 
переходов, а FAR PTR и DWORD PTR – при 
межсегментных переходах. 




Достарыңызбен бөлісу:
1   2   3   4   5   6




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет