Итак, мы с Вами научимся открывать файл:
AH 3dH AL Режим доступа (0 = чтение, 1 = запись, 2 = оба, и т.д.) DS:DX адрес ASCII Строки с нулевым символом в конце Возврат AX код ошибки если CF установлен к CY Дескриптор файла, если нет ошибок
Давайте пробовать. Вот код.
MODEL SMALL STACK 256 DATASEG FileName DB '40.asm',0h OkStr DB 'OK','$' ErrorStr DB 'Error','$' CODESEG Start: mov ax,@data ; установка в ds адpеса mov ds,ax ; сегмента данных mov ah,3dh ; функция открытия файла mov al,0 ; читать mov dx, OFFSET FileName ; имя файла int 21h ; выполнить jc Error ; проверить флаг mov dx,OFFSET OkStr jmp Write Error: mov dx,OFFSET ErrorStr Write: Call WriteStr Exit: mov ah,04Ch ; функция DOS выхода из пpогpаммы mov al,0h ; код возвpата int 21h ; Вызов DOS остановка пpогpаммы INCLUDE function.asm End Start
Я функцию печати вынес в INСLUDE файл и создал там процедуру печати строки.
; сегмент смещение строки ; mov dx,offset str2 ; str2 DB 'Step 16 $' WriteStr PROC mov ah,09h int 21h ret WriteStr ENDP
Для того, что бы обнаружить ошибку я использовал условный переход jc, со списком переходов мы познакомимся очень скоро. Проверив результат, мы выводим две надписи в зависимости от успеха.