| Код | ;Data segment data segment para public "data" message db "Hello World$" on_close db "Press any key for continue...$" end_line db 10,'$' data ends ; ;Stack segment stk segment stack db 4 dup ("?") stk ends ; ;Code segment code segment para public "code" main proc ;Fill segment registers: assume cs:code,ds:data,ss:stk mov ax,data; mov ds,ax ; ;Begin ds:message on output mov ah,9 mov dx,offset message int 21h ;End output ; mov ah,9 mov dx,offset end_line int 21h ; mov ah,9 mov dx,offset on_close int 21h ; mov ah,1h int 21h ; ;End programm,return control to OS mov ax,4c00h int 21h ;End main endp code ends end main
|
Меня интересует, что же делает assume на самом деле ? Если эта операция связывает сегментные регистры с сегментами, то тогда зачем вручную заполнять ds ? |