Всем привет! у меня есть программа по выводу текущего времени на экран. * COM file Писала не я, поэтому я вообще дуб в Ассемблере...мне необходимо чтоб помимо времени выходила еще строка...Размер проги -... Файл КОМ...((( не знаю как ...и что .model tiny ; Тип модели памяти - "крошечная" .code ; Сегмент кода. Хотя в com-файле всего то один сегмент .386 ; Использовать инструкции 386 процессора (для команды shld) org 100h ; Директива для com программы (если быть точнее, ; то это выделение 256 байт под PSP) Begin: ; Метка начала программы mov ah, 02h ; 02h - ф-ция получения времени int 1Ah ; Получим системное время mov ah, ch ; в ch у нас часы. Поместим в рег. ah для вывода call print_ah ; Выводим показания часов mov al, ':' ; Выведем разделитель ":" int 29h ; с помощью ф-ции ДОСа ; Далее аналогично для минут и секунд. mov ah, 02h int 1Ah mov ah, cl call print_ah ; Выводим показания минут mov al, ':' int 29h mov ah, 02h int 1Ah mov ah, dh call print_ah ; Выводим показания секунд mov ax, 0 int 16h ; Ожидаем нажатия любой клавиши int 20h ; Выход в ДОС ; Процедура по выводу значения регистра на экран (старшой части регистра ax) print_ah proc ; Процедура вывода на экран содержимого регистра ah в hex-форме xchg dx, ax ; DX = AX mov cx, 2 ; Число цифр для вывода (Если поставить 4 - выведет содержимое всего регистра) shift_ax: shld ax, dx, 4 ; Получить в AL очередную цифру rol dx, 4 ; Удалить ее из DX and al, 0Fh ; Оставить в AL только эту цифру cmp al, 0Ah ; Три команды, переводящие sbb al, 69h ; Шестнадцатеричную цифру в AL das ; В соответствующий ASCII-код int 29h ; Вывод на экран loop shift_ax ; Повторить для всех цифр ret ; Выход из процедуры и возврат в основной код print_ah endp end Begin ; Типа конец
badbyy Насколько я помню, при старте com-программы в cx содержится размер программы. Сохраняй его в переменную, переводи в ASCII символы и выводи на экран, проблем-то
badbyy то есть ты хотел, что бы за тебя кто-то писал программу? Тогда говори об этом прямо. Для тех, кто "вообще ничего в ассемблере не шаришь", но хотят научится есть раздел WASM.BEGINNERS, для тех кто учится не хочет/не может есть, соответственно, раздел WASM.COMMERCE