|
Новичок
Регистрация: 26.10.2008
Сообщений: 9
С нами:
9231884
Репутация:
4
|
|
У меня на следующую прогу(преобразоване латинских заглавных букв в строчные) masm выдает такую ошибку:fatal error L1101:invalid object module pos:1E Record type:570C. Объясните мне, что это значит. и также хотелось бы узнать как ее исправить.
Сама прога:
CSEG segment
org 100h
assume CS:CSEG, DS:CSEG, SS:CSEG, ES:CSEG
start:
;очистка экрана
MOV AX,0600H ;AH=06H - УСТАНОВКА ПРОКРУТКИ, AL=00 - ВО ВЕСЬ ЭКРАН
MOV BH,07 ;ЧЕРНО-БЕЛЫЙ ЭКРАН
MOV CX,0000 ;ВЕРХНЯЯ ЛЕВАЯ ПОЗИЦИЯ
MOV DX,184FH ;НИЖНЯЯ ПРАВАЯ ПОЗИЦИЯ
INT 10H ;УПРАВЛЕНИЕ В BIOS
;УСТАНОВКА КУРСОРА В ПОЗИЦИЮ 00
MOV AH,02 ;ЗАПРОС НА УСТАНОВКУ КУРСОРА
MOV BH,00 ;ВЫБОР ВИДЕОСТРАНИЦЫ
MOV DX,0000 ;УСТАНОВКА КУРСОРА
INT 10H ;УПРАВЛЕНИЕ В BIOS
;ВЫВОД ПРИГЛАШЕНИЯ НА ВВОД
MOV AH,09 ;ФУНКЦИЯ ВЫВОДА СТРОКИ
MOV DX,OFFSET MSG1 ;АДРЕС СТРОКИ
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
;СЧИТЫВАНИЕ СИМВОЛОВ, ВВЕДЕННЫХ С КЛВИАТУРЫ
MOV AH,3FH ;ФУНКЦИЯ ВВОДА
MOV BX,00 ;НОМЕР ДЛЯ КЛАВИАТУРЫ
MOV CX,254 ;ДОПУСТИМОЕ КОЛИЧЕСТВО ВВЕДЕННЫХ СИМВОЛОВ
MOV DX,OFFSET INBUF ;ЗАНЕСЕНИЕ АДРЕСА БУФЕРА В РЕГИСТР DX
INT 21H ;ПОЛЬЗОВАТЕЛЬСКОЕ ПРЕРЫВАНИЕ
SUB AX,02 ;ИЗОБЩЕГО КОЛИЧЕСТВА СИМВОЛОВ ВЫЧИТАЮТСЯ СИМВОЛЫ "ВВОД" И "КОНЕЦ СТРОКИ"
;ИЗМЕНЕНИЕ ЗАГЛАВНЫХ БУКВ НА СТРОЧНЫЕ
MOV SI,OFFSET INBUF ;В РЕГИСТР sI (ИНДЕКС ПРИЕМНИКА) ЗАНОСИМ АДРЕС ПЕРВОГО СИМВОЛА
MOV CX,AX ;В РЕГИСТР CX ЗАНОСИМ КОЛИЧЕСТВО СИМВОЛОВ
L1:
MOV BL,[SI] ;В BL ЗАНОСИМ ПРОСМАТРИВАЕМЫЙ ФАЙЛ
CMP BL,64 ;СРАВНИВАЕМ С 64 65=A
JBE VYHOD ;ЕСЛИ МЕНЬШЕ ИЛИ РАВНО ЗАКАНЧИВАЕМ ПРОСТМОТР
CMP BL,90 ;СРАВНИВАЕМ С 90 90=Z
JA STROKI ;ЕСЛИ БОЛЬШЕ ПРОВЕРИМ НА СТРОЧНОСТЬ
ADD BL,32 ;ЕСЛИ ЗАГЛАВНАЯ ЛАТИНСКАЯ СДЕЛАЕМ СТРОЧНОЙ
MOV [SI],BL ;ВЕРНЕМ НА МЕСТО
JMP VYHOD ;КОНЕЦ
STROKI:
CMP BL,97 ;СРАВНИВАЕМ С 97 97=a
JB VYHOD ;ЕСЛИ МЕНЬШЕ ЗАКАНЧИВАЕМ
CMP BL,122 ;СРАВНИВАЕМ С 122 122=z
JA VYHOD ;ЕСЛИ БОЛЬШЕ ЗАКАНЧИВАЕМ
MOV [SI],BL ;ВОЗВРАЩАЕМ НА МЕСТО
VYHOD:
INC SI ;ПЕРЕХОД НА СЛЕДУЮЩИЙ СИМВОЛ
LOOP L1
MOV BL,BYTE PTR '$'
MOV [SI],BL ;ЗАТЫКАЕТ СТРОКУ СИМВОЛОМ $
;ВЫВОД НОВОЙ СТРОКИ
MOV AH,09
MOV DX,OFFSET MSG2
INT 21H
MOV DX,OFFSET INBUF
INT 21H
INT 20H ;ЗАВЕРШЕНИЕ ПРОГРАММЫ
MSG1 DB "ENTER STRING OF SYMBOLS:$"
MSG2 DB "CONVERT STRING:$"
INBUF DB 256 DUP (' ')
|