Программа, по идее, должна выдавать 5 разноцветных окон. На самом деле появляется окно, которое тут же закрывается. Вот исходный код: CSEG segment org 100h Begin: xor al,al mov bh,10h mov cx,0510h push cx mov dx,103Eh mov ah,06h int 10h mov cx,0004h Next_sym: call Color loop Next_sym mov ah,10h int 16h int 20h Color proc add bh,10h mov bl,ch pop cx add cx,0101h sub dx,0101h int 10h push cx xor cx,cx mov ch,bl ret Color endp CSEG ends end Begin Объясните ещё, пожалуйста, как правильно использовать AFDpro. Пчему-то если я нажимаю на F2, то дойдя до строки "call Color" AFD пишет, что программа завершена успешно, и возвращается на 100-ю строку. Если нажимать F1 то вроде как всё в порядке (дохожит до конца инструкции, в регистрах и стеке загружены нужные данные).
При pop cx в процедуре Color из стека достается не значение cx, а адрес возврата. После int 16 в той же процедуре значение cx уже не определено, но возможно равно return_address+257 т.е. по ret программа продолжает свое выполнение не на команде loop Next_sym, а через 257 байт после нее. Пройдите программу в пошаговом режиме - не такая уж она и большая