![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Новичок ![]() Группа: Members Сообщений: 23 Регистрация: 13.9.2006 Из: Чебоксары Пользователь №: 1,734 ![]() |
люди помогите написать прогу для "сканирования и замена в тексте" на Assemblere, уж больно тяжелый язык....
![]() надеюсь кто-нить сможет помочь мне решить эту задачку : ) |
|
|
![]() |
![]()
Сообщение
#2
|
|
Новичок ![]() Группа: Members Сообщений: 23 Регистрация: 13.9.2006 Из: Чебоксары Пользователь №: 1,734 ![]() |
Что за afd.exe-то? Сначала файло компилируется в объектный файл tasm-ом, затем объектный файл линуется tlink-ом. На выходе - exe или com в зависимости от ключей линковки. tlink.exe a.obj выдает: Turbo Link Version 3.01 Copyright © 1987, 1990 Borland International Warning: No stack создаются два файла: a.exe и a.map, запускаю exe и выходит ошибка: D:\....\Tasm\a.exe Процессор NTVDM обнаружил недопустимую инструкцию. CS:0000 IP:0077 OP:f0 37 05 13 02 Один момент - предложенный тобой способ будет заменять только один символ, который первым встретится в строке и удовлетворяющий условию. а как правильно сделать? |
|
|
![]()
Сообщение
#3
|
|
![]() Мега постер ![]() Группа: Local moder Сообщений: 1,712 Регистрация: 21.8.2006 Пользователь №: 1,269 ![]() |
Процессор NTVDM обнаружил недопустимую инструкцию. CS:0000 IP:0077 OP:f0 37 05 13 02 Прога неверно написана ) а как правильно сделать? Либо как я приводил код, либо (если команды строковой обработки принципиальны) использовать lodsb, stosb в цикле -------------------- |
|
|
![]() ![]()
Сообщение
#4
|
|
Новичок ![]() Группа: Members Сообщений: 23 Регистрация: 13.9.2006 Из: Чебоксары Пользователь №: 1,734 ![]() |
page 60,132
TITLE STRING (EXE) Сканирование и замена в тексте CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG,ES:CODESG BEGIN: JMP SHORT MAIN ;-------------------------------------------------------- MAXNLEN DB 30 ;Длина поля STRING ACTNLEN DB ? ;максимальная длина STRFLD DB 30 DUP(' ') ;Текст PROMPT DB 'tekst', '$' STRDSP DB 30 DUP(' '), 13, 10, '$' ;-------------------------------------------------- MAIN PROC NEAR ;Основная процедура MOV AX,0600H A10LOOP: CALL B10INPT ;Ввести текст с клавиатуры TEST ACTNLEN,0FFH ;Нет имени? (т.е. конец) JZ A90 ; да - выйти CALL D10SCAS ;Найти l CMP AL, 'l' ;Найдена? JE A10LOOP ; да - обойти CALL A10LOOP A90: RET MAIN ENDP ;Вывод запроса для ввода текста: ; ----------------------------- B10INPT PROC MOV AH,09 LEA DX,PROMPT ;Выдать текст запроса INT 21H RET B10INPT ENDP ;Поиск звездочки в имени: ; ----------------------- D10SCAS PROC CLD MOV AL,'l' MOV CX,30 ;Длина сканирования - 30 LEA DI,PROMPT REPNE SCASB ;l найдена? JE D20 ; да - выйти, MOV AL,20H ; нет стереть l в AL D20: RET D10SCAS ENDP CODESG ENDS END BEGIN Не могу понять где ошибка..... При компиляции ошибок не было обнаружено, создал exe а там шняга какая-то-набор символов |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 3rd July 2025 - 11:31 |