Вот вопросик. Сначала была программа написал на основе цикла Код (Text): masm model small .stack 128 .data mess1 db 0Ah,0Dh db ' O D I T S Z A P C', 0Ah,0Dh db ' F F F F F F * F * F * F', 0Ah,0Dh db '_______________________________' db 0Ah,0Dh,'$' .code myproc proc assume CS:@code, DS:@data, SS:@stack mov AX,@data mov DS,AX lea DX,mess1 mov AH,09h int 21h sub AX,AX sub Ax,1 pushf pop BX mov Cx,10 p1: rol BX,1 mov AL,BL and AL,1 or AL,30h mov DL,AL mov AH,2 int 21h mov DL,' ' mov AH,2 int 21h dec CX cmp CX,0 jne p1 ;loop p1 mov AX,4C00h int 21h myproc endp end myproc Потом сделал на основе процедуры и call Код (Text): masm model small .stack 128 .data mess1 db 0Ah,0Dh db ' O D I T S Z A P C', 0Ah,0Dh db ' F F F F F F * F * F * F', 0Ah,0Dh db '_______________________________' db 0Ah,0Dh,'$' .code myproc proc assume CS:@code, DS:@data, SS:@stack mov AX,@data mov DS,AX lea DX,mess1 mov AH,09h int 21h sub AX,AX add Ax,3 pushf pop BX mov cx,10 p1: call outflags loop p1 mov AX,4C00h int 21h myproc endp outflags proc rol BX,1 mov AL,BL and AL,1 or AL,30h mov DL,AL mov AH,2 int 21h mov DL,' ' mov AH,2 int 21h ret outflags endp end myproc Я убрал декрементирование CX и счетчик CX( mov CX,10) . по Идеи должно зацикливаться. или call както влияет на счётчик? можете объяснить?
Ну да . TD юзаю , он один раз выполяет call и вылетает. при цилке хоть видно что счётчик уменьшаеться. Хм.Как именно 21h может влияеть на CX.
Если убрать mov cx,10 то программа уже не корректна работает. Так значит где то автоматически декрементируеться cx.
Exorcist когда что-то каллиш, это может потрещить твои регистры. если не уверен что вызываемый не потрещит - сохраняй перед вызовом.
Декремент СХ убрал, а вот mov CX,10 у тебя осталось...обе программы написаны на основе цикла, просто LOOP сравнивает СХ с 0 и если СХ>0 то декрементит его и скачет на метку. У тебя ж в первом сорсе стоит в комментах ;loop -раскомменть и удали 3 предыдущие строки-получишь тот же результат
Exorcist Понаписали!!! Команда loop работает с регистром CX. Она его декрементирует. Или счетчик тебе святой дух обеспечит Кстати, декремент с проверкой эффективнее loop.