Помогите разобраться с assume - Assembler

Узнай цену своей работы

Формулировка задачи:

Пытаюсь разобраться с assume, не могу понять почему (Строка 11) не компилируется, если (Строка 00) отсутствует. Дайте пищу для размышлений, Google не помог разобраться. Какова роль инициализации ds я понимаю, а вот каким образом assume влияет на вычисление адресов понять не могу.
data_11     segment 
mesg    db 00,'$'
data_11     ends
data_22     segment 
msg     db 00,'$'
data_22     ends
 
text segment 
assume cs:text, ds:data_11  
begin:  mov ax,data_11
        mov ds,ax
        
        inc msg
 
assume  ds:data_22          ; Строка 00     
        mov ax,data_22
        mov ds,ax 
        
        inc msg            ; Строка 11
        
text    ends
stk     segment stack
        db 256 dup(0)
stk     ends
        end begin

Решение задачи: «Помогите разобраться с assume»

textual
Листинг программы
mov ax,data
mov ds,ax

Объяснение кода листинга программы

  1. mov ax, data - переносит значение из сегмента данных (data) в регистр ax.
  2. mov ds, ax - переносит значение из регистра ax в сегмент данных (ds).

Оцени полезность:

7   голосов , оценка 3.857 из 5