; Описание данных и пересылки
S SEGMENT STACK
DW 64 DUP(?)
S ENDS
D SEGMENT ; сегмент данных
; ДИРЕКТИВЫ ОПИСАНИЯ ДАННЫХ
F DB 5 dup (?) ; 3 байта неициированных данных
H DD 0FAFBFEFFh ; в памяти будет в обратном порядке: FF FE FB FA
K DB 4 dup ('*') ; 4 инициализированных байт
L DW 20 DUP('1234') ; 20 инициализированных слов
D ENDS
C SEGMENT
ASSUME SS:S,CS:C,DS:D
Start PROC FAR
; Выполнение соглашений DOS и настройка регистра DS
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,D ; D - непосредственный операнд, в сегментный регистр
MOV DS,AX ; напрямую не пересылается!!!
;a)
MOV CH, K+3
;б)
MOV AX, L ;Непонятно, что значит некоторые значения в AX и DX
MOV DX, L+2 ; Пусть будет так...
;в)
MOV BYTE PTR H+3, DH ;пишем DH в на место самого старшего байта
;двойного слова H, а он хранится последним!
MOV BYTE PTR H, DL ;пишем DL в на место самого младшего байта
;двойного слова H, а он хранится первым!
;г)
MOV WORD PTR H+2, DX ;Н - двойное слово, поэтому надо написать WORD PTR
MOV WORD PTR K+2, DX ;K - адрес байт, поэтому тоже надо написать WORD PTR
; Возврат в DOS
RET
Start ENDP
C ENDS
END Start
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.