Разбираюсь с книгой Калашникова - в 14 главе есть описание построения любой рамки, в центре окна. Никак не могу разобраться, как изменить процедуру таким образом, чтобы "рисовать" рамку по указанным координатам, а не по центру. Вот код оригинала: Код (Text): Draw_frame proc push es push 0B800h pop es mov ax,Height_X shr al,1 mov dh,11 sub dh,al mov ax,Width_Y shr al,1 mov dl,39 sub dl,al call Get_linear push di mov ah,Num_attr mov al,218 stosw mov al,196 mov cx,Width_Y rep stosw mov al,191 stosw pop di add di,160 mov cx,Height_X Next_lined: push cx push di mov al,179 stosw mov al,32 mov cx,Width_Y rep stosw mov al,186 stosw pop di add di,160 pop cx loop Next_lined mov al,192 stosw mov al,196 mov cx,Width_Y rep stosw mov al,217 stosw pop es ret Draw_frame endp Get_linear proc push ax push bx push dx shl dl,1 . mov al,dh mov bl,160 mul bl mov di,ax xor dh,dh add di,dx pop dx pop bx pop ax ret Get_linear endp
Вроде по-русски написано. Центр в 11-й строке у него и 39-м столбце. Т.е. если знаешь координаты левого верхнего угла, то надо просто в DH его записать. Все упрощается.