Вот этот фрагмент мне понятен (решение выражения (D^2-A)^2\(A^2+B)-20): mov ax,A mul ax add ax,B mov bx,ax mov ax,D imul ax sub ax,A mul ax div bx sub ax,20 mov rez, ax А вот когда выводим результат вообще ничего не понятно. Можете кто-то построчно объяснить что к чему? ;------------------------------------------------------------------------- ;Вывод результата на экран xor cx,cx mov bx,10 mod: xor dx,dx div bx push dx inc cx or ax,ax jnz mod print: pop dx add dl,30h mov ah,2 int 21h loop print
Вам же уже написал на ответах@mail.ru))))) И еще не плодите тут кучу тем, спрашивайте в какой то одной!
Kroleg Что делают команды можно найти в учебниках по ассемблеру. В выводе почти все команды подготовительно-вычислительные, mov ah,2 int 21h по-моему вывод символа. Смысл системного вызова ДОС int 21h тоже можно найти в учебниках. Никто не будет тратить свое время чтобы вам это объяснять.
Kroleg первый цикл (mod) переводит число (ax) в десятичную запись справа налево, сохраняя цифры на стеке второй цикл (print) печатает цифры из стека, соотвественно, в обратном порядке, т.е. слева направо, т.е. как нам и нужно. xor cx,cx ; счетчик цифр mov bx,10 ; база системы счисления (десятичная) mod: xor dx,dx ; очистка старшего слова перед делением на reg16 div bx ; try guess push dx ; остаток от деления -> в стек inc cx ; any ideas? or ax,ax ; проверяем, осталось ли что-нибудь в делимом jnz mod ; ax is Non Zero -> mod print: pop dx ; достаем цифру из стека add dl,30h ; прибавляем символ нуля ('0' = 30h) mov ah,2 ; функция вывода на консоль int 21h ; прерывание DOS loop print ; цикл, уменьшает cx, и обрывается как только cx == 0 С уважением, КО.