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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 21:32   #1
Бодя21
 
Регистрация: 24.12.2012
Сообщений: 7
По умолчанию Чтение из файла

Помогите плиз надо на завтра зделать не знаю как...

Есть код програмы, нужно сделать так что данные считывались из файла.
Помогите плиз, очень надо!!
Вот сама зачада:
Создать программу, которая включает в себя команды обработки строк языка ассемблер. Выполнить ввод строки с 40 символов. Слова в строке разделить пробелами. Подсчитать количество слов последнего.

Вот сам код...

Код:
data          SEGMENT  
    newLen db ?                      
    bufer db 41 
    len   db   ?
         
data          ENDS
 
code          SEGMENT
              ASSUME   cs:code,ds:data
begin:
 
;ввод строки
    mov ah,10
    lea dx,bufer
    mov di,dx
    int 21h
 
;перевод строки
    mov ah,2
    mov dl,10
    int 21h
 
    inc di      ;на число введенных символов
 
    xor ax,ax   ;AH-для хранения длины последнего слова
    xor bx,bx   ;BL-для счетчика слов
    xor cx,cx   ;CL-длина строки
 
    mov cl,[di] ;число введенных символов
    mov [di],byte ptr ' ' ;перед первым символом строки, записать пробел
    add di,cx   ;DI - на последнем символе строки
    inc cl      ;с пробелом символов больше на 1
    mov [newLen],cl ;новая длина строки
 
;подсчет длины последнего слова
    call Find
    mov ah,cl   ;AH=длина последнего слова
 
;подсчет следующего слова
m1:
    mov cl,[newLen] ;
    test cl,cl  ;если символов в строке 0, вывод
    jz okString
 
    call Find
    cmp ah,cl   ;сравнить самое длинное
    jge m1      ;если дольше,
    inc bl      ;увеличить счетчик слов
    jmp short m1    ;на следующее слово
 
okString:
;вывод на экран
    xor ax,ax
    mov al,bl
 
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
    push    dx
    inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
    test    ax, ax
    jnz     oi2
; Теперь приступим к выводу.
    mov     ah, 02h
oi3:
    pop     dx
; Извлекаем очередную цифру, переводим её в символ и выводим.
    add     dl, '0'
    int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
    loop    oi3
 
    xor ax,ax   ;ждать нажатия клавиши
    int 16h
 
Find    proc    near
    std     ;сканировать с уменьшением адреса
    mov dx,di   ;для вычисления длины слова DX-конкц слова
    mov al,' '
    repne scasb ;искать пробел
 
    mov cx,dx   ;DX-конец слова
    sub cx,di   ;DI-начало слова. DX-DI=CX=длина слова
    sub [newLen],cl ;новая длина строки     
    ret
Find    endp
code          ENDS
              end      begin

Последний раз редактировалось Бодя21; 21.03.2013 в 21:35.
Бодя21 вне форума Ответить с цитированием
Старый 27.03.2013, 18:53   #2
Бодя21
 
Регистрация: 24.12.2012
Сообщений: 7
По умолчанию

Помогите плиз, очень нужно. Буду очень благодарен...
Бодя21 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла (С++) Bullrock Помощь студентам 6 03.05.2012 02:03
Чтение XM файла IvanSCM Свободное общение 1 08.11.2011 18:27
Чтение файла с cd DedBoroda Общие вопросы Delphi 3 24.10.2010 19:25
чтение из файла maxandmin Общие вопросы C/C++ 1 21.07.2010 17:40
Чтение из файла utrnjhyfgjktjy Помощь студентам 9 30.01.2010 17:41