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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2012, 22:55   #1
na4inaushij
Новичок
Джуниор
 
Регистрация: 15.02.2012
Сообщений: 1
По умолчанию [MASM] найти позицию слова и занести результат в файл

щас у меня проходит практика по ассемблеру, преподаватель мягко говоря объясняет не очень, а доходить до всего самому в короткие сроки не везде получается.
программа работает и создает файл, но не записывает в него информацию введенную пользователем и ответ...
Код:
include macro.lib

data segment

;a db '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$'
s db '      $'
VvodSlov db 'vvedite slova: $'
PosSlova db 'vvedite slovo dly poiska ego pozicii: $'
ps db 'pos: $'
; ppb - posiciya posl naidennooi bukvys
ppb dw ?

Buffer db 50,?,50 dup (?)   
BufEnterString db 50,?,50 dup (?)  
BufOutFile db 50,?,50 dup (?)  
EnterFileName db 'Enter file name: $'
EnterString db 'Enter string: $'
StringInFile db 'String in File: $'
FN dw ?
txt db '.txt'
EndString db '$'
i db '$$$$$$$$$$$$$$$$$$$$$$$$$$$$'

data ends

sst segment stack
db 128 dup(?)
sst ends

code segment
assume ss:sst, cs:code, ds:data

metka:
CLS
CRLF
mov ax, data
mov ds, ax
mov es, ax 

;vvod

CLS
CRLF
message VvodSlov


mov Ah, 0ah ; буфферинизация ввода с клавиатуры
lea dx, Buffer
int 21h

CRLF
CRLF
message PosSlova

mov ch, 0
mov cl, Buffer + 1
mov bp, cx
lea di, i
lea si, Buffer + 2
rep movsb



mov Ah, 0ah 
lea dx, Buffer
int 21h


mov ch, 0
mov cl, Buffer + 1
mov bx, cx
lea di, s
lea si, Buffer + 2
rep movsb
 
;konec vvoda


mov cx, bp

CRLF

m4:
LEA DI, i
add di, ppb
mov al, Buffer + 2
repne scasb

mov ppb, di
inc ppb
mov ax, di

push cx
lea si, s
inc si
mov cx, bx
repe cmpsb ; sravnenie kajdoi bukvy

cmp cx, 0
je m1

jmp m2

m1:
mov ax, ppb
dec ax  
CRLF
message ps
print_number
m2:
pop cx
cmp cx, 0
je m5

jmp m4

 
m5:

;imya faila

CRLF
message EnterFileName
mov ah, 0ah   
lea dx, Buffer
int 21h     
mov cl, Buffer + 1    
lea si, Buffer + 2
lea di, i
rep movsb
mov cx, 4
lea si, txt
rep movsb
CRLF   

;Sozdanie  

mov ah, 3Ch
mov cx, 0
lea dx, i
int 21h
mov FN, ax   

;Zapis'  

mov ah, 40h
mov bx, FN    
lea dx, BufEnterString + 2
int 21h

;ustanovka failovogo ukazatelya  

mov ah, 42h
mov bx, FN
mov al, 00
mov dx, 00
mov cx, 00
int 21h

;4tenie

;mov ah, 3Fh
;pop cx
;lea dx, BufOutFile   
;mov bx, FN           
;int 21h  
;CRLF
;CRLF
;message StringInFile
;CRLF
;CRLF

;vyvod 

lea si, EndString ; dabavlenie $
lea di, BufOutFile
add di, cx
movsb   
mov ah, 09h
lea dx, BufOutFile  
int 21h    

;konec

mov ax, 4C00h   
int 21h         
code ends
end metka
MASM под 16 разрядный DOS
na4inaushij вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две лабы: файл - обработать слова; массив - найти три наибольших элемента за один проход ( Delphi ) Emma_Imp Помощь студентам 5 26.12.2010 21:13
Результат перевода из 10й сис-мы в 16-ю занести в табл(10-е число - 16), до тех пор пока не будет введено Maemi_IT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.01.2010 21:27
строка (занести в массивы - буквы и слова) Lodyr Помощь студентам 21 21.12.2009 20:09
Занести слова в массив [Delphi] Lemo Помощь студентам 4 20.12.2009 18:03
Как пропарсив HTML страничку занести результат тегов <span></span> в label? Ramal Работа с сетью в Delphi 4 27.10.2009 03:54