Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 19:34   #1
Olya_lya
 
Регистрация: 21.10.2011
Сообщений: 6
Восклицание как прописать путь к файлу с клавиатуры на ассемблере

нужно переделать код: ввести путь к файлу через клавиатуру средствами BIOS. Подскажите как это прописать!

Код:
.model tiny				
.stack 100h				
.data					

cr	equ	0dh				
lf	equ	0ah				


;данные
;MSG db cr,lf,'Enter path to file: $'
FileName db '1.txt',0
ErrorOpenFile db cr,lf,'Error! Unable to open file!$'
EndF db cr,lf, 'Reading the file is complete!$'


HANDLE dw ?				
symbol db ?


.code					
main:
	mov ax, @data		
	mov ds, ax 			

;установка курсора
	mov ah,02h			
	mov bh,00			
	mov dh,09h			
	mov dl,01h			
	int 10h
	
	
;открытие файла 
	mov ah,3dh			
	mov al,00h			
	
	
	lea dx, FileName	 
	int 21h				
	
	lea dx, ErrorOpenFile
	jc open_error		
	mov HANDLE,ax		

;чтение файла
read:	
	mov ah,3fh		
	mov bx,HANDLE		
	mov cx,1			
	lea dx,symbol		
	int 21h

	jc exit				

;проверка количества прочитанных символов
	cmp ax,cx			;если ax-количество прочитанных символов не равно 1 (сх)
						;то конец файла

;загрузка адреса сообщения об окончании работы
	lea dx, EndF		
	jnz endFile

	
	
	mov al,symbol		;прочитан 1 символ
	mov bx, 07h			;значение атрибута по умолчанию 
	push ax				;запоминание в стеке прочитанного символа
	
;изменение цвета
	or al, 20h			;строчные и прописные буквы проверяются одним условием 
	cmp al, 'a'			;сравнение: 
	jb Printing			;если меньше символа 'a',то игнорируется
	
	cmp al,'z'			;сравнение: 
	ja Printing			;если больше символа 'z',то игнорируется
	mov bx, 02h			;изменение атрибутов символа (цвет)
	
	
;вывод символа с атрибутами
Printing:
	mov ah, 09h			;вывод символа
	mov al, 20h			;вывод пробела
	int 10h				
	
	pop dx				;восстановление символа из стека

;проверка кода "в начало строки"	
	cmp dl,0dh			
	jz read				

;проверка кода "перейти на новую строку"	
	cmp dl,0ah			
	jnz isOut			
	
	mov ah,02h			
	int 21h
	
	mov dl,0dh			

	
isOut:
	mov ah,02h			
	int 21h				
	
	jmp read			
	
	
;запоминание dx для вывода сообщения	
endFile:
	push dx				

	
;закрытие файла

	mov ah,3eh			
	mov bx,HANDLE		
	int 21h 			
	
	
	;xor ax,ax
	;int 16h
	
	xor ax,ax
	int 16h
;вывод сообщения об ошибке открытия файла
open_error:
	mov ah,09h
	int 21h
	jmp exit
	

exit:					
	mov ah,49h			;освобождение памяти
	int 21h
	
	xor ax,ax			;ожидание нажатия на любую клавишу
	int 16h	

	mov ah,4ch			;выход
	int 21h
end main

Последний раз редактировалось Olya_lya; 27.10.2011 в 20:16.
Olya_lya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить путь к файлу Manya Общие вопросы Delphi 5 22.05.2012 16:12
Как прописать путь к doc-файлу? varvar123 Общие вопросы Delphi 2 26.05.2011 13:29
Как прописать путь к сохранению файла misher Общие вопросы Delphi 1 28.11.2010 13:06
Как прописать путь к ячейки таблицы в VBA Pro100Andrey Microsoft Office Access 2 19.05.2010 19:59
Как найти путь к файлу? Gawwws Microsoft Office Excel 6 05.12.2008 14:01